Installation Supabase · 8 min read · Sep 13, 2025
Comment installer Supabase (alternative à Firebase) avec Docker sur Ubuntu 24.04

Supabase est une alternative open-source à Firebase construite sur la base de données PostgreSQL, la base de données relationnelle la plus fiable au monde. Elle permet aux développeurs de créer des applications web, mobiles et d’IA complètes. Supabase offre une base de données PostgreSQL, une authentification, des API, un stockage, des abonnements en temps réel et des embeddings vectoriels. Avec une configuration simple et une interface utilisateur, les développeurs peuvent rapidement créer des applications sur Supabase.
Dans ce tutoriel, vous apprendrez à installer Supabase sur un serveur Ubuntu 24.04. Vous exécuterez Supabase sous forme de conteneurs avec Docker, et sécuriserez Supabase avec une authentification par mot de passe et des jetons JWT. Enfin, vous apprendrez également à configurer Nginx en tant que proxy inverse pour Supabase.
Prérequis
Pour commencer ce guide, assurez-vous d’avoir les éléments suivants :
- Un serveur Ubuntu 24.04
- Un utilisateur non-root avec des privilèges d’administrateur
- Un nom de domaine pointant vers l’adresse IP du serveur
Installation de Docker Engine
Pour déployer Supabase sur votre serveur, vous devez installer Docker Engine sur votre machine. Les applications Supabase s’exécuteront sous forme de conteneur sur votre serveur.
Dans cette section, vous installerez Docker Engine via le dépôt officiel de Docker.
Tout d’abord, exécutez la commande ci-dessous pour mettre à jour l’index des paquets Ubuntu et installer des paquets tels que ‘ ca-certificates ‘, ‘ curl ‘, et ‘ git ‘.
sudo apt update
sudo apt install -y ca-certificates curl git
Maintenant, exécutez la commande suivante pour ajouter la clé GPG pour le dépôt Docker Engine.
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.ascAjoutez le dépôt Docker Engine pour votre serveur Ubuntu en exécutant la commande ci-dessous.
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Avec la clé GPG et le dépôt Docker ajoutés, exécutez la commande ‘ apt ‘ ci-dessous pour rafraîchir votre index de paquets et installer Docker Engine. Avec cela, vous installerez également les plugins Docker Compose et buildx.
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginEntrez ‘ Y ‘ pour confirmer l’installation.

Ajout d’un utilisateur au groupe Docker
Dans ce guide, vous exécuterez Supabase en tant qu’utilisateur non-root, alors assurez-vous qu’un utilisateur dédié est créé. Ensuite, vous devez ajouter votre utilisateur au groupe ‘docker’, ce qui permettra à l’utilisateur d’exécuter des conteneurs.
Ajoutez votre utilisateur au groupe ‘ docker ‘ avec la commande ci-dessous. Cela permettra à votre utilisateur d’exécuter et de gérer des conteneurs.
sudo usermod -aG sudo usernameConnectez-vous à votre utilisateur avec la commande ‘ su ‘ ci-dessous.
su - usernameEnfin, exécutez la commande ‘ docker ‘ ci-dessous pour exécuter le conteneur ‘ hello-world ‘.
docker run hello-worldSi tout se passe bien, vous verrez le message ‘ Hello World ‘ de Docker.

Téléchargement et installation de Supabase
Maintenant que vous avez installé Docker, l’étape suivante consiste à télécharger Supabase et à l’exécuter sous forme de conteneur. Dans cette section, vous apprendrez à mettre Supabase en route, et plus tard, vous apprendrez à le sécuriser.
Téléchargez le code source de ‘ supabase ‘ avec la commande ‘ git ‘ ci-dessous.
git clone --depth 1 https://github.com/supabase/supabaseDéplacez-vous dans le répertoire ‘supabase/docker’ et copiez le fichier ‘ .env.example ‘ vers le ‘. env ‘. Ce fichier sera utilisé pour configurer votre installation Supabase.
cd supbase/docker
cp .env.example .envEnsuite, exécutez la commande ‘ docker compose ‘ ci-dessous pour télécharger les images Supabase depuis le dépôt Docker. Cela téléchargera plusieurs images pour Supabase.
docker compose pullVous pouvez voir le processus de téléchargement des images Docker de Supabase ci-dessous.

Une fois le processus terminé, exécutez la commande suivante pour démarrer les conteneurs Supabase. Avec l’option ‘ -d ‘, vous exécuterez les conteneurs en arrière-plan, donc les journaux des conteneurs Supabase ne seront pas affichés.
docker compose up -d
Enfin, exécutez la commande ‘ docker compose ‘ ci-dessous pour vérifier l’état des conteneurs Supabase.
docker compose psDans la sortie ci-dessous, vous pouvez voir que les conteneurs Supabase tels que ‘ supabase-auth ‘, ‘ supabase-kong ‘, ‘ supabase-rest ‘, et ‘ supabase-studio ‘ sont en cours d’exécution.

Sécurisation de Supabase
Actuellement, Supabase est opérationnel sur votre système, mais sans mot de passe et authentification appropriés. Donc pour l’instant, vous sécuriserez l’installation de Supabase en changeant les identifiants dans le fichier ‘.env’.
Avant de commencer, générons des mots de passe pour le serveur PostgreSQL et le tableau de bord Supabase, puis générons le secret et le jeton JWT.
Exécutez la commande ci-dessous deux fois pour générer un mot de passe sécurisé pour le tableau de bord Supabase et le serveur PostgreSQL.
openssl rand -hex 16
Maintenant, allez sur le site web de Supabase pour générer deux jetons JWT pour Supabase. Assurez-vous de noter les éléments suivants :
- JWT Secret
- Clé pour les deux ANON_KEY et SERVICE_KEY
- Jetons JWT générés pour les deux

Maintenant que vous avez généré des mots de passe et des jetons pour Supabase, appliquons-les en modifiant le fichier ‘.env’.
Ouvrez le fichier ‘ .env ‘ en utilisant l’éditeur ‘ vim ‘.
vim .envCollez votre mot de passe OpenSSL généré dans l’option ‘ POSTGRES_PASSWORD ‘.
POSTGRES_PASSWORD=f489d6f61514eb90fbf57fb574c3d367Entrez votre clé secrète JWT dans l’option ‘ JWT_SECRET ‘.
JWT_SECRET=PUaiJLm1PKAebJJRIdXylVJrfgGbRWdWvzN0EUghRemplacez la valeur ‘ ANON_KEY ‘ par votre jeton JWT généré pour l’utilisateur ‘ anon ‘.
ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJyb2xlIjogImFub24iLAogICJpc3MiOiAic3VwYWJhc2UiLAogICJpYXQiOiAxNzM2MzU1NjAwLAogICJleHAiOiAxODk0MTIyMDAwCn0.f8_wST3WX1bmvsHttRokJPCz7-rpyjU8HMNnYH7kSd4Remplacez la valeur ‘ SERVICE_ROLE_KEY ‘ par votre jeton JWT généré pour l’utilisateur ‘ service_role ‘.
SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJyb2xlIjogInNlcnZpY2Vfcm9sZSIsCiAgImlzcyI6ICJzdXBhYmFzZSIsCiAgImlhdCI6IDE3MzYzNTU2MDAsCiAgImV4cCI6IDE4OTQxMjIwMDAKfQ.DOo1lqH76AR_jCx0N9QDZBEdrQ8T_JBQqc7CagD1mWMSi vous déployez sur un serveur public, entrez les détails de votre serveur SMTP.
Email auth
ENABLE_EMAIL_SIGNUP=true
ENABLE_EMAIL_AUTOCONFIRM=false
[email protected]
SMTP_HOST=smtp.server.address
SMTP_PORT=2500
SMTP_USER=username
SMTP_PASS=password
SMTP_SENDER_NAME=sender_name
ENABLE_ANONYMOUS_USERS=falseEntrez votre nom d’utilisateur et votre mot de passe dans les options ‘ DASHBOARD_USERNAME ‘ et ‘ DASHBOARD_PASSWORD ‘. Cet utilisateur sera utilisé pour se connecter à Supabase.
DASHBOARD_USERNAME=supabase
DASHBOARD_PASSWORD=91521851a4e1375145959eecddfaff45Entrez votre nom de domaine dans les options ‘ SITE_URL ‘, ‘ API_EXTERNAL_URL ‘, et ‘ SUPABASE_PUBLIC_URL’. Dans cet exemple, nous utiliserons un domaine ‘https://supabase.howtoforge.local’.
SITE_URL=https://supabase.howtoforge.local
API_EXTERNAL_URL=https://supabase.howtoforge.local
SUPABASE_PUBLIC_URL=https://supabase.howtoforge.localEnregistrez le fichier et quittez l’éditeur une fois terminé.
Maintenant, exécutez la commande ‘ docker ‘ ci-dessous pour arrêter et supprimer les conteneurs Supabase.
docker compose downEt ensuite recréez les conteneurs pour Supabase avec la commande suivante.
docker compose up -dUne fois que tout fonctionne, vérifiez chaque service de conteneur en utilisant la commande ci-dessous.
docker compose psVous pouvez voir ci-dessous que chaque conteneur pour Supabase est en cours d’exécution.

Configuration de Nginx en tant que Proxy Inverse pour Supabase
Maintenant que Supabase est sécurisé, installons le serveur web Nginx et configurons-le en tant que proxy inverse pour Supabase. Assurez-vous que vous avez votre nom de domaine prêt et pointé vers l’adresse IP du serveur.
Installez Nginx avec la commande ‘ apt ‘ suivante.
sudo apt install nginx -yMaintenant, créez une nouvelle configuration de bloc serveur Nginx ‘ /etc/nginx/sites-available/supabase ‘ avec l’éditeur ‘vim’.
sudo vim /etc/nginx/sites-available/supabaseCollez la configuration suivante et assurez-vous de changer le nom de domaine dans l’option ‘ server_name ‘.
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream kong {
server localhost:8000;
}
server {
listen 80;
server_name supabase.howtoforge.local;
# REST
location ~ ^/rest/v1/(.*)$ {
proxy_set_header Host $host;
proxy_pass http://kong;
proxy_redirect off;
}
# AUTH
location ~ ^/auth/v1/(.*)$ {
proxy_set_header Host $host;
proxy_pass http://kong;
proxy_redirect off;
}
# REALTIME
location ~ ^/realtime/v1/(.*)$ {
proxy_redirect off;
proxy_pass http://kong;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
}
# STUDIO
location / {
proxy_set_header Host $host;
proxy_pass http://kong;
proxy_redirect off;
proxy_set_header Upgrade $http_upgrade;
}
}Enregistrez le fichier et quittez l’éditeur une fois terminé.
Ensuite, exécutez la commande ci-dessous pour activer le bloc serveur Supabase et vérifier votre syntaxe Nginx. S’il n’y a pas d’erreur, vous obtiendrez une sortie ‘ syntax is ok - test is successful ‘.
sudo ln -s /etc/nginx/sites-available/supabase /etc/nginx/sites-enabled/
sudo nginx -t
Maintenant, exécutez la commande ‘ systemctl ‘ ci-dessous pour redémarrer le serveur web Nginx et appliquer vos modifications. Avec cela, votre installation Supabase devrait fonctionner sous le proxy inverse Nginx.
sudo systemctl restart nginxEnfin, exécutez la commande ‘systemctl’ ci-dessous pour vérifier le service Nginx et vous assurer que le service fonctionne.
sudo systemctl status nginxSi tout se passe bien, vous verrez une sortie comme suit.

Sécurisation de Supabase avec HTTPS
Après que Nginx soit opérationnel en tant que proxy inverse, générons des certificats SSL et activons HTTPS pour sécuriser l’installation de Supabase.
Si vous êtes en mode développement, vous pouvez sauter cette partie et laisser Supabase sans HTTPS. Pour la production, vous devez mettre en œuvre HTTPS pour sécuriser votre serveur Supabase.
Installez Certbot et le plugin Certbot Nginx avec la commande ‘ apt ‘ ci-dessous. Entrez ‘Y’ pour confirmer l’installation.
sudo apt install certbot python3-certbot-nginxUne fois l’installation terminée, exécutez la commande ‘certbot’ ci-dessous pour générer des certificats SSL pour votre nom de domaine. Assurez-vous de changer le nom de domaine et l’adresse e-mail dans la commande.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d supabase.howtoforge.localUne fois terminé, vos certificats SSL seront disponibles dans le répertoire ‘ /etc/letsencrypt/live/domain.com ‘ et Supabase sera automatiquement sécurisé avec HTTPS via le plugin Certbot Nginx.
Accéder à Supabase Studio
Pour accéder à Supabase, ouvrez votre navigateur web et visitez https://supabase.howtoforge.local. Si votre installation est réussie, vous serez invité à une authentification par mot de passe de base.
Entrez le nom d’utilisateur et le mot de passe dans les options ‘ DASHBOARD_USERNAME ‘ et ‘ DASHBOARD_PASSWORD ‘ et cliquez sur ‘ Login ‘.

Si cela réussit, vous verrez le tableau de bord Supabase suivant.

Conclusion
Félicitations ! Vous avez terminé l’installation de Supabase sur le serveur Ubuntu 24.04 via Docker. Vous avez déployé et sécurisé Supabase avec l’authentification par mot de passe et le jeton JWT, puis installé et configuré Nginx en tant que proxy inverse. Enfin, vous avez également sécurisé Supabase avec HTTPS via Certbot et Letsencrypt. À partir de là, vous pouvez maintenant essayer de créer une nouvelle base de données, insérer des données dans Supabase, puis créer des applications simples avec le module Supabase pour communiquer via l’API REST.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.