# 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 # Benutzer, unter dem der Worker laeuft (muss die Datei lesen duerfen). Standard 1001:1001. # SSHKV_WORKER_USER=1001:1001 # --- 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 # Nur Entwicklung: OIDC ueber http erlauben (Mock-Anbieter). Im Betrieb nie setzen. # SSHKV_OIDC_HTTP_ERLAUBT=1 # --- 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 * * * # Taegliche Zusammenfassung der Benachrichtigungen (cron, Europe/Berlin, #028). Geaenderte # Host-Keys meldet der Worker unabhaengig davon alle fuenf Minuten. Kanaele und Anlaesse # stellt ein Admin unter /einstellungen ein. SSHKV_MELDUNG_CRON=0 7 * * * # --- 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 # Mailpit fuer tests/integration/benachrichtigung.test.ts (#028), getrennt zu starten: # docker run -d --name sshkv-mailpit -e MP_SMTP_DISABLE_RDNS=true \ # -p 127.0.0.1:1026:1025 -p 127.0.0.1:8026:8025 axllent/mailpit SSHKV_TEST_SMTP=127.0.0.1:1026 SSHKV_TEST_MAILPIT_API=http://127.0.0.1:8026