97 lines
4.7 KiB
Bash
97 lines
4.7 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
|
||
# 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 * * *
|
||
|
||
# --- Syslog (optional, #027) ---------------------------------------------------
|
||
# Jeder Protokolleintrag geht zusaetzlich als RFC-5424-Zeile an einen Syslog-Server – die
|
||
# Kopie ausserhalb von sshkv. Ohne SSHKV_SYSLOG_HOST ist die Weiterleitung aus. Es gehen nur
|
||
# Akteur, Aktion, Ergebnis, Host, Zielbenutzer, Fingerprint und Hash hinaus, nie Details/Diff.
|
||
# Web und Worker protokollieren beide; beide brauchen die Variablen.
|
||
# SSHKV_SYSLOG_HOST=syslog.intern
|
||
# Standard 514
|
||
# SSHKV_SYSLOG_PORT=514
|
||
# udp (Standard) oder tcp (Oktettzaehlung nach RFC 6587)
|
||
# SSHKV_SYSLOG_PROTOKOLL=udp
|
||
# APP-NAME im Syslog-Kopf (Standard sshkv)
|
||
# SSHKV_SYSLOG_APPNAME=sshkv
|
||
# Facility (Standard authpriv; auch auth, daemon, user, local0 … local7)
|
||
# SSHKV_SYSLOG_FACILITY=authpriv
|
||
|
||
# --- 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
|