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

install deps

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.asc

Ajoutez 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

add repo

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-plugin

Entrez ‘ Y ‘ pour confirmer l’installation.

install docker

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 username

Connectez-vous à votre utilisateur avec la commande ‘ su ‘ ci-dessous.

su - username

Enfin, exécutez la commande ‘ docker ‘ ci-dessous pour exécuter le conteneur ‘ hello-world ‘.

docker run hello-world

Si tout se passe bien, vous verrez le message ‘ Hello World ‘ de Docker.

docker hello world

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/supabase

Dé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 .env

Ensuite, 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 pull

Vous pouvez voir le processus de téléchargement des images Docker de Supabase ci-dessous.

download images

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

start containers

Enfin, exécutez la commande ‘ docker compose ‘ ci-dessous pour vérifier l’état des conteneurs Supabase.

docker compose ps

Dans 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.

check containers

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

generate key

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

JWT token

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 .env

Collez votre mot de passe OpenSSL généré dans l’option ‘ POSTGRES_PASSWORD ‘.

POSTGRES_PASSWORD=f489d6f61514eb90fbf57fb574c3d367

Entrez votre clé secrète JWT dans l’option ‘ JWT_SECRET ‘.

JWT_SECRET=PUaiJLm1PKAebJJRIdXylVJrfgGbRWdWvzN0EUgh

Remplacez la valeur ‘ ANON_KEY ‘ par votre jeton JWT généré pour l’utilisateur ‘ anon ‘.

ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJyb2xlIjogImFub24iLAogICJpc3MiOiAic3VwYWJhc2UiLAogICJpYXQiOiAxNzM2MzU1NjAwLAogICJleHAiOiAxODk0MTIyMDAwCn0.f8_wST3WX1bmvsHttRokJPCz7-rpyjU8HMNnYH7kSd4

Remplacez la valeur ‘ SERVICE_ROLE_KEY ‘ par votre jeton JWT généré pour l’utilisateur ‘ service_role ‘.

SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJyb2xlIjogInNlcnZpY2Vfcm9sZSIsCiAgImlzcyI6ICJzdXBhYmFzZSIsCiAgImlhdCI6IDE3MzYzNTU2MDAsCiAgImV4cCI6IDE4OTQxMjIwMDAKfQ.DOo1lqH76AR_jCx0N9QDZBEdrQ8T_JBQqc7CagD1mWM

Si 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=false

Entrez 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=91521851a4e1375145959eecddfaff45

Entrez 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.local

Enregistrez 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 down

Et ensuite recréez les conteneurs pour Supabase avec la commande suivante.

docker compose up -d

Une fois que tout fonctionne, vérifiez chaque service de conteneur en utilisant la commande ci-dessous.

docker compose ps

Vous pouvez voir ci-dessous que chaque conteneur pour Supabase est en cours d’exécution.

check coantainers

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 -y

Maintenant, créez une nouvelle configuration de bloc serveur Nginx ‘ /etc/nginx/sites-available/supabase ‘ avec l’éditeur ‘vim’.

sudo vim /etc/nginx/sites-available/supabase

Collez 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

setup nginx

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 nginx

Enfin, exécutez la commande ‘systemctl’ ci-dessous pour vérifier le service Nginx et vous assurer que le service fonctionne.

sudo systemctl status nginx

Si tout se passe bien, vous verrez une sortie comme suit.

check nginx

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-nginx

Une 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.local

Une 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 ‘.

login

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

dashboard

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.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.