Alle Variablen werden beim Start aus der Prozessumgebung gelesen. Die meisten
String-Booleans akzeptieren 1 | true | yes (Groß-/Kleinschreibung bei true/yes
wird ignoriert) als wahr; andere Werte gelten als falsch. Einige Flags folgen einer
eigenen Regel (z. B. ist SUPACLOUD_SMTP_USE_TLS aktiv, sofern nicht 0|false|no
gesetzt wird). Die verkürzte Admin-Seite deckt die wesentlichen Deployment-Variablen
ab – siehe
Umgebungsvariablen (Admin).
dev lockert produktionsspezifische Schutzmaßnahmen (schwächeres JWT, keine Verschlüsselungsschlüssel-Pflicht). Für die Produktion einen anderen Wert setzen – oder die Variable weglassen.
SERVER_HOST
0.0.0.0
Bind-Adresse.
SERVER_PORT
8080
Listen-Port.
PUBLIC_URL
http://localhost:<port> in dev, erforderlich in Prod
Kanonischer öffentlicher Ursprung. Befüllt die CORS-Allowlist und dient zur Ableitung von Callback-URLs.
CORS_ALLOWED_ORIGINS
—
Kommagetrennte Ursprünge, die die API aufrufen dürfen. Wenn leer, enthält die Allowlist standardmäßig PUBLIC_URL (sowie die üblichen Localhost-Dev-Ursprünge im Dev-Modus).
Eines von builtin, oidc, authelia_proxy, oidc_proxy.
SUPACLOUD_JWT_SECRET
Dev-Standard
Session-Signing-Secret. ≥ 32 Bytes erforderlich. Der Dev-Standard wird für jede nicht-Loopback-PUBLIC_URL abgelehnt. Wird auch als AUTH_JWT_SECRET (Legacy) akzeptiert.
SUPACLOUD_INITIAL_ADMIN_EMAILS
—
Kommagetrennte E-Mail-Adressen, die beim ersten Start als Workspace-Eigentümer angelegt werden. In Prod erforderlich für builtin- und oidc-Provider. Wird auch als SUPACLOUD_INITIAL_ADMIN_EMAIL akzeptiert.
AUTH_SESSION_TTL_MINUTES
480
Session-Lebensdauer (8 h).
AUTH_COOKIE_SECURE
true in Prod, false in Dev
Für lokales HTTP auf false setzen.
OIDC_ISSUER_URL
—
Discovery-URL des OIDC-Providers (AUTH_PROVIDER=oidc).
OIDC_CLIENT_ID
—
OIDC-Client-ID.
OIDC_CLIENT_SECRET
—
OIDC-Client-Secret. Wird aus supacloud/app via Vault befüllt.
OIDC_REDIRECT_URL
—
OIDC-Callback-URL (/api/auth/oidc/callback).
OIDC_SCOPES
openid email profile
Leerzeichen- oder kommagetrennt. Muss openid enthalten.
OIDC_PKCE_ENABLED
true
Nur für Legacy-Provider, die code_verifier ablehnen, auf false setzen.
AES-256-Schlüssel für in der Datenbank gespeicherte Zugangsdaten. Akzeptiert rohe 32 Bytes, Hex, Base64 oder das Präfix hex:/base64:. In Prod erforderlich. Wird der Schlüssel aus Vault bezogen, wird er im Prozess gehalten und nie wieder in die Umgebung exportiert.
SUPACLOUD_MCP_CONFIRMATION_SECRET
—
HMAC-Secret für Deploy-Tier-MCP-Bestätigungstoken (app.deploy, app.migration.apply). ≥ 32 Bytes. Ohne dieses Secret schlagen die betreffenden Tools fail-closed fehl. Wird aus supacloud/app via Vault befüllt.
HS256-JWT mit dem Claim edition=enterprise. Wird gegen SUPACLOUD_EDITION_SECRET validiert. Wird aus supacloud/app via Vault befüllt.
SUPACLOUD_EDITION_SECRET
—
Signing-Secret für die Edition-Lizenz. ≥ 32 Bytes. Wird aus supacloud/app via Vault befüllt.
SUPACLOUD_EDITION
—
Nur Dev-Bypass: zusammen mit MODE=dev auf enterprise setzen, um die Enterprise-Edition ohne Lizenztoken zu aktivieren. Niemals in der Produktion verwenden.
Gemeinsames Token (≥ 16 Zeichen) für den pooled-Modus. Wird über das executor-exklusive Netzwerk übertragen.
SUPACLOUD_CONNECTOR_EXECUTOR_NETWORK
—
Dediziertes Docker-Netzwerk für den Hub-↔-Executor-Verkehr im pooled-Modus.
SUPACLOUD_CONNECTOR_EXECUTOR_POOL_SIZE
2
Anzahl warmer Executor-Container im pooled-Modus.
SUPACLOUD_CONNECTOR_EXECUTOR_MAX_INFLIGHT
4
Maximale Anzahl gleichzeitig laufender Runs im pooled-Modus.
SUPACLOUD_CONNECTOR_EXECUTOR_MAX_RUNS
0
Schwellenwert für das Recycling von Containern im pooled-Modus. 0 = kein Recycling nach Run-Anzahl.
SUPACLOUD_CONNECTOR_EXECUTOR_REQUEST_TIMEOUT_SECS
60
Maximale Wartezeit auf einen freien Pool-Slot.
SUPACLOUD_SCRIPT_RUNTIME_DIR
Crate-Dev/Test-Assets
Absoluter Pfad zu den vorkompilierten Wasm-Script-Runtime-Komponenten (js-runner, ts-runner, py-runner). Nicht bereitgestellte Sprachen degradieren graceful.
Aktiviert die Weiterleitung von Tasks an eine registrierte Remote-Runner-Fleet. Bei false laufen alle Tasks lokal.
SUPACLOUD_HUB_EVENT_RELAY
false
Leitet Echtzeit-Hub-Events über Postgres LISTEN/NOTIFY zwischen Server-Replicas weiter (der WS-Event-Fan-out, #623 P4). Auf einer einzelnen Replica inert; für ein Multi-Replica-Deployment aktivieren.
MODEL_CATALOG_REFRESH_HOURS
24
Wie oft der Modell-Katalog aktualisiert wird (1–720).
Bearer-Token für den Zugriff auf die M2M-Management-API. Wird auch als MANAGEMENT_API_TOKEN (Legacy) akzeptiert. Wird aus supacloud/management via Vault befüllt.
Telegram-Control-Bot-Token. Wird aus supacloud/messaging via Vault befüllt. Bot ist deaktiviert, wenn nicht gesetzt.
TELEGRAM_BOT_USERNAME
—
Telegram-Bot-Benutzername (ohne @). Via Vault befüllt.
TELEGRAM_WEBHOOK_SECRET
—
Webhook-Secret für die Telegram-Update-Validierung. Via Vault befüllt.
DISCORD_BOT_TOKEN
—
Discord-Control-Bot-Token (ADR 0032). Wird aus supacloud/app via Vault befüllt. Bot ist deaktiviert, wenn nicht gesetzt. Unabhängig von workspace-spezifischen Discord-Notify/Trigger-Ressourcen.
Hostname des SMTP-Relays. Wenn nicht gesetzt, ist der globale SMTP-Transport deaktiviert; workspace-spezifische SMTP-Ressourcen funktionieren weiterhin.
SUPACLOUD_SMTP_PORT
587
SMTP-Port.
SUPACLOUD_SMTP_USE_TLS
true
TLS aktivieren.
SUPACLOUD_SMTP_STARTTLS
true
STARTTLS verwenden.
SUPACLOUD_SMTP_USERNAME
—
SMTP-Auth-Benutzername.
SUPACLOUD_SMTP_PASSWORD
—
SMTP-Auth-Passwort. Wird aus supacloud/app via Vault befüllt.
Aktiviert die Auslieferung von erstellten React/Svelte-App-Frontends. Erfordert SUPACLOUD_APPS_BASE_DOMAIN.
SUPACLOUD_APPS_BASE_DOMAIN
—
Bare-Domain (z. B. supacloud.net) auf einem anderen eTLD+1 als die Control-Plane. Hosted Apps werden unter <opaque-subdomain>.<apps_base_domain> ausgeliefert. Der Boot schlägt fehl, wenn diese Domain dieselbe registrierbare Domain wie PUBLIC_URL teilt.