Zum Inhalt springen
Farbschema wählenSprache wählen

Self-Hosting mit Docker Compose

Diese Anleitung startet ein in sich geschlossenes SupaCloud — Server, Web-UI und PostgreSQL — auf einem einzelnen Host über das standalone-Compose-Overlay: lokales Postgres, Builtin-Auth, Secrets aus einer .env-Datei.

Das Standalone-Overlay liest Secrets aus .env. Beginne mit dem Beispiel:

Terminal window
cp .env.example.standalone .env

Die beiden Werte, die du vor jeder Freigabe ändern musst:

Variable Warum
SUPACLOUD_JWT_SECRET Signiert Sessions. Muss mindestens 32 Byte zufällig sein.
POSTGRES_PASSWORD Das Datenbankpasswort (und die passende DATABASE_URL).

Setze außerdem SUPACLOUD_INITIAL_ADMIN_EMAILS auf die E-Mail, die der erste Owner werden soll. Für einen rein lokalen Test sind die Beispielwerte MODE=dev, PUBLIC_URL=http://localhost:8080 und AUTH_COOKIE_SECURE=false in Ordnung; für alles Erreichbare setze eine echte PUBLIC_URL und schalte die Cookie-Sicherheit ein.

Die Standalone-Datei ist ein Overlay über der Basis docker-compose.yml — gib beide an, Basis zuerst:

  1. Bauen und im Hintergrund starten:

    Terminal window
    docker compose -f docker-compose.yml -f compose.standalone.yml up -d --build
  2. Beobachten, bis die Dienste „healthy“ sind:

    Terminal window
    docker compose -f docker-compose.yml -f compose.standalone.yml ps

    Postgres hat einen Health-Check; der Server wartet darauf, bevor er startet, und führt seine Migrationen beim Boot aus.

Der Stack stellt zwei Ports bereit:

Dienst URL Zweck
Web-UI http://localhost:3001 Die Operator-Konsole zum Anmelden.
Server-API http://localhost:8080 Die HTTP- + Management-API, die die UI aufruft.

Öffne http://localhost:3001 und melde dich mit der Adresse aus SUPACLOUD_INITIAL_ADMIN_EMAILS an. Mit Builtin-Auth wird diese E-Mail als Owner einer persönlichen Organisation und ihres ersten Workspaces angelegt.

Das SupaCloud-Dashboard nach der ersten Anmeldung.Das SupaCloud-Dashboard nach der ersten Anmeldung.

Danach folge Dein erster Agent-Run.

Terminal window
# Logs verfolgen
docker compose -f docker-compose.yml -f compose.standalone.yml logs -f server
# Stoppen (behält das postgres-data-Volume)
docker compose -f docker-compose.yml -f compose.standalone.yml down
# Stoppen und Daten löschen
docker compose -f docker-compose.yml -f compose.standalone.yml down -v

Der Datenbankzustand liegt im postgres-data-Volume; ein einfaches down/up behält deine Workspaces, Runs und Secrets.