Files
sshkeyvault/.env.example
T
florian.wilde b99d19ec8c Merge branch 'phase/028-benachrichtigungen'
# Conflicts:
#	docker-compose.yml
#	scripts/screenshots.ts
2026-10-12 16:55:57 +02:00

97 lines
4.7 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.
# 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