Installation · 8 min read · Sep 13, 2025
Wie man Supabase (Firebase-Alternative) mit Docker auf Ubuntu 24.04 installiert

Supabase ist eine Open-Source-Alternative zu Firebase, die auf der PostgreSQL-Datenbank basiert, der weltweit vertrauenswürdigsten relationalen Datenbank. Es ermöglicht Entwicklern, vollständige Web-, Mobile- und KI-Anwendungen zu erstellen. Supabase bietet PostgreSQL-Datenbank, Authentifizierung, APIs, Speicher, Echtzeit-Abonnements und Vektor-Einbettungen. Mit der einfachen Einrichtung und Benutzeroberfläche können Entwickler schnell Anwendungen auf Supabase aufbauen.
In diesem Tutorial lernen Sie, wie Sie Supabase auf einem Ubuntu 24.04-Server installieren. Sie werden Supabase in Containern mit Docker ausführen und Supabase mit Passwortauthentifizierung und JWT-Token sichern. Schließlich lernen Sie auch, wie Sie Nginx als Reverse-Proxy für Supabase einrichten.
Voraussetzungen
Um mit diesem Leitfaden zu beginnen, stellen Sie sicher, dass Sie Folgendes haben:
- Einen Ubuntu 24.04-Server
- Einen Nicht-Root-Benutzer mit Administratorrechten
- Einen Domainnamen, der auf die Server-IP-Adresse zeigt
Docker Engine installieren
Um Supabase auf Ihrem Server bereitzustellen, müssen Sie Docker Engine auf Ihrem Computer installieren. Die Supabase-Anwendungen werden als Container auf Ihrem Server ausgeführt.
In diesem Abschnitt installieren Sie Docker Engine über das offizielle Docker-Repository.
Zuerst führen Sie den folgenden Befehl aus, um Ihr Ubuntu-Paket-Index zu aktualisieren und Pakete wie ‘ ca-certificates ‘, ‘ curl ‘ und ‘ git ‘ zu installieren.
sudo apt update
sudo apt install -y ca-certificates curl git
Führen Sie nun den folgenden Befehl aus, um den GPG-Schlüssel für das Docker Engine-Repository hinzuzufügen.
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.ascFügen Sie das Docker Engine-Repository für Ihren Ubuntu-Server hinzu, indem Sie den folgenden Befehl ausführen.
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Nachdem der Docker GPG-Schlüssel und das Repository hinzugefügt wurden, führen Sie den ‘ apt ‘ Befehl unten aus, um Ihr Paket-Index zu aktualisieren und Docker Engine zu installieren. Damit installieren Sie auch die Docker Compose- und buildx-Plugins.
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginGeben Sie ‘ Y ‘ ein, um die Installation zu bestätigen.

Benutzer zur Docker-Gruppe hinzufügen
In diesem Leitfaden werden Sie Supabase als Nicht-Root-Benutzer ausführen, also stellen Sie sicher, dass ein dedizierter Benutzer erstellt wird. Dann müssen Sie Ihren Benutzer zur ‘docker’-Gruppe hinzufügen, die es dem Benutzer ermöglicht, Container auszuführen.
Fügen Sie Ihren Benutzer mit dem folgenden Befehl zur ‘ docker ‘ Gruppe hinzu. Dies ermöglicht es Ihrem Benutzer, Container auszuführen und zu betreiben.
sudo usermod -aG sudo usernameMelden Sie sich mit dem ‘ su ‘ Befehl unten bei Ihrem Benutzer an.
su - usernameFühren Sie schließlich den ‘ docker ‘ Befehl unten aus, um den ‘ hello-world ‘ Container auszuführen.
docker run hello-worldWenn alles gut geht, sehen Sie die Nachricht ‘ Hello World ‘ von Docker.

Supabase herunterladen und installieren
Jetzt, da Sie Docker installiert haben, ist der nächste Schritt, Supabase herunterzuladen und als Container auszuführen. In diesem Abschnitt lernen Sie, wie Sie Supabase zum Laufen bringen, und später lernen Sie, wie Sie es sichern.
Laden Sie den Quellcode von ‘ supabase ‘ mit dem ‘ git ‘ Befehl unten herunter.
git clone --depth 1 https://github.com/supabase/supabaseWechseln Sie in das Verzeichnis ‘supabase/docker’ und kopieren Sie die Datei ‘ .env.example ‘ in die ‘. env ‘. Diese Datei wird verwendet, um Ihre Supabase-Installation zu konfigurieren.
cd supbase/docker
cp .env.example .envFühren Sie als Nächstes den ‘ docker compose ‘ Befehl unten aus, um die Supabase-Images aus dem Docker-Repository herunterzuladen. Dies wird mehrere Images für Supabase herunterladen.
docker compose pullSie können den Download-Prozess für die Supabase-Docker-Images unten sehen.

Sobald der Prozess abgeschlossen ist, führen Sie den folgenden Befehl aus, um die Supabase-Container zu starten. Mit der ‘ -d ‘ Option führen Sie die Container im Hintergrund aus, sodass die Protokolle für die Supabase-Container nicht angezeigt werden.
docker compose up -d
Führen Sie schließlich den ‘ docker compose ‘ Befehl unten aus, um den Status der Supabase-Container zu überprüfen.
docker compose psIm folgenden Output sehen Sie, dass Supabase-Container wie ‘ supabase-auth ‘, ‘ supabase-kong ‘, ‘ supabase-rest ‘ und ‘ supabase-studio ‘ laufen.

Supabase sichern
Derzeit läuft Supabase auf Ihrem System, jedoch ohne ordnungsgemäße Passwort- und Authentifizierung. Daher werden Sie die Supabase-Installation sichern, indem Sie die Anmeldeinformationen in der ‘.env’-Datei ändern.
Bevor Sie beginnen, lassen Sie uns Passwörter für den PostgreSQL-Server und das Supabase-Dashboard generieren und dann das JWT-Geheimnis und das Token generieren.
Führen Sie den folgenden Befehl zweimal aus, um ein sicheres Passwort für das Supabase-Dashboard und den PostgreSQL-Server zu generieren.
openssl rand -hex 16
Gehen Sie jetzt zur Supabase-Website, um zwei JWT-Token für Supabase zu generieren. Stellen Sie sicher, dass Sie Folgendes notieren:
- JWT-Geheimnis
- Schlüssel für sowohl ANON_KEY als auch SERVICE_KEY
- Generierte JWT-Token für beide

Jetzt, da Sie Passwörter und Token für Supabase generiert haben, lassen Sie uns diese anwenden, indem wir die ‘.env’-Datei bearbeiten.
Öffnen Sie die ‘ .env ‘ Datei mit dem ‘ vim ‘ Editor.
vim .envFügen Sie Ihr generiertes OpenSSL-Passwort zur Option ‘ POSTGRES_PASSWORD ‘ hinzu.
POSTGRES_PASSWORD=f489d6f61514eb90fbf57fb574c3d367Geben Sie Ihren JWT-Geheimschlüssel zur Option ‘ JWT_SECRET ‘ ein.
JWT_SECRET=PUaiJLm1PKAebJJRIdXylVJrfgGbRWdWvzN0EUghErsetzen Sie den Wert von ‘ ANON_KEY ‘ durch Ihr generiertes JWT-Token für den ‘ anon ‘ Benutzer.
ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJyb2xlIjogImFub24iLAogICJpc3MiOiAic3VwYWJhc2UiLAogICJpYXQiOiAxNzM2MzU1NjAwLAogICJleHAiOiAxODk0MTIyMDAwCn0.f8_wST3WX1bmvsHttRokJPCz7-rpyjU8HMNnYH7kSd4Ersetzen Sie den Wert von ‘ SERVICE_ROLE_KEY ‘ durch Ihr generiertes JWT-Token für den ‘ service_role ‘ Benutzer.
SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJyb2xlIjogInNlcnZpY2Vfcm9sZSIsCiAgImlzcyI6ICJzdXBhYmFzZSIsCiAgImlhdCI6IDE3MzYzNTU2MDAsCiAgImV4cCI6IDE4OTQxMjIwMDAKfQ.DOo1lqH76AR_jCx0N9QDZBEdrQ8T_JBQqc7CagD1mWMWenn Sie auf einem öffentlichen Server bereitstellen, geben Sie die Details Ihres SMTP-Servers ein.
Email-Authentifizierung
ENABLE_EMAIL_SIGNUP=true
ENABLE_EMAIL_AUTOCONFIRM=false
[email protected]
SMTP_HOST=smtp.server.address
SMTP_PORT=2500
SMTP_USER=username
SMTP_PASS=password
SMTP_SENDER_NAME=sender_name
ENABLE_ANONYMOUS_USERS=falseGeben Sie Ihren Benutzernamen und Ihr Passwort sowohl in die Optionen ‘ DASHBOARD_USERNAME ‘ als auch ‘ DASHBOARD_PASSWORD ‘ ein. Dieser Benutzer wird verwendet, um sich bei Supabase anzumelden.
DASHBOARD_USERNAME=supabase
DASHBOARD_PASSWORD=91521851a4e1375145959eecddfaff45Geben Sie Ihren Domainnamen in die Optionen ‘ SITE_URL ‘, ‘ API_EXTERNAL_URL ‘ und ‘ SUPABASE_PUBLIC_URL ‘ ein. In diesem Beispiel verwenden wir eine Domain ‘https://supabase.howtoforge.local’.
SITE_URL=https://supabase.howtoforge.local
API_EXTERNAL_URL=https://supabase.howtoforge.local
SUPABASE_PUBLIC_URL=https://supabase.howtoforge.localSpeichern Sie die Datei und beenden Sie den Editor, wenn Sie fertig sind.
Führen Sie nun den ‘ docker ‘ Befehl unten aus, um die Supabase-Container zu stoppen und zu entfernen.
docker compose downUnd dann die Container für Supabase mit dem folgenden Befehl neu erstellen.
docker compose up -dSobald alles läuft, überprüfen Sie jeden Container-Dienst mit dem folgenden Befehl.
docker compose psSie können unten sehen, dass jeder Container für Supabase läuft.

Nginx als Reverse-Proxy für Supabase einrichten
Jetzt, da Supabase gesichert ist, lassen Sie uns den Nginx-Webserver installieren und ihn als Reverse-Proxy für Supabase konfigurieren. Stellen Sie sicher, dass Sie Ihren Domainnamen bereit haben und auf die Server-IP-Adresse zeigen.
Installieren Sie Nginx mit dem folgenden ‘ apt ‘ Befehl.
sudo apt install nginx -yErstellen Sie nun eine neue Nginx-Serverblockkonfiguration ‘ /etc/nginx/sites-available/supabase ‘ mit dem ‘vim’ Editor.
sudo vim /etc/nginx/sites-available/supabaseFügen Sie die folgende Konfiguration ein und stellen Sie sicher, dass Sie den Domainnamen innerhalb der Option ‘ server_name ‘ ändern.
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream kong {
server localhost:8000;
}
server {
listen 80;
server_name supabase.howtoforge.local;
# REST
location ~ ^/rest/v1/(.*)$ {
proxy_set_header Host $host;
proxy_pass http://kong;
proxy_redirect off;
}
# AUTH
location ~ ^/auth/v1/(.*)$ {
proxy_set_header Host $host;
proxy_pass http://kong;
proxy_redirect off;
}
# REALTIME
location ~ ^/realtime/v1/(.*)$ {
proxy_redirect off;
proxy_pass http://kong;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
}
# STUDIO
location / {
proxy_set_header Host $host;
proxy_pass http://kong;
proxy_redirect off;
proxy_set_header Upgrade $http_upgrade;
}
}Speichern Sie die Datei und beenden Sie den Editor, wenn Sie fertig sind.
Führen Sie als Nächstes den folgenden Befehl aus, um den Supabase-Serverblock zu aktivieren und Ihre Nginx-Syntax zu überprüfen. Wenn kein Fehler auftritt, erhalten Sie eine Ausgabe ‘ Syntax ist ok - Test erfolgreich ‘.
sudo ln -s /etc/nginx/sites-available/supabase /etc/nginx/sites-enabled/
sudo nginx -t
Führen Sie nun den ‘ systemctl ‘ Befehl unten aus, um den Nginx-Webserver neu zu starten und Ihre Änderungen anzuwenden. Damit sollte Ihre Supabase-Installation unter dem Nginx-Reverse-Proxy laufen.
sudo systemctl restart nginxFühren Sie schließlich den ‘systemctl’ Befehl unten aus, um den Nginx-Dienst zu überprüfen und sicherzustellen, dass der Dienst läuft.
sudo systemctl status nginxWenn alles gut geht, sehen Sie eine Ausgabe wie die folgende.

Supabase mit HTTPS sichern
Nachdem Nginx als Reverse-Proxy läuft, lassen Sie uns SSL-Zertifikate generieren und HTTPS aktivieren, um die Supabase-Installation zu sichern.
Wenn Sie sich im Entwicklungsmodus befinden, können Sie diesen Teil überspringen und Supabase ohne HTTPS lassen. Für die Produktion müssen Sie HTTPS implementieren, um Ihren Supabase-Server zu sichern.
Installieren Sie Certbot und das Nginx Certbot-Plugin mit dem ‘ apt ‘ Befehl unten. Geben Sie ‘Y’ ein, um die Installation zu bestätigen.
sudo apt install certbot python3-certbot-nginxNachdem die Installation abgeschlossen ist, führen Sie den ‘certbot’ Befehl unten aus, um SSL-Zertifikate für Ihren Domainnamen zu generieren. Stellen Sie sicher, dass Sie den Domainnamen und die E-Mail-Adresse innerhalb des Befehls ändern.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d supabase.howtoforge.localSobald dies abgeschlossen ist, sind Ihre SSL-Zertifikate im Verzeichnis ‘ /etc/letsencrypt/live/domain.com ‘ verfügbar und Supabase wird automatisch über das Nginx Certbot-Plugin mit HTTPS gesichert.
Zugriff auf Supabase Studio
Um auf Supabase zuzugreifen, öffnen Sie Ihren Webbrowser und besuchen Sie https://supabase.howtoforge.local. Wenn Ihre Installation erfolgreich ist, werden Sie mit der grundlegenden Passwortauthentifizierung aufgefordert.
Geben Sie den Benutzernamen und das Passwort in die Optionen ‘ DASHBOARD_USERNAME ‘ und ‘ DASHBOARD_PASSWORD ‘ ein und klicken Sie auf ‘ Anmelden ‘.

Wenn alles erfolgreich ist, sehen Sie das folgende Supabase-Dashboard.

Fazit
Herzlichen Glückwunsch! Sie haben die Installation von Supabase auf dem Ubuntu 24.04-Server über Docker abgeschlossen. Sie haben Supabase bereitgestellt und mit der Passwortauthentifizierung JWT-Token gesichert und dann Nginx als Reverse-Proxy installiert und konfiguriert. Schließlich haben Sie Supabase auch mit HTTPS über Certbot und Letsencrypt gesichert. Von hier aus können Sie jetzt versuchen, eine neue Datenbank zu erstellen, Daten in Supabase einzufügen und dann einfache Anwendungen mit dem Supabase-Modul zu erstellen, um über die REST-API zu kommunizieren.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.