Erstgespräch buchen
Stack im Einsatz

Supabase-Stack — Backend-as-a-Service auf eigenem Server

Dreizehn Container, die zusammen eine vollständige Backend-Plattform bilden: , Auth, Realtime, Storage, , Studio-UI, API-Gateway. Eine konkrete Alternative zu Firebase und AWS Amplify für Startups und SaaS-Anbieter mit DSGVO-Anspruch.

Compose-Auszug — Kern-Services des Supabase-Stacks

services:
  db:
    image: supabase/postgres:15.8.1.085
    container_name: supabase-db
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "postgres"]
    environment:
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      JWT_SECRET: ${JWT_SECRET}
    volumes:
      - db_data:/var/lib/postgresql/data

  auth:
    image: supabase/gotrue:v2.186.0
    depends_on: { db: { condition: service_healthy } }
    environment:
      GOTRUE_DB_DRIVER: postgres
      GOTRUE_DB_DATABASE_URL: postgres://supabase_auth_admin:...@db:5432/postgres
      GOTRUE_JWT_SECRET: ${JWT_SECRET}
      GOTRUE_MAILER_AUTOCONFIRM: "false"
      GOTRUE_SMTP_HOST: mail.lernnet.de

  rest:
    image: postgrest/postgrest:v14.5
    depends_on: { db: { condition: service_healthy } }
    environment:
      PGRST_DB_URI: postgres://authenticator:...@db:5432/postgres
      PGRST_DB_SCHEMAS: public,storage,graphql_public
      PGRST_JWT_SECRET: ${JWT_SECRET}

  kong:
    image: kong:2.8.1
    ports: ["8000:8000", "8443:8443"]
    volumes:
      - ./volumes/api/kong.yml:/home/kong/temp.yml:ro
    environment:
      KONG_DECLARATIVE_CONFIG: /home/kong/kong.yml
      KONG_LOG_LEVEL: info
Auszug aus dem offiziellen docker-compose.yml. Insgesamt 13 Services orchestriert über Kong-Gateway. PostgreSQL als Single Source of Truth, alle anderen Services kommunizieren über die DB. Quelle: github.com/supabase/supabase, Apache-2.0.

Dreizehn Komponenten als Backend-Plattform

ist keine einzelne Anwendung — es ist ein orchestriertes Bündel aus Open-Source-Komponenten, die zusammen das leisten, was Firebase als proprietärer Service liefert. Jede Komponente einzeln ist tauschbar.

PostgreSQL

Datenbank-Kern

Das Herz des Stacks. ist die — alle Daten, Auth-User, Storage-Metadaten, Edge-Function-Logs gehen hier durch.

PostgreSQLC

PostgREST

27k

Auto-REST-API aus dem Schema

Generiert automatisch eine vollständige aus dem PostgreSQL-Schema. Kein Backend-Code für CRUD nötig — Tabellen werden zu Endpoints.

MITHaskell

GoTrue (Auth)

2.5k

Authentifizierung + User-Management

User-Verwaltung, E-Mail-Login, OAuth (Google, GitHub, ...), Magic Links, MFA. JWT-basierte Sessions, kompatibel mit allen anderen Komponenten.

MITGo

Realtime

7.6k

WebSocket-Live-Updates

Liest Logical Replication und pusht Änderungen via an verbundene Clients. Für Live-Quizze, Kollaboration, Echtzeit-Dashboards.

Apache-2.0Elixir

Storage

1.3k

S3-kompatible Datei-Storage

S3-API für Datei-Uploads (PDFs, Videos, Bilder). Access-Control via PostgreSQL-Row-Level-Security. Backend-frei für Auth-Logik.

Apache-2.0TypeScript

Studio

103k

Browser-UI für DB und Auth

Browser-Oberfläche für DB-Admin, SQL-Editor, Schema-Designer, User-Management, Storage-Browser. Die offizielle Supabase-Cloud-UI als Self-Hosted-Version.

Apache-2.0TypeScript

Kong

44k

API-Gateway davor

Routet eingehende HTTP-Requests an die richtigen Services (auth, rest, storage). Rate-Limiting, API-Keys, JWT-Validation auf Gateway-Ebene.

Apache-2.0Lua

Supavisor

2.2k

Connection-Pooler

PostgreSQL-Connection-Pooler für Skalierung. Skaliert die DB-Verbindungen für tausende paralleler API-Aufrufe auf eine handhabbare Pool-Größe.

Apache-2.0Elixir

Edge Runtime

Serverless Edge-Funktionen

Deno-basiertes Runtime für Custom-Logik — , DSGVO-Audit-Trigger, externe API-Calls. Funktionen werden als TypeScript geschrieben und global ausgerollt.

MITRust

imgproxy

11k

Bild-Transformationen on-the-fly

Resizes, crops, watermarks Bilder beim Abruf. Statt 4 Größen vor-zu-generieren: eine Quelldatei, beliebige Auflösungen per URL-Parameter.

Apache-2.0Go

Logflare

Log-Analyse + Aggregation

Logflare aggregiert Logs aus allen Services in einer durchsuchbaren Oberfläche. Wichtig für Debugging in Production und für DSGVO-Audit-Logs.

MITElixir

postgres-meta

Schema-Metadaten-API

Liefert Schema-Informationen (Tabellen, Spalten, Trigger) als . Wird vom Studio-UI genutzt und kann für eigene Migrations-Tools angesprochen werden.

Apache-2.0TypeScript

Vector

Log-Shipper

Vector.dev als Log-Pipeline: sammelt Container-Logs, transformiert und schickt sie an Logflare. Konfigurierbarer Replacement für klassische Log-Sammler.

MPL-2.0Rust

Was leistet der Stack zusammen?

Der Supabase-Stack ist eine vollwertige Backend-as-a-Service-Plattform: als Datenbank, automatisch generierte REST- und GraphQL-APIs aus dem Schema, Auth mit JWT-Sessions, Storage mit S3-API, Realtime via , in Deno. Was du sonst in 6 verschiedenen AWS-Services bauen würdest, läuft hier in einem orchestrierten Container-Stack.

Der entscheidende Unterschied zu Firebase oder AWS Amplify: jede Komponente ist Open Source (MIT oder Apache-2.0), der Stack lässt sich vollständig auf eigener Hardware betreiben. Bei Bedarf kann eine Komponente einzeln ausgetauscht werden (z. B. PostgREST gegen Hasura, oder Kong gegen Caddy).

Warum ein Startup Supabase self-hosted

Für ein SaaS-Startup ist die Wahl der Backend-Plattform existenziell. Firebase ist technisch hervorragend — aber bedeutet Vendor-Lock-in (proprietäre APIs, US-Cloud, exponentielle Kostensteigerung bei Wachstum). AWS Amplify ist umfassend — aber bedeutet 6+ Services parallel zu verwalten. Beide bedeuten: bei DSGVO-Anforderungen wird es kompliziert.

: alle Daten in deutschem Rechtsraum auf Hetzner-EU. Standard-PostgreSQL als DB-Kern — keine Vendor-Lock-in, jeder PostgreSQL-Admin kann mitarbeiten. Bei Skalierung auf 1.000+ aktive Nutzer wird der Self-Hosted-Stack typisch 70–90 % günstiger als Firebase. Und falls Inc. morgen verschwindet: alle Komponenten sind Open Source und einzeln nutzbar.

Mandantenfall

LernNet

EdTech-Startup für die berufliche Bildung, 5 Personen Gründer-Team, Plattform für Berufsschulen und IHK-Bildungszentren. Vor 6 Monaten Markteintritt mit 12 Schul-Tenants, geplant 100+ in 12 Monaten. Firebase wäre die naheliegende Wahl gewesen — aber Schülerdaten und Lernfortschritte müssen in der EU bleiben. auf Hetzner-Cloud Frankfurt war die Antwort.

Multi-Tenant für 100+ Bildungseinrichtungen

Jede Berufsschule ist ein eigener Tenant mit isolierten Schüler-, Dozenten- und Kurs-Daten. Row-Level-Security in trennt die Tenants auf DB-Ebene — eine Schule kann keine Daten einer anderen sehen.

DSGVO-konforme User-Verwaltung

Schüler unter 16 brauchen Eltern-Einwilligung, Schulen brauchen Lehrer-Verwaltung. GoTrue mit eigenem SMTP-Server, JWT-Sessions, ausführlichem . Keine User-Daten verlassen das eigene System.

Realtime für Live-Klassenraum-Features

Live-Quizze während des Unterrichts, kollaborative Whiteboard-Sessions, Chat zwischen Dozenten und Schülern. Realtime via Logical Replication — Sub-Sekunden-Latenz, kein zusätzlicher WebSocket-Server.

Storage für Lehrmaterial

PDFs, Videos, interaktive Lernmodule (HTML5) — alle Datei-Uploads via S3-API in Storage. Access-Control über PostgreSQL-Policies: ein Schüler von Schule X sieht nur Materialien dieser Schule.

PostgreSQL als verlässlicher DB-Kern

Das ganze Datenmodell läuft auf 15. Bewährt seit 25 Jahren, Standard-SQL, jeder Postgres-Admin der Welt kann mitarbeiten. Beim Übernahme-Angebot eines Mitbewerbers ist die DB direkt portabel — kein Firebase-Lock-in.

Self-Hosted statt Supabase Cloud

bietet eine Cloud-Version auf AWS. Wegen und Vendor-Lock-in-Risiko entscheiden sich LernNet für Self-Hosting auf Hetzner-Cloud Frankfurt. Mehr Aufwand bei Setup, aber volle Hoheit über Schüler-Daten.

Acht produktive Patterns im Betrieb

Konkrete Setups, die LernNet seit 6 Monaten täglich nutzt. Jeder Pattern nutzt 2–4 Komponenten des Stacks zusammen — die Synergien sind das eigentliche Argument.

PostgreSQL als Single Source of Truth

Schüler, Dozenten, Kurse, Lektionen, Quizze, Notengebung — alles in . Schema-Migrations über Migrations-Files in Git. Row-Level-Security trennt Tenants. Eine DB, eine Wahrheit.

PostgREST API automatisch aus Schema

Frontend (Next.js) ruft direkt PostgREST-API auf — Tabellen werden zu REST-Endpoints. Kein Backend-Code für CRUD. Bei Schema-Änderung: ändert sich automatisch mit, JWT-Auth durchgereicht.

GoTrue Auth mit Magic Links

Schüler-Registrierung über Magic-Link per E-Mail (kein Passwort initial). Dozenten via Schul-Admin-Einladung. OAuth via Microsoft Education für Schul-Verbund-Logins. JWT-Sessions mit Refresh-Tokens.

Realtime für Live-Quizze

Dozent stellt Frage in Studio, Schüler sehen sie auf Mobile in <300 ms via Realtime-WebSocket. Antworten gehen zurück in , Dozent sieht Aggregation live. Klassische Klicker-Funktion, aber in der eigenen Plattform.

Storage mit Row-Level-Security

Lehrer lädt PDF hoch → landet in Bucket 'school-15/materials'. Schüler von Schule 15 können es lesen, andere nicht. Access-Control rein in PostgreSQL-Policies, kein eigener Auth-Code.

Edge Functions für DSGVO-Audit

Jede Schüler-Datenabfrage triggert eine Edge Function, die ein Audit-Log-Event schreibt. Pro Schule durchsuchbar, ein-Klick-Export für DSGVO-Auskunftsersuchen. TypeScript-Funktion, deployed via functions deploy.

Studio für Schema-Migrations

Während der Entwicklung wird das Schema im Studio-UI angepasst, Migration-Files automatisch generiert. In Production: nur Migration-Files via CLI, kein direktes Studio-Editing. Trennung Dev/Prod sauber.

Supavisor Connection-Pooling

Bei 500 parallelen Schülern in der gleichen Live-Klasse: jeder Browser hält eine API-Verbindung. Supavisor pooled diese auf 50 echte Postgres-Verbindungen. DB bleibt entspannt, App skaliert linear.

Was der Stack als Ganzes leistet

Sechs Stack-Level-Funktionen — Eigenschaften, die erst durch das Zusammenspiel der 13 Komponenten entstehen.

PostgreSQL als Kern

DB-First-Architektur: alle Komponenten sprechen über die DB miteinander. Kein eigenes Message-Bus, kein eigener Cache-Layer. Schema-Änderungen propagieren automatisch durch den ganzen Stack.

Auto-Generated REST + GraphQL

PostgREST liefert REST aus dem Schema, der Storage-Container liefert REST aus seinem eigenen Schema. Plus optional pg_graphql für GraphQL aus — alles ohne eigene API-Code-Generierung.

Auth mit 20+ OAuth-Providern

GoTrue unterstützt Google, GitHub, Microsoft, Apple, Facebook, Twitter und 15+ weitere. Plus E-Mail-Login, Magic Links, MFA. JWT-Sessions konsistent durch alle Komponenten validiert.

Realtime via Logical Replication

Realtime-Container liest die PostgreSQL-Logical-Replication-Stream und pusht Änderungen an WebSocket-Clients. Kein extra Message-Broker, keine doppelte Daten-Speicherung — die DB ist das Event-Quelle.

Storage mit Image-Transformations

S3-API für Upload + Access-Control über PostgreSQL-Policies, plus imgproxy für on-the-fly Resize/Crop. Eine Quelldatei, beliebige Darstellung — Bandbreite optimiert, Storage minimal.

Self-Hosted = volle Datenhoheit

Alle Daten in einer PostgreSQL-Instanz unter eigener Kontrolle. Backup via pg_dump, Disaster-Recovery via pg_basebackup. Bei Anbieter-Insolvenz oder Strategie-Wechsel: vollständige Daten sofort portierbar.

Alternativen ehrlich verglichen

Wenn der Self-Hosted-Stack nicht passt — was sonst?

Drei Alternativen für Backend-as-a-Service. ist die pragmatischste Self-Hosted-Wahl, aber die Konkurrenten haben jeweils eigene Stärken.

Marktführer

Firebase

Google, proprietär

  • + Sehr einfaches Setup, gute UX
  • + Mobile-SDKs für iOS/Android perfekt
  • − US-Cloud, kein Self-Hosting möglich
  • − Kostenexplosion bei Wachstum (Reads pro Cent)

Single-Binary

Pocketbase

Gani Georgiev, MIT

  • + Eine Go-Binary, läuft überall
  • + Sehr einfaches Self-Hosting
  • − SQLite-only (kein PostgreSQL)
  • − Skaliert nicht über Single-Server hinaus

AWS-Variante

AWS Amplify

Amazon, proprietär

  • + Tiefe AWS-Integration
  • + Skaliert beliebig hoch
  • − Kein Self-Hosting, US-Cloud
  • − Sehr komplexe Architektur

Faustregel: Wer DSGVO-Anspruch hat und kennt, ist mit bestens unterwegs. Firebase ist die schnellste Wahl, wenn Daten-Hoheit egal ist (Hobby-Projekte, MVPs in US-Markt). Pocketbase ist sinnvoll für Single-User-Setups (interne Tools, Hobby), aber skaliert nicht in Multi-Tenant-SaaS. AWS Amplify lohnt, wenn man ohnehin tief in AWS lebt.

Pricing

Alles Open Source. Hetzner-Hosting. Keine Per-Seat-Lizenz.

Lizenz

Alle 13 Komponenten Open Source: PostgreSQL unter PostgreSQL-Lizenz, GoTrue + PostgREST + Edge Runtime + Logflare unter MIT, alle übrigen unter Apache-2.0, Vector unter MPL-2.0. Für Eigenbetrieb ohne Re-Distribution keine Auflagen.

Laufende Kosten

Production-Setup: VPS mit 8–16 GB RAM, 200 GB SSD (Hetzner CCX23 ab 30 €/Monat). Plus separate S3-kompatible Object-Storage für Bucket-Daten (Hetzner Object Storage ab 5 €/Monat). RAM-Bedarf des kompletten Stacks: ca. 6 GB im Leerlauf, 10 GB unter Last.

Aufwand

Initial-Setup mit allen 13 Komponenten via supabase/docker: 1 Tag. Konfiguration für Production (Auth-Provider, SMTP, Backup, Monitoring): 2–3 Tage. Komplettes Startup-Onboarding inkl. Schema-Design und Frontend-Integration: 8–15 Beratungstage.

Wichtig zur Klarheit: Inc. (das Unternehmen) bietet einen kommerziellen Cloud-Service ab 25 $/Monat. Die selbst gehostete Variante ist nicht 'der gleiche Service kostenlos' — sie bedeutet Eigenverantwortung für Updates, Skalierung, Backup. Für Startups mit DSGVO-Anspruch und 1.000+ Nutzern in der Pipeline ist das die richtige Wahl. Für ein 100-Nutzer-MVP: Cloud nehmen.

Verwandte Themen

Supabase braucht Infrastruktur und Anbindungen

als Plattform, Caddy als API-Gateway davor, als Workflow-Layer für externe Integrationen:

Bereit für den nächsten Schritt?

Kostenloses Erstgespräch. Unverbindlich. In 30 Minuten wissen Sie, ob und wie KI Ihrem Unternehmen helfen kann.

Erstgespräch buchenBAFA-Förderung