Die Oberflaeche legt einen Vorgang an und schickt nur dessen ID in die Warteschlange; der Worker fuehrt ihn aus und haelt Status, Ergebnis oder Fehler fest. So bleiben lange SSH-Vorgaenge aus dem Webprozess heraus, und der Fortschritt ist ohne Job-Interna sichtbar. Kein automatisches Wiederholen: ein halb ausgefuehrter Schreibvorgang auf einem Host gehoert vor einen Menschen. Fehlertexte aus fremden Bibliotheken erreichen die Oberflaeche nie. Dockerfile und Compose fuer den Betrieb: Master-Key als Secret nur im Worker, Datenbank in einem internen Netz. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
69 lines
3.2 KiB
Bash
69 lines
3.2 KiB
Bash
# SSHKeyVault – Konfiguration. Kopieren nach .env und Werte eintragen.
|
||
# Alle eigenen Variablen tragen das Praefix SSHKV_ (Ausnahme: DATABASE_URL fuer Prisma).
|
||
|
||
# --- Datenbank -----------------------------------------------------------------
|
||
# Betrieb (docker-compose.yml): Passwort der Datenbank; DATABASE_URL setzt Compose selbst.
|
||
POSTGRES_PASSWORD=
|
||
# Entwicklung:
|
||
DATABASE_URL=postgresql://sshkv:sshkv@localhost:5436/sshkv?schema=public
|
||
# Nur fuer Tests (wird von Vitest geleert!)
|
||
TEST_DATABASE_URL=postgresql://sshkv:sshkv@localhost:5436/sshkv_test?schema=public
|
||
|
||
# --- Web -----------------------------------------------------------------------
|
||
# Oeffentliche Adresse (hinter dem Reverse Proxy). Bestimmt Secure-Cookie und OIDC-Rueckruf.
|
||
SSHKV_APP_URL=http://localhost:3400
|
||
# Signiert Sitzungen. Erzeugen mit: openssl rand -base64 48
|
||
SSHKV_APP_SECRET=
|
||
|
||
# --- Betrieb -------------------------------------------------------------------
|
||
# Adresse/Port, an die die Weboberflaeche gebunden wird (Reverse Proxy davor).
|
||
SSHKV_BIND=127.0.0.1
|
||
SSHKV_PORT=3400
|
||
|
||
# --- Master-Key (nur Worker!) --------------------------------------------------
|
||
# Datei mit 32 zufaelligen Bytes. Erzeugen mit: head -c 32 /dev/urandom > master.key
|
||
# Ohne diese Datei ist jedes Datenbank-Backup wertlos – getrennt sichern!
|
||
SSHKV_MASTER_KEY_FILE=./geheim/master.key
|
||
# Betrieb: Datei auf dem Docker-Host, die als Secret nur in den Worker kommt.
|
||
# Rechte: chown 1001:1001, chmod 400 (der Worker verweigert lesbare Schluessel).
|
||
SSHKV_MASTER_KEY_HOST_FILE=./geheim/master.key
|
||
|
||
# --- OIDC (authentik) ----------------------------------------------------------
|
||
SSHKV_OIDC_ISSUER=
|
||
SSHKV_OIDC_CLIENT_ID=
|
||
SSHKV_OIDC_CLIENT_SECRET=
|
||
SSHKV_OIDC_NAME=authentik
|
||
# Gruppen im Anbieter, die auf Rollen abgebildet werden
|
||
SSHKV_OIDC_GROUP_ADMIN=sshkv-admins
|
||
SSHKV_OIDC_GROUP_OPERATOR=sshkv-operators
|
||
SSHKV_OIDC_GROUP_READER=sshkv-readers
|
||
|
||
# Entwicklung ohne authentik: Mock-OIDC aus docker-compose.test.yml (pnpm test:ziele:up).
|
||
# Der Issuer haengt am Host-Header – genau 127.0.0.1 verwenden, nicht localhost.
|
||
# Client-ID und -Secret prueft der Mock nicht; beliebige Werte funktionieren.
|
||
# Im Login-Formular sind Claims (email, name, groups …) vorbelegt und frei aenderbar.
|
||
# SSHKV_OIDC_ISSUER=http://127.0.0.1:8090/sshkv
|
||
# SSHKV_OIDC_CLIENT_ID=sshkv-dev
|
||
# SSHKV_OIDC_CLIENT_SECRET=sshkv-dev-geheim
|
||
# SSHKV_OIDC_NAME=Mock-OIDC
|
||
|
||
# --- Notfall-Admin -------------------------------------------------------------
|
||
# Wird beim ersten Seed angelegt. TOTP wird bei der ersten Anmeldung eingerichtet.
|
||
SSHKV_BREAKGLASS_USER=notfall
|
||
SSHKV_BREAKGLASS_PASSWORD=
|
||
|
||
# --- Worker --------------------------------------------------------------------
|
||
# Zeitplan fuer den Abgleich aller Hosts (cron)
|
||
SSHKV_SYNC_CRON=30 2 * * *
|
||
|
||
# --- Integrationstests (#011) ---------------------------------------------------
|
||
# SSH-Testziele aus docker-compose.test.yml. Die Compose-Datei liest dieselben Variablen
|
||
# fuer die Port-Bindung (host:port, nur 127.0.0.1).
|
||
SSHKV_TEST_ZIEL_A=127.0.0.1:2221
|
||
SSHKV_TEST_ZIEL_B=127.0.0.1:2222
|
||
# Passwoerter der Testziele fuer root und den Benutzer "test"
|
||
SSHKV_TEST_ROOT_PASSWORT=sshkv-test
|
||
SSHKV_TEST_TEST_PASSWORT=sshkv-test
|
||
# Mock-OIDC (Port-Bindung)
|
||
SSHKV_TEST_OIDC=127.0.0.1:8090
|