Files
florian.wildeandClaude Opus 5.5 533a821087 feat(betrieb): Docker Compose und LXC-Installer
Ein Laufzeit-Paket (scripts/paket-bauen.sh) für beide Wege: Next standalone, worker als Bundle mit nur den nötigen Paketen, Migrationen ohne Prisma-CLI. Compose lokal komplett hochgefahren; der Installer auf pve-demo in einem echten Debian-13-LXC durchgelaufen.

Closes #019

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 17:35:41 +02:00

49 lines
3.1 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ── Datenbank ────────────────────────────────────────────────────────────────
DATABASE_URL=postgresql://proxdeploy:proxdeploy@localhost:5437/proxdeploy
# Nur Docker Compose: Passwort der mitgelieferten PostgreSQL (DATABASE_URL setzt Compose selbst).
POSTGRES_PASSWORT=
# Nur für Tests; wird vor jedem Test geleert.
TEST_DATABASE_URL=postgresql://proxdeploy:proxdeploy@localhost:5437/proxdeploy
# Nur Docker Compose: Passwort der mitgelieferten PostgreSQL (DATABASE_URL setzt Compose selbst).
POSTGRES_PASSWORT=_test
# ── Geheimnisse ──────────────────────────────────────────────────────────────
# Schlüssel für AES-256-GCM (Proxmox-Token, SSH-Schlüssel, OIDC-Secret): genau 32 Byte, base64.
# Erzeugen: openssl rand -base64 32 – NIE ändern, sonst sind gespeicherte Geheimnisse unlesbar.
PROXDEPLOY_SCHLUESSEL=
# Signiert die Sitzungscookies. Erzeugen: openssl rand -base64 48
SITZUNG_GEHEIMNIS=
# ── Adresse und Reverse-Proxy ────────────────────────────────────────────────
# Öffentliche Adresse, wie Browser und CLI sie sehen (ohne Schrägstrich am Ende).
APP_URL=http://localhost:3000
# true hinter einem Reverse-Proxy: X-Forwarded-For/-Proto werden ausgewertet.
TRUST_PROXY=false
# ── Erster Administrator ─────────────────────────────────────────────────────
# Wird nur angelegt, solange es noch keinen Benutzer gibt. Danach wirkungslos.
ADMIN_BENUTZER=admin
ADMIN_PASSWORT=
# ── OIDC (optional, z. B. authentik) ─────────────────────────────────────────
# Beim IdP als Redirect-URI eintragen: <APP_URL>/api/v1/auth/oidc/rueckruf
# Client-Typ „confidential“, Scopes openid profile email; der Gruppen-Claim muss im ID-Token stehen.
OIDC_AKTIV=false
OIDC_ISSUER=
OIDC_CLIENT_ID=
OIDC_CLIENT_SECRET=
OIDC_ANZEIGENAME=SSO
# Gruppen-Claim und Gruppennamen für die Rollen. Wer in keiner der beiden Gruppen ist, kommt nicht
# hinein. Beide leer = jeder beim IdP angemeldete Benutzer wird Operator.
OIDC_GRUPPEN_CLAIM=groups
OIDC_GRUPPE_ADMIN=proxdeploy-admins
OIDC_GRUPPE_OPERATOR=proxdeploy-operators
# ── Worker ───────────────────────────────────────────────────────────────────
# Wie viele Aufträge gleichzeitig laufen dürfen.
WORKER_PARALLEL=4
# ── Logs ─────────────────────────────────────────────────────────────────────
# trace | debug | info | warn | error
LOG_LEVEL=info