Bootstrap, Host-Key-Pruefung und spaeteres Ausrollen brauchen echte sshd-Gegenstellen. Zwei Debian-13-Container (ziel-a, ziel-b) in einem gemeinsamen Netz bilden frische Hosts vor dem Bootstrap nach: root- und Passwort-Login sind absichtlich offen, Host-Keys entstehen erst beim Start, und `hostkeys-tauschen` erlaubt den Test "geaenderter Host-Key wird abgelehnt" ohne Neuerstellen des Containers. Die Testhilfen lesen dieselben Adress-Variablen wie die Compose-Datei und lassen Tests mit Hinweis auf den Startbefehl fehlschlagen, statt sie still zu ueberspringen - ein uebersprungener Integrationstest sieht sonst wie ein bestandener aus. Der Mock-OIDC-Anbieter ersetzt authentik in der Entwicklung (PLAN.md, Entscheidung 7). Bei interaktivem Login uebernimmt er nur Claims aus dem Formular, daher belegt eine eigene Login-Seite email, name und groups vor und laesst die Gruppen frei waehlen. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
58 lines
2.7 KiB
Bash
58 lines
2.7 KiB
Bash
# SSHKeyVault – Konfiguration. Kopieren nach .env und Werte eintragen.
|
||
# Alle eigenen Variablen tragen das Praefix SSHKV_ (Ausnahme: DATABASE_URL fuer Prisma).
|
||
|
||
# --- Datenbank -----------------------------------------------------------------
|
||
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=
|
||
|
||
# --- 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
|
||
|
||
# --- 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
|