Serveur dédié : Installer Supabase sur Linux
Ce guide a été créé avec les produits suivants :
(Les détails peuvent varier selon les produits de différents fournisseurs, mais les concepts principaux restent les mêmes)
Introduction
Supabase est une plateforme de développement Postgres open-source qui fournit une base de données Postgres complète avec authentification, APIs instantanées, temps réel et stockage, faisant de lui une alternative open-source à Firebase.
Tu envisages d’héberger ce service toi-même ? On te guide pas à pas pour l’installer et le configurer, avec tout ce qu’il faut savoir.
Prérequis
Avant d’installer Supabase, assure-toi que ton environnement d’hébergement répond aux exigences suivantes pour garantir une installation fluide et des performances optimales.
Matériel | Minimum | Recommandation ZAP-Hosting |
---|---|---|
CPU | 1 cœur CPU | 4 cœurs CPU |
RAM | 4 Go | 8 Go |
Espace disque | 25 Go | 25 Go |
Le logiciel nécessite que toutes les dépendances soient installées et qu’il tourne sur un système d’exploitation supporté. Vérifie que ton serveur remplit ces conditions avant de lancer l’installation :
Dépendances : Git
, Docker (Engine et Compose)
Système d’exploitation : Dernière version d’Ubuntu/Debian compatible avec Docker 2
Assure-toi que toutes les dépendances sont installées et que la version du système d’exploitation est correcte pour éviter les problèmes de compatibilité lors de l’installation de Supabase.
Préparation
Avant de configurer Supabase, il faut préparer ton système. Cela inclut la mise à jour du système d’exploitation à la dernière version et l’installation de toutes les dépendances nécessaires. Ces étapes garantissent un environnement stable et évitent les soucis pendant ou après l’installation.
Mise à jour du système
Pour t’assurer que ton système tourne avec les dernières améliorations logicielles et de sécurité, commence toujours par une mise à jour système. Lance cette commande :
sudo apt update && sudo apt upgrade -y
Cela garantit que ton système dispose des derniers patchs de sécurité et versions logicielles avant de continuer.
Installer les dépendances
Une fois la mise à jour terminée, tu peux installer les dépendances nécessaires.
Git
Les données Supabase seront récupérées via GitHub. Il faut donc installer Git en premier. Lance cette commande :
sudo apt install git-all
Docker
Supabase sera déployé et exécuté sur ta machine via un conteneur Docker. Docker doit donc être installé. Lance cette commande :
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
Un guide complet sur l’installation et l’utilisation de Docker est dispo dans notre guide Docker.
Installation
Maintenant que tout est prêt et que les prérequis sont remplis, tu peux passer à l’installation de Supabase.
Récupère le dépôt Supabase, crée un dossier projet dédié, puis copie les fichiers Docker et le fichier d’environnement exemple dedans.
git clone --depth 1 https://github.com/supabase/supabase
mkdir supabase-project
cp -rf supabase/docker/* supabase-project
cp supabase/docker/.env.example supabase-project/.env
Place-toi dans le dossier projet, récupère les dernières images Docker, puis lance la stack en mode détaché.
cd supabase-project
docker compose pull
docker compose up -d
Tu peux maintenant accéder à Supabase Studio via http://<ton-ip>:8000
. Il te sera demandé un nom d’utilisateur et un mot de passe. Par défaut, les identifiants sont :
- Nom d’utilisateur :
supabase
- Mot de passe :
this_password_is_insecure_and_should_be_updated
Ton appli tourne actuellement avec les identifiants par défaut. Sécurise tes services au plus vite en suivant les instructions ci-dessous.
Configuration
Ne déploie jamais avec des valeurs par défaut ou d’exemple. Remplace tous les placeholders par des secrets forts et uniques, vérifie la configuration selon tes exigences de sécurité, puis redémarre tous les services pour appliquer les changements.
Génère des clés API sécurisées avant d’exposer un service. Commence par choisir un secret JWT de 40 caractères. Tu peux utiliser la valeur fournie ou créer la tienne. Stocke ce secret localement dans un endroit sûr. Ne le partage pas et ne le commit pas dans un contrôle de version. Utilise ce secret pour générer un JWT puis dérive les clés API anon et service via le formulaire référencé dans la doc Supabase : https://supabase.com/docs/guides/self-hosting/docker#generate-api-keys
Lance le formulaire deux fois pour produire les deux clés. Mets à jour ton fichier ./docker/.env
avec :
ANON_KEY
: clé anonSERVICE_ROLE_KEY
: clé service
Mets à jour les secrets obligatoires dans ./docker/.env
. Ces valeurs doivent être définies pour un déploiement fonctionnel :
POSTGRES_PASSWORD
: mot de passe pour le rôlepostgres
JWT_SECRET
: utilisé par PostgREST et GoTrueSITE_URL
: URL de base de ton siteSMTP_*
: identifiants du serveur mailPOOLER_TENANT_ID
: ID tenant utilisé par le pooler Supavisor
Protège le tableau de bord avec de nouveaux identifiants avant la mise en production. Modifie ./docker/.env
:
DASHBOARD_USERNAME
: utilisateur du tableau de bordDASHBOARD_PASSWORD
: mot de passe du tableau de bord
Tu peux définir plusieurs utilisateurs du tableau de bord dans ./docker/volumes/api/kong.yml
:
basicauth_credentials:
- consumer: DASHBOARD
username: user_one
password: password_one
- consumer: DASHBOARD
username: user_two
password: password_two
Pour activer toutes les fonctionnalités du tableau de bord en dehors de localhost
, définis SUPABASE_PUBLIC_URL
dans ./docker/.env
avec l’URL ou l’IP que tu utiliseras pour accéder au tableau de bord.
Applique les changements de configuration en redémarrant la stack :
docker compose down
docker compose up -d
Conclusion et ressources supplémentaires
Félicitations ! Tu as maintenant installé et configuré Supabase avec succès sur ton serveur dédié. On te recommande aussi de jeter un œil aux ressources suivantes, qui pourront t’apporter un coup de main et des conseils pendant ta configuration.
- Supabase.com - Site officiel
- Supabase.com/docs/guides/self-hosting - Documentation Supabase
Tu as des questions spécifiques qui ne sont pas couvertes ici ? Pour toute demande ou assistance, n’hésite pas à contacter notre support, disponible tous les jours pour t’aider ! 🙂