5.8 KiB
title: Supabase created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, development, baas, backend, firebase] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Development, https://github.com/supabase/supabase]
💻 Supabase
Alternative open source à Firebase — backend complet (PostgreSQL, Auth, Storage, Edge Functions, Realtime) en self-hosted.
📋 Informations Générales
| Attribut | Valeur |
|---|---|
| Nom | Supabase |
| Slug | supabase |
| Description | BaaS open source (Firebase-like) construit sur PostgreSQL |
| Site officiel | https://supabase.com |
| Repository | https://github.com/supabase/supabase |
| Stars | 103 725 ⭐ |
| Licence | MIT (modules Enterprise sous licence commerciale) |
| Langage principal | TypeScript / Elixir (GoTrue, Realtime) |
| Catégorie | Development |
| Tags | [catalogue, development, baas, backend, firebase] |
📝 Description
Supabase se positionne comme « The Open Source Firebase Alternative ». Le projet encapsule un ensemble de services backend autour d'une base PostgreSQL : authentification (GoTrue), stockage objet compatible S3, fonctions edge en Deno, base temps réel via WebSocket, et un studio web pour administrer les données. Chaque service est un container Docker indépendant, ce qui rend l'auto-hébergement modulaire.
Modèle de licence hybride : le cœur (supabase/supabase, postgres-meta, postgrest, GoTrue, Realtime, Storage) est sous Apache 2.0 / MIT, mais Supabase vend des modules Enterprise Edition (EE) (log drains, SSO/SAML avancé, support prioritaire, compute dédié). Pour un self-host 100 % open source, se contenter des modules Community Edition et désactiver les briques EE. Usage gratuit en local ou sur son propre serveur ; la plateforme cloud officielle reste un service freemium.
Cas d'usage : MVP d'application mobile/web, prototypes avec auth + base + fichiers sans coder le backend, ou migration depuis Firebase pour reprendre le contrôle de ses données PostgreSQL.
🚀 Installation
Via Docker (recommandé)
# docker-compose.yml minimal (stack officielle)
version: "3.8"
services:
studio:
image: supabase/studio:latest
ports: ["3000:3000"]
environment:
STUDIO_PG_META_URL: http://meta:8080
depends_on: [db, meta]
db:
image: postgres:15
environment:
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes: ["./data/db:/var/lib/postgresql/data"]
meta:
image: supabase/postgres-meta:latest
ports: ["8080:8080"]
environment:
PG_META_DB_URL: postgresql://postgres:${POSTGRES_PASSWORD}@db:5432/postgres
auth:
image: supabase/gotrue:v2
environment:
GOTRUE_JWT_SECRET: ${JWT_SECRET}
DATABASE_URL: postgres://supabase_auth_admin:${POSTGRES_PASSWORD}@db:5432/postgres
rest:
image: postgrest/postgrest:latest
environment:
PGRST_DB_URI: postgres://authenticator:${POSTGRES_PASSWORD}@db:5432/postgres
storage:
image: supabase/storage-api:latest
environment:
DATABASE_URL: postgres://supabase_storage_admin:${POSTGRES_PASSWORD}@db:5432/postgres
realtime:
image: supabase/realtime:latest
environment:
DB_URL: postgres://supabase_realtime_admin:${POSTGRES_PASSWORD}@db:5432/postgres
⚠️ Note : la stack officielle utilise docker-compose.yml + docker.env du repo supabase/supabase (auto-hébergé). Prévoir 2 Go RAM minimum, 4 Go recommandé.
Installation manuelle
Installation manuelle déconseillée : il faut compiler GoTrue, Realtime (Elixir), Storage (Rust), PostgREST (Haskell) et gérer le provisioning PostgreSQL avec les rôles anon, authenticated, service_role. Privilégier l'image officielle.
⚙️ Configuration
- JWT_SECRET : secret long et unique (32+ caractères) partagé entre GoTrue et PostgREST.
- SITE_URL / API_EXTERNAL_URL : URLs publiques du Studio et de l'API (HTTPS obligatoire en prod).
- ENABLE_SIGNUP : à
falsepour fermer les inscriptions si le service est exposé. - SMTP : à configurer obligatoirement (host, port, user, pass) pour les mails d'auth.
- Studio :
STUDIO_DEFAULT_PROJECTet clés d'admin pour le premier bootstrap.
🔗 Alternatives
- Appwrite — BaaS open source orienté multi-langages, API REST + WebSocket, plus simple à déployer.
- Firebase — BaaS propriétaire de Google (cloud uniquement), source d'inspiration directe de Supabase.
- Nhost — BaaS GraphQL (Hasura + PostgreSQL + Auth + Storage), moins modulaire mais plus rapide à prendre en main.
🔒 Sécurité
- Ne jamais exposer le port PostgreSQL (5432) sur Internet : c'est un accès root à la base.
- Activer HTTPS (Traefik / Nginx Proxy Manager) — les JWT et refresh tokens transitent en clair sinon.
- Service Role Key = super-admin : ne JAMAIS la mettre côté client, ni dans une variable d'environnement exposée.
- Row Level Security (RLS) : activer systématiquement les policies RLS sur les tables sinon
anonpeut tout lire/écrire via PostgREST. - Backups :
pg_dumpquotidien + WAL archiving (oubarman/wal-g) ; Supabase ne fait pas de backup automatique en self-hosted.
📚 Ressources
🔗 Pages Liées
- cat-development — Catégorie Development
- app-appwrite — BaaS open source concurrent direct
- app-traefik — Reverse-proxy HTTPS recommandé devant Supabase
- securisation-home-lab — Bonnes pratiques de sécurité
- recettes-docker-compose — Templates Docker Compose