Supabase
Supabase est une alternative open source à Firebase basée sur PostgreSQL. Elle regroupe une base Postgres, l’authentification, des API REST et GraphQL instantanées, les abonnements en temps réel, le stockage et un tableau de bord Studio dans une pile auto-hébergeable. Studio et les API sont servis par la passerelle Kong sur le port 8000.
Logiciels inclus
Section intitulée « Logiciels inclus »| Composant | Version |
|---|---|
| Supabase | Pile auto-hébergée |
| PostgreSQL | 17 |
| Docker | Dernière stable |
| Docker Compose | Dernière stable |
| Ubuntu | 24.04 LTS |
La pile inclut Studio, la passerelle API Kong, Auth (GoTrue), PostgREST, Realtime, Storage et postgres-meta, le tout sur PostgreSQL 17.
Prérequis
Section intitulée « Prérequis »| Ressource | Minimum | Recommandé |
|---|---|---|
| vCPU | 2 | 4 |
| RAM | 4 Go | 8 Go |
| Stockage | 30 Go | 80 Go |
Variables d’environnement
Section intitulée « Variables d’environnement »Vous pouvez les définir au déploiement de Supabase depuis la Marketplace. Laissez un champ de mot de passe vide pour générer automatiquement une valeur aléatoire sécurisée.
| Variable | Description |
|---|---|
SITE_URL | URL publique de l’instance Supabase et du tableau de bord Studio |
POSTGRES_PASSWORD | Mot de passe de la base PostgreSQL |
DASHBOARD_PASSWORD | Mot de passe de connexion au tableau de bord Studio |
Ce sont les seules variables à définir au déploiement. SUPABASE_PUBLIC_URL et API_EXTERNAL_URL,
mentionnées dans Sécurité, se modifient dans /data/supabase/.env sur la VM en marche.
Démarrage
Section intitulée « Démarrage »1. Se connecter à la machine virtuelle
Section intitulée « 1. Se connecter à la machine virtuelle »ssh ubuntu@<your-vm-ip>2. Attendre la configuration au premier démarrage
Section intitulée « 2. Attendre la configuration au premier démarrage »Au premier démarrage, un script génère le mot de passe de base de données, le secret JWT, les clés API et les identifiants Studio, puis télécharge les images de conteneurs et démarre la pile. Le téléchargement est volumineux. Cela prend environ 15 à 20 minutes. Suivez la progression:
journalctl -u supabase-first-boot.service -fLe message de connexion (MOTD) confirme quand Supabase est prêt.
3. Récupérer les identifiants du tableau de bord et les clés API
Section intitulée « 3. Récupérer les identifiants du tableau de bord et les clés API »Le nom d’utilisateur et le mot de passe Studio, ainsi que les clés API anon et service_role,
sont écrits dans un fichier réservé à root:
sudo cat /root/.credentials/supabase.txt4. Accéder au tableau de bord Studio
Section intitulée « 4. Accéder au tableau de bord Studio »Ouvrez un navigateur et allez à:
http://<your-vm-ip>:8000Connectez-vous avec le nom d’utilisateur supabase et le mot de passe généré. Les API REST et Auth
sont servies par la même passerelle à http://<your-vm-ip>:8000/rest/v1/ et
http://<your-vm-ip>:8000/auth/v1/.
Gérer Supabase
Section intitulée « Gérer Supabase »Supabase s’exécute comme pile Docker Compose dans /data/supabase.
# Vérifier l'étatcd /data/supabase && docker compose ps
# Redémarrercd /data/supabase && docker compose restart
# Voir les journauxcd /data/supabase && docker compose logs -fConfiguration d’environnement: /data/supabase/.env. Les données de base de données et de stockage
sont stockées sous /data/supabase/volumes.
Sécurité
Section intitulée « Sécurité »Les ports 8000, 80 et 443 sont ouverts sur l’interface réseau de la machine virtuelle. UFW est activé et autorise ces ports ainsi que SSH (port 22). L’accès PostgreSQL direct (5432) n’est pas exposé.
Changez le mot de passe du tableau de bord Studio après la première connexion. En production,
définissez SUPABASE_PUBLIC_URL, API_EXTERNAL_URL et SITE_URL dans /data/supabase/.env avec
votre domaine, redémarrez la pile, puis placez Supabase derrière un proxy inverse comme nginx avec
un certificat TLS afin que Studio et les API soient servis en HTTPS au lieu d’exposer directement le
port 8000.