4. Konfigurieren und absichern von Supabase
In der kopierten .env sind zwar Beispiel-Platzhalterpasswörter und -schlüssel bereitgestellt, du solltest jedoch NIEMALS dein selbst gehostetes Supabase mit diesen Standardeinstellungen starten!
Um Supabase zu konfigurieren, öffne die .env-Datei im Verzeichnis
nano .envCode-Sprache: CSS (css)
und passe folgende Werte an. Dazu ist im Einzelnen folgendes zu beachten:
4.1. Datenbank-Passwort festlegen
Passe den Platzhalter in der .env an bevor du Supabase zum ersten Mal startest.
POSTGRES_PASSWORD: the password for thepostgresandsupabase_admindatabase roles
Befolge die Passwortrichtlinien, um ein sicheres Passwort zu wählen. Verwende zur Vereinfachung der Konfiguration nur Buchstaben und Zahlen, um Probleme mit der URL-Kodierung in Verbindungszeichenfolgen zu vermeiden.
4.2. Generate and configure API keys
Du kannst den Key-Generator von Supabase verwenden, um gültige Schlüssen für die folgenden Werte zu erhalten und diese dann in die .env zu kopieren (direkt kopiert von der Supabase-Anleitung, deshalb englisch):
JWT_SECRET: Used by PostgREST and GoTrue to sign and verify JWTs.ANON_KEY: Client-side API key with limited permissions (anonrole). Use this in your frontend applications.SERVICE_ROLE_KEY: Server-side API key with full database access (service_rolerole). Never expose this in client code.
Die generierten Schlüssel verfallen nach 5 Jahren. Du kannst sie unter jwt.io mit dem gespeicherten Wert von JWT_SECRET überprüfen.
4.3. Weitere Schlüssel und wichtige URLs
Passe auch noch die folgenden Werte in der .env-Datei an (direkt kopiert von der Supabase-Anleitung, deshalb englisch):
SECRET_KEY_BASE: encryption key for securing Realtime and Supavisor communications. (Must be at least 64 characters; generate withopenssl rand -base64 48)VAULT_ENC_KEY: encryption key used by Supavisor for storing encrypted configuration. (Must be exactly 32 characters; generate withopenssl rand -hex 16)PG_META_CRYPTO_KEY: encryption key for securing connection strings used by Studio against postgres-meta. (Must be at least 32 characters; generate withopenssl rand -base64 24)LOGFLARE_PUBLIC_ACCESS_TOKEN: API token for log ingestion and querying. Used by Vector and Studio to send and query logs. (Must be at least 32 characters; generate withopenssl rand -base64 24)LOGFLARE_PRIVATE_ACCESS_TOKEN: API token for Logflare management operations. Used by Studio for administrative tasks. Never expose client-side. (Must be at least 32 characters; generate withopenssl rand -base64 24)
Überprüfe die URL’s und passe sie allenfalls an (direkt kopiert von der Supabase-Anleitung, deshalb englisch):
SUPABASE_PUBLIC_URL: the base URL for accessing your Supabase via the Internet, e.g,http://example.com:8000API_EXTERNAL_URL: the base URL for API requests, e.g.,http://example.com:8000SITE_URL: the base URL of your site, e.g.,http://example.com:3000
Weil wir das self-hosted Supabase hinter Traefik lokal verwenden, geben wir hier überall nur localhost ein, also:
SUPABASE_PUBLIC_URL=http://localhost:8000
API_EXTERNAL_URL=http://localhost:8000
SITE_URL=http://localhost:3000Code-Sprache: JavaScript (javascript)
Alle übgrigen Werte in der .env-Datei kannst du so stehen lassen.
4.4. Studio authentication
Der Zugriff auf das Studio Dashboard und die interne API ist mit HTTP basic authentication abgesichert. Das vorgegebene Passwort in der .env-Datei muss geändert werden, bevor Supabase gestartet wird! Ändere das Passwort in der .env-Datei:
DASHBOARD_PASSWORD: password for Studio / dashboard
Das Passwort muss mindestens einen Buchstaben enthalten (verwende also nicht bloss Zahlen).
Optional kannst du auch noch den Benutzernamen für das Dashboard ändern:
DASHBOARD_USERNAME: username for Studio / dashboard
4.5. Supavisor Pooler
Du musst auch noch den Zugriff für den Supavisor-Pooler mit einer eigenen ID absichern:
POOLER_TENANT_ID: ID für Supavisor-Pooler (Unique tenant identifier)
