Supabase selbst hosten im Produktivbetrieb: Setup, Backup, Kosten

Von Felix Lange, Geschäftsführer, Technik
Veröffentlicht am · 10 Min. Lesezeit
Supabase lässt sich mit Docker Compose vollständig selbst hosten — für den Produktivbetrieb reicht die Installation allein aber nicht. Nötig sind eigene Schlüssel und Passwörter, ein Reverse Proxy mit HTTPS, ein nicht öffentlich erreichbares Dashboard, Firewall, Updates und eine Datensicherung mit getesteter Wiederherstellung. Der Anbieter übernimmt dabei nichts; Betrieb und Ausfälle liegen bei Ihnen.
Das Wichtigste in Kürze
- Selbst gehostetes Supabase läuft mit Docker Compose; laut Dokumentation ist dieser Weg community-gestützt, und Betrieb, Sicherheit und Sicherungen liegen bei Ihnen.
- Vor dem Start müssen alle Beispielwerte ersetzt werden: Datenbank- und Dashboard-Passwort, Signaturschlüssel und API-Schlüssel.
- Der geheime API-Schlüssel umgeht die Row Level Security und gehört ausschließlich auf den Server, nie in eine App oder ein Repository.
- Verwaltete Sicherungen und Point-in-Time-Recovery gibt es beim Selbstbetrieb nicht — logische Sicherung, Basissicherung und WAL-Archivierung richten Sie selbst ein.
- Neben Server und Speicher kostet vor allem der Betrieb: Updates, Überwachung und Wiederherstellungstests brauchen jeden Monat feste Zeit.
Wann lohnt es sich, Supabase selbst zu hosten?
Supabase ist eine Plattform um die Datenbank PostgreSQL herum: Datenbank, Anmeldung, Dateiablage und serverseitige Funktionen in einem Paket. Supabase ist quelloffen und lässt sich vollständig selbst betreiben. Der Unterschied zur verwalteten Instanz liegt im Betrieb, nicht im Code. Wie wir Anwendungen auf dieser Grundlage bauen, beschreibt die Seite Supabase in Entwicklung und Betrieb.
Selbst hosten ist sinnvoll, wenn Auflagen verlangen, dass Daten auf eigenen Servern liegen, wenn eine bestehende Serverlandschaft genutzt werden soll oder wenn die Installation ohne Verbindung nach außen laufen muss. Als Grundeinstellung empfehlen wir es nicht, weil der Betrieb dann bei Ihnen oder bei Ihrem Dienstleister liegt und nicht beim Anbieter.
Laut Supabase-Dokumentation fehlen im Selbstbetrieb einige Funktionen der verwalteten Plattform, darunter Branching für Vorschau-Umgebungen, verwaltete Sicherungen mit Point-in-Time-Recovery und die Management-Schnittstelle der Plattform. Der Selbstbetrieb ist laut Dokumentation community-gestützt: Hilfe gibt es über GitHub, Discord und Foren, und Einrichtung, Absicherung, Updates und Sicherungen liegen beim Betreiber. Die Rechtsfragen rund um den Serverstandort beschreibt der Ratgeber DSGVO-konformes Hosting in Deutschland.
Aus welchen Komponenten besteht eine selbst gehostete Supabase-Installation?
Die offizielle Docker-Compose-Konfiguration startet eine Reihe von Diensten, die zusammen die Plattform ergeben:
| Komponente | Aufgabe |
|---|---|
| Postgres | Die eigentliche Datenbank mit Tabellen, Rechten und Row Level Security |
| Auth | Registrierung, Anmeldung und Sitzungen auf Basis von JSON Web Tokens (JWT) |
| PostgREST | Macht die Datenbank als REST-Schnittstelle erreichbar |
| Realtime | Überträgt Änderungen an Tabellen an verbundene Clients |
| Storage und imgproxy | Dateiablage, wahlweise mit S3-kompatiblem Speicher dahinter, dazu Bildverarbeitung |
| Edge Runtime | Führt Edge Functions aus, also serverseitige Funktionen in JavaScript oder TypeScript |
| API-Gateway | Bündelt alle Dienste hinter einem Eingang; Standard ist Envoy, Kong ist als Alternative vorgesehen |
| Studio | Die Verwaltungsoberfläche, im Standard mit HTTP-Basic-Authentifizierung geschützt |
| Supavisor | Verbindungspooler, der Datenbankverbindungen bündelt |
| postgres-meta | Schnittstelle zur Verwaltung der Datenbank |
| Logflare und Vector | Sammeln und Auswerten von Protokollen; optional, in der Standardkonfiguration nicht enthalten |
Supabase nennt als Mindestausstattung 4 GB Arbeitsspeicher, 2 Prozessorkerne und 40 GB SSD-Speicher; empfohlen sind 8 GB, 4 Kerne und 80 GB. Nicht benötigte Dienste lassen sich abschalten, um Ressourcen zu sparen. Für den Produktivbetrieb ist die empfohlene Ausstattung der sinnvollere Ausgangspunkt, weil Datenbank, Dateien und Protokolle mitwachsen.
Wie sieht ein produktives Setup aus?
Wir setzen selbst gehostetes Supabase auf Ubuntu mit Docker Compose auf, davor Nginx als Reverse Proxy mit automatisch erneuerten Zertifikaten. Die Supabase-Dokumentation empfiehlt für den Produktivbetrieb ebenfalls einen Reverse Proxy wie Caddy oder Nginx vor dem API-Gateway, weil HTTPS mit gültigem Zertifikat nötig ist, spätestens bei einer Anmeldung über OAuth-Anbieter.
Server vorbereiten
Aktuelles Ubuntu mit eingespielten Sicherheitsupdates, Anmeldung per SSH-Schlüssel statt Passwort, eigene Benutzer für die Administration.
Konfiguration anlegen
Die Docker-Compose-Konfiguration aus dem offiziellen Repository übernehmen und die Umgebungsdatei vollständig mit eigenen Werten füllen. Die Beispielwerte dürfen nie in Betrieb gehen.
Reverse Proxy und Zertifikate
Nginx nimmt die Anfragen per HTTPS entgegen und leitet sie an das API-Gateway weiter. Zertifikate werden automatisch erneuert, damit kein abgelaufenes Zertifikat die Anwendung lahmlegt.
Daten auf eigene Datenträger
Datenbankdateien und Dateiablage liegen in Verzeichnissen, die gesichert und überwacht werden. Wer Storage mit einem S3-kompatiblen Speicher betreibt, bezieht diesen in die Sicherung ein.
Migrationen einspielen
Schema und Row-Level-Security-Policies kommen als Migrationsdateien aus der Versionskontrolle, nicht aus Klicks im Dashboard. So lässt sich jede Umgebung reproduzierbar aufbauen.
Wie sichern Sie selbst gehostetes Supabase ab?
Die Beispielkonfiguration ist für einen Test gedacht, nicht für den Betrieb. Vor dem ersten echten Datensatz sollten diese Punkte erledigt sein:
- Eigene Geheimnisse: Datenbank-Passwort, Dashboard-Passwort, die Schlüssel zum Signieren der Anmelde-Token und alle weiteren Schlüssel der Umgebungsdatei neu erzeugen. Die Dokumentation liefert dafür Skripte mit.
- API-Schlüssel richtig verteilen: Der öffentliche Schlüssel (Publishable Key, früher anon key) darf in Browser und App, weil seine Rechte über Row Level Security begrenzt sind. Der geheime Schlüssel (Secret Key, früher service_role key) umgeht Row Level Security und gehört nur in serverseitige Umgebungen und Edge Functions — nie in eine Client-Anwendung, nie ins Repository.
- Studio nicht öffentlich: Das Dashboard ist im Standard nur mit Benutzername und Passwort geschützt. Im Produktivbetrieb sollte es nur über VPN, einen SSH-Tunnel oder freigegebene IP-Adressen erreichbar sein.
- Firewall: Von außen sind nur HTTPS und der Verwaltungszugang erreichbar. Die Datenbank-Ports bleiben geschlossen, solange keine Anwendung außerhalb des Servers direkt darauf zugreifen muss.
- Row Level Security auf jeder Tabelle: Jede Tabelle mit Kundendaten bekommt ihre Policies, bevor sie Daten enthält.
- Updates: Betriebssystem, Docker und Supabase-Dienste werden regelmäßig aktualisiert, nicht erst nach einer Sicherheitsmeldung.
Wie sichern Sie die Daten einer selbst gehosteten Supabase-Instanz?
Im Selbstbetrieb gibt es keine verwalteten Sicherungen. PostgreSQL kennt drei grundlegend verschiedene Wege der Sicherung; im Produktivbetrieb ist eine Kombination sinnvoll. WAL steht dabei für Write-Ahead Log, das Protokoll, in dem PostgreSQL jede Änderung an den Datendateien festhält.
| Verfahren | Werkzeug | Stärke | Grenze |
|---|---|---|---|
| Logische Sicherung | pg_dump für eine Datenbank, pg_dumpall für alle | Portabler Auszug, der sich in jede andere PostgreSQL-Installation einspielen lässt | Nur der Stand zum Zeitpunkt der Sicherung; bei großen Datenbanken langsam |
| Physische Sicherung | pg_basebackup | Vollständige Kopie der Datenbankdateien als Grundlage für eine Wiederherstellung | Allein nur so aktuell wie der Zeitpunkt der Sicherung |
| WAL-Archivierung | archive_command oder archive_library in PostgreSQL | Zusammen mit einer Basissicherung Wiederherstellung auf jeden Zeitpunkt (Point-in-Time-Recovery) | Braucht eine lückenlose Folge archivierter WAL-Dateien seit der Basissicherung |
Die Datenbank ist nicht alles. Die Dateien in Storage liegen außerhalb der Datenbank, auf einem eigenen Datenträger oder in einem S3-kompatiblen Speicher, und brauchen eine eigene Sicherung. Dasselbe gilt für die Umgebungsdatei mit den Schlüsseln, verschlüsselt abgelegt. Ohne sie passen wiederhergestellte Daten und Anwendung nicht mehr zusammen, weil neue Schlüssel in allen Clients ausgetauscht werden müssten.
Für alle Teile gilt das 3-2-1-Prinzip: drei Kopien, zwei verschiedene Medien, eine davon außer Haus. Ein Auszug gehört an einen Ort, der weder auf demselben Server noch im selben Konto liegt. Und eine Sicherung gilt erst dann als Sicherung, wenn sie in eine leere Umgebung zurückgespielt wurde und die Anwendung danach läuft. Diesen Wiederherstellungstest dokumentieren wir, statt nur einen Kopiervorgang zu prüfen. Wie das Prinzip im Alltag aussieht, beschreibt der Ratgeber zum Backup-Konzept nach 3-2-1.
Vorher festlegen, was verloren gehen darf
Legen Sie vor dem Start fest, wie lange eine Wiederherstellung dauern darf und wie viele Minuten oder Stunden an Daten im Ernstfall verloren gehen dürfen. Daraus ergibt sich, ob ein nächtlicher Auszug reicht oder ob WAL-Archivierung nötig ist.
Wie überwachen und aktualisieren Sie die Installation?
Ein selbst gehosteter Dienst braucht dieselbe Überwachung wie jeder andere Server: Erreichbarkeit der Schnittstelle von außen, Auslastung von Prozessor, Arbeitsspeicher und Datenträgern, Laufzeit der Zertifikate, Erfolg der nächtlichen Sicherung und das Wachstum des WAL-Archivs. Wichtig ist eine Alarmierung, die jemand liest. Ein Fehlerprotokoll, das niemand öffnet, ist keine Überwachung.
Supabase veröffentlicht nach eigenen Angaben etwa einmal im Monat einen stabilen Stand der Docker-Compose-Konfiguration. Ein mitgeliefertes Skript übernimmt die Aktualisierung und führt die neue Konfiguration mit Ihren Anpassungen zusammen. Änderungen laufen bei uns zuerst auf einer Testumgebung und erst danach im Betrieb. Vor jede Aktualisierung gehört eine frische Sicherung. Ein Sprung auf eine neue Hauptversion von PostgreSQL ist ein eigenes kleines Projekt und gehört nicht in ein Routine-Update.
Was kostet der Selbstbetrieb von Supabase?
Die Software selbst verursacht keine Lizenzkosten. Die Kosten entstehen im Betrieb, und sie lassen sich in vier Arten einteilen:
| Kostenart | Was dazugehört | Wovon sie abhängt |
|---|---|---|
| Server | Gemieteter Server im Rechenzentrum oder eigene Hardware, dazu eine Testumgebung | Datenmenge, Zahl gleichzeitiger Nutzer, Anspruch an die Verfügbarkeit |
| Speicher | Datenträger für Datenbank und Dateiablage, gegebenenfalls S3-kompatibler Speicher | Wachstum der Daten und der hochgeladenen Dateien |
| Sicherung | Speicherplatz außer Haus für Auszüge, Basissicherungen und WAL-Archiv | Aufbewahrungsdauer und Häufigkeit der Sicherungen |
| Betriebsaufwand | Updates, Überwachung, Wiederherstellungstests, Reaktion auf Störungen | Zugesagte Reaktionszeit und Zahl der Umgebungen |
Serverpreise nennen wir hier bewusst nicht, weil sie sich je nach Anbieter und Ausstattung stark unterscheiden und schnell ändern. Die Position, die man leicht unterschätzt, ist der Betriebsaufwand: Er fällt jeden Monat an, auch wenn nichts passiert. Wie sich die Kosten einer Anwendung über Entwicklung und Betrieb verteilen, beschreibt der Ratgeber Was kostet Individualsoftware wirklich?.
Wann ist die verwaltete Supabase-Instanz die bessere Wahl?
Die verwaltete Instanz in einer EU-Region ist der übliche Weg, wenn keine Auflage dagegen spricht. Supabase betreibt die Instanz, Point-in-Time-Recovery gibt es, wo der Tarif es hergibt, und die Region wird beim Anlegen auf die EU festgelegt; nachträglich lässt sie sich nicht ändern. Vor dem ersten echten Datensatz steht der Auftragsverarbeitungsvertrag mit dem Anbieter. Die verwaltete Instanz ist die bessere Wahl, wenn
- keine Auflage eigene Server verlangt,
- niemand im Betrieb oder beim Dienstleister Updates, Überwachung und Wiederherstellungstests verlässlich übernimmt,
- Funktionen wie Branching oder Point-in-Time-Recovery gebraucht werden, ohne sie selbst aufzubauen,
- die Anwendung noch klein ist und der Betriebsaufwand in keinem Verhältnis zum Nutzen stünde.
Ein späterer Wechsel bleibt möglich: Unter Supabase liegt eine gewöhnliche PostgreSQL-Datenbank, deren vollständiger Auszug sich in jede andere Postgres-Installation einspielen lässt. Gebunden ist man an die Zusatzdienste, nicht an die Daten. Bei unserer Individualsoftware halten wir die Fachlogik deshalb in der Anwendung und nicht in anbieterspezifischen Bausteinen und übergeben Quellcode, Migrationen und Deployment-Anleitung vollständig.
Passende Leistung
Individualsoftware
Wir entwickeln Anwendungen auf Supabase und betreiben sie auf Wunsch selbst gehostet auf Ubuntu mit Docker Compose und Nginx, mit Sicherung nach 3-2-1 und dokumentiertem Wiederherstellungstest. Quellcode, Migrationen und Deployment-Anleitung gehören Ihnen.
Wir antworten innerhalb von 24 Stunden — 7 Tage die Woche, auch an Feiertagen.
Quellen und Stand
- Supabase — Self-Hosting with Docker
- Supabase — Self-Hosting
- Supabase — API Keys
- PostgreSQL Global Development Group — Backup and Restore
- PostgreSQL Global Development Group — Continuous Archiving and Point-in-Time Recovery
Stand der Angaben: . Preise, Fristen und Programme ändern sich; maßgeblich ist jeweils die verlinkte Quelle. Der Artikel ersetzt keine Rechts- oder Steuerberatung.

Über den Autor
Felix Lange
Mitgründer und Geschäftsführer, Technik, Rentavo-Services
Verantwortlich für Architektur, Entwicklung und Qualitätssicherung. Baut die Systeme, die wir bei unseren Kunden betreiben — und betreibt sie auch selbst.
- ISTQB Certified Tester, Foundation Level 4.0
- Ausbildung zum Fachinformatiker für Anwendungsentwicklung
- Studium Wirtschaftsingenieurwesen
Häufige Fragen
Die Kurzfassung zu den Fragen, die an dieser Stelle am häufigsten gestellt werden.
Ist selbst gehostetes Supabase kostenlos?
Die Software verursacht keine Lizenzkosten, der Betrieb schon. Sie zahlen für Server, Speicher und Sicherung außer Haus, vor allem aber für die Zeit, die Updates, Überwachung und Wiederherstellungstests kosten. Ob das günstiger ist als die verwaltete Instanz, hängt davon ab, ob diese Arbeit ohnehin erledigt wird, etwa weil bereits eigene Server betreut werden.
Welche Funktionen fehlen beim Selbsthosten von Supabase?
Laut Supabase-Dokumentation stehen im Selbstbetrieb unter anderem Branching, erweiterte Metriken über die Protokolle hinaus, verwaltete Sicherungen mit Point-in-Time-Recovery und die Management-Schnittstelle der Plattform nicht zur Verfügung. Point-in-Time-Recovery lässt sich mit den Mitteln von PostgreSQL selbst aufbauen, über Basissicherung und WAL-Archivierung. Auf die übrigen Funktionen verzichtet man oder ersetzt sie durch eigene Werkzeuge.
Kann ich später von der verwalteten Instanz auf Selbsthosting wechseln?
Ja. Unter Supabase liegt eine gewöhnliche PostgreSQL-Datenbank, deren Auszug sich in eine selbst betriebene Installation einspielen lässt. Aufwand machen die Dateien in der Ablage, die Einstellungen der Anmeldung, Edge Functions und neue Schlüssel, die in allen Anwendungen getauscht werden müssen. Ein Wechsel ist damit Arbeit, aber kein Neubau, sofern die Fachlogik nicht in anbieterspezifischen Bausteinen steckt.
Wie oft sollte eine selbst gehostete Supabase-Datenbank gesichert werden?
Das ergibt sich aus der Frage, wie viele Daten im Ernstfall verloren gehen dürfen. Reicht der Stand vom Vorabend, genügt ein nächtlicher Auszug mit einer Kopie außer Haus. Soll kaum etwas verloren gehen, braucht es eine Basissicherung mit fortlaufender WAL-Archivierung. In beiden Fällen gehört ein regelmäßiger Wiederherstellungstest in eine leere Umgebung dazu.
Darf das Supabase-Dashboard aus dem Internet erreichbar sein?
Technisch ja, empfehlenswert ist es nicht. Im Standard schützt nur eine Anmeldung mit Benutzername und Passwort das Dashboard, über das sich die gesamte Datenbank verwalten lässt. Im Produktivbetrieb sollte Studio nur über VPN, einen SSH-Tunnel oder eine Freigabe für bestimmte IP-Adressen erreichbar sein. Das Dashboard-Passwort muss vor dem ersten Start geändert werden.
