Zum Hauptinhalt springen

Dedicated Server: Supabase unter Linux einrichten

Die Anleitung wurde mit folgenden Produkten erstellt:

(Einzelheiten können sich bei Produkten anderer Anbieter unterscheiden, die Grundkonzepte bleiben in der Regel unverändert)

Einführung

Supabase ist eine quelloffene Postgres-Plattform, die eine vollständige Postgres-Datenbank sowie Authentifizierung, sofortige APIs, Realtime und Storage bereitstellt und damit eine Open-Source-Alternative zu Firebase darstellt.

img

Überlegst du, diesen Dienst selbst zu hosten? Wir führen dich Schritt für Schritt durch die Einrichtung und Konfiguration und nennen alles, was du dabei beachten musst.

Voraussetzungen

Bevor du Supabase installierst, stelle sicher, dass deine Hosting-Umgebung die folgenden Anforderungen erfüllt, um eine reibungslose Installation und optimale Leistung zu gewährleisten.

HardwareMinimumZAP-Hosting Empfehlung
CPU1 CPU-Kerne4 CPU-Kerne
RAM4 GB8 GB
Speicherplatz25 GB25 GB

Die Software erfordert, dass alle notwendigen Abhängigkeiten installiert sind und dass ein unterstütztes Betriebssystem verwendet wird. Stelle vor dem Fortfahren sicher, dass dein Server die folgenden Anforderungen erfüllt:

Abhängigkeiten: Git, Docker (Engine und Compose)

Betriebssystem: Neueste Version von Ubuntu/Debian mit Unterstützung für Docker 2

Stelle sicher, dass alle Abhängigkeiten installiert sind und die richtige Betriebssystemversion verwendet wird, um Kompatibilitätsprobleme während der Installation von Supabase zu vermeiden.

Vorbereitung

Bevor du Supabase einrichtest, musst du dein System vorbereiten. Dazu gehört, dein Betriebssystem auf die neueste Version zu aktualisieren und alle erforderlichen Abhängigkeiten zu installieren. Diese Vorbereitungen sorgen für eine stabile Umgebung und helfen, Probleme während oder nach der Installation zu vermeiden.

System aktualisieren

Damit dein System mit der aktuellsten Software und den neuesten Sicherheitsverbesserungen läuft, solltest du zuerst Systemupdates durchführen. Führe dazu den folgenden Befehl aus:

sudo apt update && sudo apt upgrade -y

So stellst du sicher, dass dein System vor dem Fortfahren die neuesten Sicherheitspatches und Softwareversionen hat.

Abhängigkeiten installieren

Sobald der Aktualisierungsvorgang abgeschlossen ist, kann mit der Installation der Abhängigkeiten fortgefahren werden.

Git

Die Supabase-Daten werden über GitHub bezogen. Dafür muss Git zunächst installiert sein. Führe dazu den folgenden Befehl aus:

sudo apt install git-all

Docker

Supabase wird auf deinem System mithilfe eines Docker-Containers bereitgestellt und ausgeführt. Dafür muss Docker zunächst installiert werden. Führe dazu den folgenden Befehl aus:

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

Eine vollständige Anleitung zum Installationsprozess und zur Nutzung von Docker findest du in unserer Docker Anleitung.

Installation

Nun, da alle Anforderungen erfüllt sind und die notwendigen Vorbereitungen abgeschlossen wurden, kannst du mit der Installation der Supabase-Anwendung fortfahren.

Hole das Supabase-Repository, erstelle ein eigenes Projektverzeichnis und kopiere die Docker-Assets sowie die Beispiel-Umgebungsdatei dorthin.

git clone --depth 1 https://github.com/supabase/supabase
mkdir supabase-project

cp -rf supabase/docker/* supabase-project
cp supabase/docker/.env.example supabase-project/.env

Wechsle in das Projektverzeichnis, ziehe die neuesten Container-Images und starte den Stack im Hintergrundmodus.

cd supabase-project
docker compose pull
docker compose up -d

img

Du kannst nun über http://<deine-ip>:8000 auf Supabase Studio zugreifen. Du wirst nach einem Benutzernamen und Passwort gefragt. Standardmäßig lauten die Zugangsdaten:

  • Benutzername: supabase
  • Passwort: this_password_is_insecure_and_should_be_updated

img

Standardzugangsdaten

Deine App läuft jetzt mit Standardzugangsdaten. Sichere deine Dienste so schnell wie möglich gemäß den folgenden Anweisungen.

Konfiguration

Du solltest niemals mit Standard- oder Beispielwerten in Produktion gehen. Ersetze alle Platzhalter durch starke, eindeutige Secrets, überprüfe die Konfiguration im Hinblick auf deine Sicherheitsanforderungen und starte anschließend alle Dienste neu, damit die Änderungen wirksam werden.

Erzeuge sichere API-Keys, bevor du einen Dienst exponierst. Beginne mit der Auswahl eines 40-stelligen JWT-Secrets. Du kannst den bereitgestellten Wert verwenden oder dein eigenes erstellen. Bewahre dieses Secret lokal an einem sicheren Ort auf. Teile es nicht und checke es nicht in die Versionskontrolle ein. Verwende das Secret, um einen JWT zu generieren und daraus die anon- und service-API-Keys abzuleiten, unter Verwendung des in der Supabase-Dokumentation referenzierten Formulars: https://supabase.com/docs/guides/self-hosting/docker#generate-api-keys

Führe das Formular zweimal aus, um beide Keys zu erzeugen. Aktualisiere deine ./docker/.env mit:

  • ANON_KEY: anon key
  • SERVICE_ROLE_KEY: service key

Aktualisiere die erforderlichen Secrets in ./docker/.env. Diese Werte müssen für eine funktionierende Bereitstellung gesetzt sein:

  • POSTGRES_PASSWORD: Passwort für die Rolle postgres
  • JWT_SECRET: wird von PostgREST und GoTrue verwendet
  • SITE_URL: Basis-URL deiner Seite
  • SMTP_*: Mailserver-Zugangsdaten
  • POOLER_TENANT_ID: Tenant-ID, die vom Supavisor-Pooler verwendet wird

Schütze das Dashboard vor der Nutzung in Produktion mit neuen Zugangsdaten. Bearbeite ./docker/.env:

  • DASHBOARD_USERNAME: Dashboard-Benutzer
  • DASHBOARD_PASSWORD: Dashboard-Passwort

Du kannst mehrere Dashboard-Benutzer in ./docker/volumes/api/kong.yml definieren:

basicauth_credentials:
- consumer: DASHBOARD
username: user_one
password: password_one
- consumer: DASHBOARD
username: user_two
password: password_two

Um alle Dashboard-Funktionen außerhalb von localhost zu aktivieren, setze SUPABASE_PUBLIC_URL in ./docker/.env auf die URL oder IP, über die du auf das Dashboard zugreifen wirst.

Wende Konfigurationsänderungen an, indem du den Stack neu startest:

docker compose down
docker compose up -d

Abschluss und weitere Ressourcen

Glückwunsch! Du hast Supabase jetzt erfolgreich auf deinem Dedicated Server installiert und konfiguriert. Wir empfehlen außerdem, einen Blick auf die folgenden Ressourcen zu werfen, die dir zusätzliche Hilfe und Orientierung während deiner Serverkonfiguration bieten können.

Spezifische Fragen, die hier nicht abgedeckt sind? Für weitere Fragen oder Unterstützung wende dich gern an unser Support-Team, das täglich für dich da ist! 🙂