Comment Auto-Héberger Supabase sur un VPS

Publié : par Dallas Kashuba
Comment Auto-Héberger Supabase sur un VPS thumbnail

Tu utilises Supabase Cloud depuis quelques mois, et la facture ne cesse d’augmenter.

Chaque bit supplémentaire de sortie de la base de données ajoute un élément de ligne. Chaque 10 000 utilisateurs actifs mensuels te rapproche d’un dépassement.

Le plan Pro qui commençait à 25 $ par mois ressemble maintenant davantage à 70 $.

Quelque part entre la page des tarifs et ta facture réelle, l’économie a cessé de sembler être une affaire.

L’auto-hébergement est l’alternative évidente, mais “évidente” fait beaucoup de travail ici. Supabase n’est pas un simple binaire que tu déposes sur un serveur. C’est une pile backend complète — une base de données Postgres, un service d’authentification, une API REST, des abonnements en temps réel, du stockage, des fonctions edge et un tableau de bord — tous connectés ensemble et fonctionnant comme une petite flotte de conteneurs Docker.

Faire fonctionner cette flotte sur ton propre serveur coûte entre 12 $ et 25 $ par mois pour un VPS avec assez de RAM pour tout garder en mémoire. C’est deux abonnements de streaming par mois pour un backend qui ne te facturera pas de supplément lors des pics de trafic.

Qu’est-ce Que Supabase, et Pourquoi Les Gens L’hébergent-ils Eux-Mêmes ?

Supabase est une plateforme open-source Backend as a Service (BaaS) qui intègre une base de données Postgres, l’authentification, une API REST, des abonnements en temps réel, du stockage et des fonctions de bord dans un seul déploiement.

C’est l’alternative à Firebase qui fonctionne sur ton propre infrastructure si tu le souhaites. Le dépôt GitHub a franchi 100 000 étoiles en mai 2026, et la plateforme alimente les backends pour des entreprises comme Mozilla, PwC, Johnson & Johnson et 1Password.

La question est de savoir si tu souhaites gérer toi-même le travail opérationnel que Supabase Cloud effectue pour toi ou payer quelqu’un d’autre pour le faire. Nous parlons de sauvegardes, de logs, de livraison d’email et de mises à jour.

Les gens hébergent eux-mêmes Supabase pour trois raisons :

  1. Ils veulent des coûts prévisibles qui ne varient pas avec l’utilisation.
  2. Ils veulent que leurs données soient sur une infrastructure qu’ils contrôlent. 
  3. Ils veulent sortir du piège de la dépendance aux fournisseurs qui rendait si pénible de quitter Firebase.

Supabase est lui-même étonnamment franc sur qui devrait ou ne devrait pas s’auto-héberger. Les documents officiels d’auto-hébergement le disent clairement : “L’auto-hébergement de Supabase est soutenu par la communauté. Tu ne recevras pas le même niveau de support officiel que les clients de Supabase Cloud.”

Traduction : Si quelque chose se casse à 2 heures du matin, tu es seul.

Ce Que Supabase Offre Réellement Dès Le Départ

La pile Supabase montrant les services principaux : Postgres, API REST, authentification, temps réel, stockage, fonctions et passerelle API.

Si tu pensais que Supabase était juste « Postgres avec une API REST », ce n’est pas le cas. La pile auto-hébergée exécute environ 12 conteneurs en parallèle.

Les parties que tu manipuleras le plus souvent sont assez simples :

  • Postgres. La base de données au cœur de tout. Supabase utilise une version moderne de PostgreSQL avec des extensions pour l’authentification, le temps réel et la recherche en texte intégral.
  • PostgREST. Génère automatiquement une API REST à partir de votre schéma Postgres. Une table devient un point de terminaison, et tu n’as pas à écrire de code backend pour cela.
  • Auth (anciennement GoTrue). Gère les inscriptions, les connexions, les réinitialisations de mot de passe, OAuth et l’émission de JWT.
  • Realtime. Envoie les modifications de la base de données aux clients connectés via WebSockets.
  • Stockage. Stockage d’objets compatible S3 avec contrôle d’accès lié à votre base de données.
  • Edge Functions. Fonctions serverless basées sur Deno qui s’exécutent à proximité de tes utilisateurs.
  • Supabase Studio. Le tableau de bord où tu parcours les tables, exécutes SQL et gères les utilisateurs auth.

Tu obtiens également Kong comme passerelle API, imgproxy pour la gestion des images, Supavisor pour le pooling de connexions, et Logflare pour l’analyse. Rassemble tout cela, et tu regardes un stack backend complet, pas une simple application.

Recevez du contenu directement dans votre boîte de réception

Abonnez-vous maintenant pour recevoir toutes les dernières mises à jour directement dans votre boîte de réception.

Combien Coûte L’auto-Hébergement De Supabase ?

L’auto-hébergement de Supabase sur un VPS coûte 12 $ à 25 $ par mois, incluant le serveur, le stockage et la bande passante. Le logiciel Supabase est quant à lui gratuit.

Consulte ta dernière facture Cloud de Supabase un instant. L’élément qui surprend souvent n’est pas le tarif de base de 25 $. Ce sont les sorties de base de données et le stockage supplémentaire, que le plan Pro facture séparément (la décomposition des coûts de Supascale pour 2026 passe en revue les éléments).

Compare cela à Supabase Cloud:

PlanCoût de BaseCe Que Tu Obtient
Gratuit0 $Base de données de 500 MB
50K utilisateurs actifs mensuels
1 GB de stockage
Suspendu après 7 jours d’inactivité
Pro25 $/moisBase de données de 8 GB
100K utilisateurs actifs mensuels
100 GB de stockage
250 GB de sortie
Équipe599 $/moisSupport prioritaire
Single Sign-On (SSO)
Logs d’audit
Échelonnage basé sur l’utilisation
VPS auto-hébergé12-25 $/moisIllimité (limité uniquement par la capacité du serveur)

Le prix de base Pro semble comparable, mais l’utilisation réelle le fait augmenter rapidement.

L’analyse de Supascale montre que la plupart des applications de production de petite à moyenne taille se situent entre 100 $ et 200 $ par mois sur Pro une fois les add-ons de calcul et les dépassements d’usage pris en compte — les paliers de calcul de Supabase vont seuls de 10 $ par mois jusqu’à 3 730 $ par mois pour l’instance 16XL. Les applications avec 100K–200K utilisateurs actifs par mois peuvent bien dépasser cela, et à 500K MAUs, les factures peuvent atteindre 1 000 $–2 000 $ par mois.

Le niveau gratuit est gratuit — jusqu’à ce que tu tentes de l’utiliser pour la production.

Les projets se mettent en pause automatiquement après sept jours d’inactivité, ce qui signifie que ton environnement de préproduction meurt chaque semaine et tes projets secondaires se cassent chaque fois que tu prends des vacances. Selon la répartition des prix de UI Bakery pour 2026, c’est la raison la plus courante pour laquelle les gens quittent le plan gratuit plus tôt que prévu.

L’auto-hébergement inverse l’équation. Tes coûts restent liés à ton infrastructure, et non à ton utilisation. Gérer 50 000 MAUs coûte la même chose que gérer 500 000, limité uniquement par ce que ton VPS peut gérer. Pas de frais de sortie, pas de dépassements de stockage, pas d’extensions de calcul.

L’Auto-Hébergement Ce N’est Pas Juste Une Facture VPS

La facture du VPS n’est pas la seule dépense pour l’auto-hébergement. Tu auras également d’autres dépenses :

  • Ton temps. Prévois de une à deux heures par mois pour l’entretien de routine, comme les mises à jour de sécurité, les téléchargements d’images Docker, la vérification des logs et la vérification des sauvegardes. Prévois plus de temps si tu ajoutes des fonctionnalités ou si tu développes.
  • Livraison d’email. Supabase Cloud gère les emails d’authentification (par exemple, réinitialisations de mot de passe, liens magiques, vérification d’email) en tant que service géré. Ce n’est pas le cas en auto-hébergé. Tu auras besoin d’un fournisseur SMTP tel que SendGrid, Mailgun, ou AWS SES. Prévois 0-30 $/mois selon le volume.
  • Stockage d’objets pour les fichiers. Le service de stockage utilise par défaut le système de fichiers local, ce qui est acceptable pour les tests et une bombe à retardement en production. Tu auras besoin d’un stockage d’objets compatible S3 — AWS S3, Backblaze B2, Wasabi, ou DreamObjects de DreamHost fonctionnent tous. Budgetise 5–20 $/mois pour une application de petite à moyenne en production.
  • Infrastructure de sauvegarde. L’auto-hébergement ne vient pas avec des sauvegardes automatiques, donc tu devras les configurer toi-même. Écris un `simple pg_dump` cron job et stocke le résultat quelque part de fiable. Ne saute pas cette étape ; ton futur toi te remerciera.

Quelles Spécifications Serveur Supabase Nécessite-T-Il ?

Supabase est gourmand en mémoire. Exécuter 12 conteneurs simultanément, la plupart adjacents à une base de données, signifie que la RAM est plus importante que le CPU. Le minimum pratique est de 4 GB pour une instance de développement avec des services optionnels désactivés. Les déploiements en production nécessitent 8 GB ou plus.

La raison est le nombre de conteneurs, et non un service unique. Postgres demande des tampons partagés. PostgREST veut un pool de connexions. GoTrue nécessite une petite empreinte pour l’exécution de Go. Realtime maintient les connexions WebSocket ouvertes. Edge Runtime lance des isolats V8.

Individuellement, chaque service est modeste. Combinés, ils s’additionnent rapidement.

Si tu n’as jamais provisionné un VPS auparavant, commence par notre guide du débutant pour le VPS avant de dimensionner ton serveur.

Chez DreamHost, notre plan Self-Managed VPS Stack 8 offre 8 GB de RAM avec un stockage SSD NVMe et un accès Root complet, la taille idéale pour un déploiement Supabase standard exécutant tous les services optionnels.

Quelle Taille De VPS Supabase Nécessite-T-Il ?

Charge De TravailRAMCPUAdapté Pour
Dév / léger4 GB2 cœursTests, petits projets annexes, Analytique et temps réel désactivés
Standard de production8 GB4 cœursPetites applications SaaS, backends d’applications mobiles, tous les services activés
Lourd16 GB+4-8 cœursTrafic élevé, charges de travail importantes sur Postgres, Fonctions de bord à grande échelle

Tu peux également retirer les services optionnels du fichier Docker Compose pour réduire l’empreinte.

N’as-tu pas besoin d’abonnements en temps réel ? Ignore le conteneur en temps réel.

Vous n’utilisez pas les fonctions Edge ? Supprimer le Runtime Edge.

Les analyses ne sont pas critiques ? Supprimez Logflare.

Une pile allégée pourrait s’adapter plus confortablement sur un VPS de 4 Go.

Le stockage NVMe est plus important qu’on ne le pense. Postgres lit et écrit constamment, et la latence des SSD affecte directement la rapidité d’exécution des requêtes. Les anciens disques SATA ou les disques rotatifs vous ralentiront bien avant que la base de données ne devienne intéressante.

Comment Fonctionne La Configuration De Supabase Auto-Hébergée ?

Processus en cinq étapes pour démarrer le stack : provisionner VPS, installer Docker, cloner le dépôt, générer des secrets, exécuter Docker Compose.

Le déploiement complet comprend environ cinq étapes et prend une à deux heures si tu es à l’aise dans un terminal.

Voici ce que tu dois faire :

  1. Configurer un VPS avec Ubuntu 22.04 ou plus récent, 8 GB de RAM, et un accès SSH.
  2. Installer Docker et Docker Compose sur le serveur.
  3. Cloner le dépôt Supabase et copier le fichier d’environnement exemple : `git clone https://github.com/supabase/supabase && cp supabase/docker/.env.example supabase/docker/.env`
  4. Générer et définir les secrets. Exécutez le script `generate-keys.sh` de Supabase pour produire votre JWT_SECRET, ANON_KEY, et SERVICE_ROLE_KEY, puis définissez POSTGRES_PASSWORD et les identifiants du tableau de bord dans le fichier .env.
  5. Exécuter `docker compose up -d` depuis le répertoire docker, et la pile complète se lance.

Tu sauras que ça a fonctionné lorsque `docker compose ps` montrera chaque service dans un état `running` ou `healthy`, et `curl http://localhost:8000/rest/v1/` renverra une réponse JSON de PostgREST.

Si un conteneur est en `restarting` ou `exited`, vérifie d’abord les logs de ce conteneur. Postgres est généralement le coupable habituel, et la cause est généralement une variable d’environnement manquante ou mal formée.

La documentation officielle de l’auto-hébergement Docker de Supabase décrit chaque variable d’environnement.

Kong, la passerelle API, est placé devant tout et gère le routage. En production, tu mettras généralement un proxy inverse (un serveur qui se trouve entre internet et ton application, gérant le SSL et le routage) comme Caddy ou Nginx devant Kong pour terminer le HTTPS et restreindre l’accès au tableau de bord.

Sauvegarde tes clés JWT_SECRET, ANON_KEY, et SERVICE_ROLE_KEY dans un endroit sûr dès qu’elles sont générées. Les perdre n’est pas catastrophique car tu peux les régénérer, mais les faire tourner oblige chaque session utilisateur active à expirer et chaque application cliente à obtenir de nouvelles clés.

Ce Dont Tu As Besoin Pour Auto-Héberger Supabase

  • Un VPS sous Ubuntu 22.04+ avec au moins 8 Go de RAM et un accès Root/SSH
  • Un nom de domaine pointé vers l’IP de ton serveur
  • Docker et Docker Compose installés
  • Un fournisseur SMTP configuré pour les emails d’authentification (SendGrid, Mailgun, AWS SES)
  • Un stockage d’objets compatible S3 pour les téléchargements de fichiers en production (facultatif mais recommandé)
  • Une connaissance basique du terminal et environ une à deux heures

Comment Gardes-Tu Une Instance Supabase Auto-Hébergée Sécurisée ?

La sécurité de Supabase auto-hébergée repose sur trois piliers spécifiques à la plateforme, en plus de l’hygiène VPS standard.

Trois vulnérabilités de sécurité de la base de données : secret JWT exposé, tables non protégées, et compromission des contrôles d'accès par clé de super-administrateur.

Le Secret JWT

Chaque jeton d’autorisation émis par Supabase est signé avec votre JWT_SECRET. S’il fuit, les attaquants peuvent forger des jetons qui usurpent l’identité de n’importe quel utilisateur.

Les documents de sécurité des tokens Supabase expliquent comment cela fonctionne : “Un secret partagé qui est entre les mains d’un acteur malveillant peut être utilisé pour usurper l’identité de tes utilisateurs [et] leur donner accès à des actions ou des données privilégiées, et il est difficile de détecter ou d’identifier quand ou comment un secret partagé a été remis à un acteur malveillant.”

Traite le JWT_SECRET comme un mot de passe de base de données en production car, fonctionnellement, c’est exactement ce que c’est. Stocke-le dans un gestionnaire de secrets, pas dans un fichier `.env` sur Git, et jamais dans ton bundle frontend.

Le chemin de production recommandé est les clés de signature asymétriques (RS256 ou ECC). Elles sont plus difficiles à divulguer accidentellement qu’un secret partagé, et Supabase prend en charge les deux.

Sécurité Au Niveau Des Lignes

Le service PostgREST de Supabase expose chaque table de votre base de données en tant que point de terminaison REST.

Sans politiques de sécurité au niveau des lignes sur chaque table, chaque utilisateur authentifié peut lire et écrire chaque ligne. C’est la plus grande erreur de self-hosting que les nouveaux utilisateurs font.

Active le RLS sur chaque table dès le premier jour, y compris les tables dont tu penses qu’elles n’en ont pas besoin.

Clé De Rôle De Service

La clé SERVICE_ROLE_KEY est une clé super-admin qui contourne entièrement la sécurité au niveau des lignes.

Il est destiné aux appels de backend à backend où tu dois explicitement ignorer les permissions au niveau de l’utilisateur. La clé ne doit jamais apparaître dans le code frontend, les dépôts publics, ou les paquets d’applications clients. Si elle fuit, ta base de données entière est exposée.

Outre les préoccupations spécifiques à Supabase, l’application des mesures de sécurisation standard est nécessaire. Active un pare-feu qui n’expose que les ports 22 (SSH), 80 (HTTP) et 443 (HTTPS). Fais fonctionner tout derrière un proxy inverse avec HTTPS. Restreins Supabase Studio aux IP connues et maintiens le serveur à jour. Nos conseils de sécurité Cloud couvrent la liste de vérification générale de sécurisation, donc tu veux y jeter un œil.

Une dernière chose : la rotation du secret JWT invalide immédiatement toutes les sessions d’utilisateur actives. Prévois une fenêtre de maintenance, et ne fais pas la rotation un vendredi après-midi — ou tu vas passer un mauvais moment.

Quels Sont Les Compromis Entre Hébergement Autonome et Supabase Cloud ?

Supabase auto-hébergé et Supabase Cloud ne sont pas interchangeables. Chacun est avantageux selon différents critères.

FonctionnalitéAuto-HébergéSupabase Cloud
Coût mensuel$12-$25 VPS + modules complémentaires$25 de base + dépassements d’utilisation
Extension au-delà de la baseLimité par ton VPSAutomatique (pour un prix)
Sauvegardes automatiséesÀ faire toi-même (pg_dump cron)Automatique quotidienne + PITR
Logs (PostgREST, Edge Functions)Pile d’observabilité à faire toi-mêmeIntégré au tableau de bord
Édition des Edge FunctionsUniquement CLIÉditeur dans le tableau de bord
Livraison d’EmailFournisseur SMTP à faire toi-mêmeGérée
SupportCommunauté (GitHub, Discord)Niveaux payants avec SLA
Localisation des donnéesLà où tu veuxRégions cloud de Supabase
ConformitéÀ ta chargePro+ nécessaire

L’auto-hébergement est logique lorsque les coûts prévisibles sont plus importants que la commodité gérée, lorsque tu as besoin que les données soient physiquement sur une infrastructure que tu contrôles, ou lorsque tu gères plusieurs projets qui coûteraient chacun plus de 25 $ par mois sur le Cloud.

Le Cloud est gagnant lorsque la capacité opérationnelle est limitée et lorsque les sauvegardes automatisées et une disponibilité garantie par SLA sont indispensables. C’est également un bon choix lorsque ton équipe est petite et que le calcul du coût total de possession favorise réellement l’hébergement géré.

Il y a aussi un juste milieu.

Des outils comme Coolify, Dokploy et Railway peuvent déployer et gérer Supabase sur ton VPS, en prenant en charge les mises à jour, les sauvegardes et une certaine observabilité sans l’approche complète manuelle de Docker Compose.

En résumé, tu bénéficies de la plupart des avantages économiques de l’hébergement autogéré avec moins de charges opérationnelles. Aucun n’égale la finition du tableau de bord de Cloud, mais tous coûtent moins cher que Cloud à grande échelle.

Devrais-Tu Vraiment Auto-Héberger Supabase ?

L’auto-hébergement de Supabase n’est pas autant une décision financière qu’une décision opérationnelle.

Le VPS est bon marché. Ce pour quoi tu t’inscris réellement, c’est la possession des sauvegardes, des logs et de la configuration des emails d’authentification. Pour la plupart des petites équipes, ce compromis n’a de sens que lorsque les prix du Cloud commencent à piquer ou lorsque la résidence des données cesse d’être un plus pour devenir une exigence.

Si tu n’es pas prêt pour la configuration manuelle complète, des outils comme Coolify et Dokploy se situent entre les deux. Ils géreront la pile sur ton VPS avec moins de surcharge que le Docker Compose brut et à un coût inférieur à celui du Cloud une fois que tu auras augmenté la taille.

Le premier mois d’auto-hébergement est le plus difficile. Tu vas ajuster les limites de ressources que tu ne connaissais pas, découvrir des modes de défaillance non documentés, et rédiger le manuel d’utilisation que tu aurais aimé que quelqu’un d’autre te remette.

Les mois deux à douze deviennent calmes. Tu tires les mises à jour avec Docker Compose, exécutes un pg_dump nocturne vers S3, et ta facture reste stable.

La meilleure façon de découvrir de quel côté tu te trouves : lance un VPS à 12 $, exécute une instance Supabase non-production pendant une semaine, et laisse l’expérience décider pour toi.

L’économie te dira le reste.

VPS

Maîtrisez toute votre stack. Applications, IA, bases de données et plus encore.

Gardez chaque identifiant et chaque conversation sur un serveur que vous contrôlez, avec la vitesse NVMe et une bande passante illimitée intégrées.

Découvrez les forfaits d’hébergement VPS

Questions Fréquemment Posées Sur L’Auto-Hébergement De Supabase

Pas sûr que l’auto-hébergement de Supabase soit le bon choix? Voici quelques questions que la plupart des gens posent avant de se lancer.

Supabase auto-hébergé est-il vraiment gratuit ?

Supabase auto-hébergé est gratuit, logiciel open-source sous licence Apache 2.0. Tes coûts réels sont le VPS, un fournisseur SMTP optionnel pour les emails d’authentification, et un stockage compatible S3 optionnel pour les téléversements de fichiers en production. Prévois environ 15 à 50 dollars par mois en totalité pour un petit déploiement de production.

De quel serveur ai-je besoin pour héberger moi-même Supabase ?

La spécification de production recommandée est 8 GB de RAM, 4 cœurs CPU, et un stockage SSD NVMe. La pile complète Supabase exécute environ une douzaine de conteneurs, et la plupart d’entre eux contiennent de la mémoire vive.

Tu peux exécuter une instance de développement minimale sur 4 Go si tu désactives Analytics, Realtime et Edge Runtime dans ton fichier Docker Compose. Le plan Stack 8 de VPS autogéré de DreamHost offre 8 Go de RAM avec un accès Root complet ; consulte nos plans de VPS hosting pour voir la gamme complète.

Quelles fonctionnalités manquent dans Supabase auto-hébergé ?

Les plus grandes lacunes sont les sauvegardes automatisées de bases de données, la récupération à un point donné, l’édition de fonctions de bord basée sur tableau de bord, la journalisation unifiée pour PostgREST et les fonctions de bord, ainsi que la gestion de la livraison d’emails. Tu peux construire des remplacements pour tous ces éléments (par exemple, des travaux de `pg_dump` Cron Job, une pile d’observabilité personnalisée, un fournisseur SMTP), mais rien n’est prêt à l’emploi. Le tableau de bord Supabase Studio fonctionne en auto-hébergé, mais le tableau de bord Cloud est plus soigné et dispose de fonctionnalités plus récentes en premier.

Comment mettre à jour une instance Supabase auto-hébergée ?

Exécute `docker compose pull` pour récupérer les dernières images, puis `docker compose up -d` pour redémarrer avec les nouvelles versions. La mise à jour complète prend environ cinq minutes sur une instance saine.

Sauvegarde ta base de données Postgres avec `pg_dump` avant toute mise à jour de version majeure, fixe tes images Docker sur des tags de version spécifiques en production, et lis les notes de version de Supabase pour les changements majeurs. Les services d’authentification et de stockage nécessitent parfois des étapes de migration.

Puis-je migrer de Supabase Cloud vers une solution auto-hébergée ?

Oui, mais cela nécessite plus qu’un export de base de données. Les données Postgres migrent avec `pg_dump` depuis le Cloud et `pg_restore` en auto-hébergé. Les utilisateurs authentifiés, les objets de stockage et les fonctions de bord ont chacun leurs propres chemins de migration.

Prévois quelques heures de travail pour un petit projet et plus longtemps pour des schémas complexes.