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

install deps

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.asc

Fü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

add repo

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-plugin

Geben Sie ‘ Y ‘ ein, um die Installation zu bestätigen.

install docker

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 username

Melden Sie sich mit dem ‘ su ‘ Befehl unten bei Ihrem Benutzer an.

su - username

Führen Sie schließlich den ‘ docker ‘ Befehl unten aus, um den ‘ hello-world ‘ Container auszuführen.

docker run hello-world

Wenn alles gut geht, sehen Sie die Nachricht ‘ Hello World ‘ von Docker.

docker hello world

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/supabase

Wechseln 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 .env

Fü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 pull

Sie können den Download-Prozess für die Supabase-Docker-Images unten sehen.

download images

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

start containers

Führen Sie schließlich den ‘ docker compose ‘ Befehl unten aus, um den Status der Supabase-Container zu überprüfen.

docker compose ps

Im folgenden Output sehen Sie, dass Supabase-Container wie ‘ supabase-auth ‘, ‘ supabase-kong ‘, ‘ supabase-rest ‘ und ‘ supabase-studio ‘ laufen.

check containers

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

generate key

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

JWT token

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 .env

Fügen Sie Ihr generiertes OpenSSL-Passwort zur Option ‘ POSTGRES_PASSWORD ‘ hinzu.

POSTGRES_PASSWORD=f489d6f61514eb90fbf57fb574c3d367

Geben Sie Ihren JWT-Geheimschlüssel zur Option ‘ JWT_SECRET ‘ ein.

JWT_SECRET=PUaiJLm1PKAebJJRIdXylVJrfgGbRWdWvzN0EUgh

Ersetzen Sie den Wert von ‘ ANON_KEY ‘ durch Ihr generiertes JWT-Token für den ‘ anon ‘ Benutzer.

ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJyb2xlIjogImFub24iLAogICJpc3MiOiAic3VwYWJhc2UiLAogICJpYXQiOiAxNzM2MzU1NjAwLAogICJleHAiOiAxODk0MTIyMDAwCn0.f8_wST3WX1bmvsHttRokJPCz7-rpyjU8HMNnYH7kSd4

Ersetzen 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_JBQqc7CagD1mWM

Wenn 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=false

Geben 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=91521851a4e1375145959eecddfaff45

Geben 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.local

Speichern 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 down

Und dann die Container für Supabase mit dem folgenden Befehl neu erstellen.

docker compose up -d

Sobald alles läuft, überprüfen Sie jeden Container-Dienst mit dem folgenden Befehl.

docker compose ps

Sie können unten sehen, dass jeder Container für Supabase läuft.

check coantainers

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 -y

Erstellen Sie nun eine neue Nginx-Serverblockkonfiguration ‘ /etc/nginx/sites-available/supabase ‘ mit dem ‘vim’ Editor.

sudo vim /etc/nginx/sites-available/supabase

Fü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

setup nginx

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 nginx

Fü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 nginx

Wenn alles gut geht, sehen Sie eine Ausgabe wie die folgende.

check nginx

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-nginx

Nachdem 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.local

Sobald 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 ‘.

login

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

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.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.