Files
homelab-infra/docs/SECRETS_MAP.md
T
2026-05-25 14:44:46 +02:00

7.7 KiB

Secrets Map - Homelab

Dieses Dokument listet sensible Daten, deren Ablageorte und die vorgesehene Einbindungsart.

Grundregeln

  • Secrets liegen niemals im Git-Repository
  • Standardspeicherort ist /mnt/user/appdata/secrets/
  • dokumentierte Ausnahmen mit dienstspezifischen Pfaden sind erlaubt
  • Berechtigungen: chmod 600
  • Nutzung in Docker ueber _FILE, direkte Secret-Datei-Mounts oder Komodo Stack Environment Variables

Aktive Secrets

Service Secret Datei / Methode Status
Vaultwarden ADMIN_TOKEN /mnt/user/appdata/secrets/vaultwarden_admin_token.txt -> ADMIN_TOKEN_FILE aktiv
Traefik Cloudflare DNS API Token /mnt/user/appdata/traefik/secrets/cloudflare_dns_api_token -> Docker Secret cloudflare_dns_api_token aktiv
PostgreSQL 17 DB Password /mnt/user/appdata/secrets/postgres_password.txt -> POSTGRES_PASSWORD_FILE aktiv
Redis Passwort /mnt/user/appdata/secrets/redis_password.txt -> Datei-Mount + Startkommando in infra/redis/docker-compose.yml aktiv
Mealie DB Password /mnt/user/appdata/secrets/mealie_postgres_password.txt -> nicht versionierte Stack-.env ${MEALIE_POSTGRES_PASSWORD} -> POSTGRES_PASSWORD aktiv
mealie-postgres DB Password /mnt/user/appdata/secrets/mealie_postgres_password.txt -> POSTGRES_PASSWORD_FILE aktiv
Paperless-ngx DB Password Stack ENV ${PAPERLESS_DBPASS} aktiv
Paperless-ngx Redis URL Stack ENV ${PAPERLESS_REDIS} aktiv
code-server Passwort /mnt/user/appdata/code-server/secrets/password -> FILE__PASSWORD aktiv
Filebrowser Admin Password /mnt/user/appdata/secrets/filebrowser_admin_password.txt -> initialisierte SQLite-DB aktiv
Uptime Kuma Admin Password /mnt/user/appdata/secrets/uptime_kuma_admin_password.txt -> initialisierte SQLite-DB aktiv
Immich (server) DB Password Stack ENV ${IMMICH_DB_PASSWORD} aktiv
immich-postgres DB Password /mnt/user/appdata/secrets/immich_postgres_password.txt -> POSTGRES_PASSWORD_FILE aktiv
mail-archiver DB Connection Stack ENV ${MAILARCHIVER_DB_CONNECTION} aktiv
mail-archiver Auth Password Stack ENV ${MAILARCHIVER_AUTH_PASSWORD} aktiv
Authelia JWT Secret /mnt/user/appdata/secrets/authelia_jwt_secret.txt -> AUTHELIA_JWT_SECRET_FILE aktiv
Authelia Session Secret /mnt/user/appdata/secrets/authelia_session_secret.txt -> AUTHELIA_SESSION_SECRET_FILE aktiv
Authelia SMTP Password /mnt/user/appdata/secrets/authelia_smtp_password.txt -> Host-Secret fuer SMTP-Notifier aktiv
Authelia Storage Encryption Key /mnt/user/appdata/secrets/authelia_storage_encryption_key.txt -> AUTHELIA_STORAGE_ENCRYPTION_KEY_FILE aktiv
Authelia Postgres Password /mnt/user/appdata/secrets/authelia_postgres_password.txt -> AUTHELIA_STORAGE_POSTGRES_PASSWORD_FILE aktiv
Komodo Mongo Root Password /mnt/user/appdata/secrets/komodo_mongo_password.txt -> MONGO_INITDB_ROOT_PASSWORD_FILE aktiv
Komodo Core App Secrets Stack ENV ${KOMODO_SECRET_KEY}, ${KOMODO_WEBHOOK_SECRET}, ${KOMODO_JWT_SECRET}, ${KOMODO_MONGO_PASSWORD}, ${KOMODO_PERIPHERY_PASSKEY} aktiv
Gitea Push Mirror GitHub fine-grained PAT fuer michaelkaleschke-spec/homelab-infra Gitea Repository Mirror Settings, persistent in /mnt/user/services/gitea/data; kein Datei-Secret im Repo aktiv
Glance Community Widget API Tokens Stack ENV ${GLANCE_IMMICH_API_KEY}, ${GLANCE_ADGUARD_USERNAME}, ${GLANCE_ADGUARD_PASSWORD}, ${GLANCE_SPEEDTEST_API_KEY} aktiv
speedtest-tracker App Key / Admin-Zugang Stack ENV ${APP_KEY}, ${ADMIN_PASSWORD} aktiv
Nextcloud Admin User /mnt/user/appdata/secrets/nextcloud_admin_user.txt -> NEXTCLOUD_ADMIN_USER_FILE neu
Nextcloud Admin Password /mnt/user/appdata/secrets/nextcloud_admin_password.txt -> NEXTCLOUD_ADMIN_PASSWORD_FILE neu
nextcloud-postgres DB Password /mnt/user/appdata/secrets/nextcloud_postgres_password.txt -> POSTGRES_PASSWORD_FILE neu
Borg UI / Borg Admin-Login, SECRET_KEY, SSH-Keys, Repo-Credentials persistent unter /mnt/user/appdata/borg-ui/data/ aktiv
Borg Repo Borg-Passphrase fuer Restore-Tests und Notfallzugriff /mnt/user/appdata/secrets/borg_repo_passphrase.txt -> Host-Secret-Datei, nicht im Repo aktiv
Hermes Agent Provider-Keys, Bot-Tokens, API-Server-Key /mnt/user/appdata/hermes-agent/data/.env VM-seitig offen
Hermes Agent SSH-Runner Private Key /mnt/user/appdata/secrets/hermes_runner_id_ed25519 -> /root/.ssh/id_ed25519 VM-seitig offen
Grafana Admin Password /mnt/user/appdata/secrets/grafana_admin_password.txt -> GF_SECURITY_ADMIN_PASSWORD__FILE aktiv
InfluxDB 3 Core Admin Token JSON /mnt/user/appdata/secrets/influxdb3_admin_token.json -> Docker Secret /run/secrets/influxdb3_admin_token aktiv
Grafana -> InfluxDB Datasource Token /mnt/user/appdata/secrets/grafana_influxdb_token.txt -> Docker Secret /run/secrets/grafana_influxdb_token aktiv
Monitoring Grafana Admin Password /mnt/user/appdata/secrets/monitoring_grafana_admin_password.txt -> Docker Secret /run/secrets/monitoring_grafana_admin_password -> GF_SECURITY_ADMIN_PASSWORD__FILE aktiv
Monitoring Grafana -> InfluxDB Datasource Token /mnt/user/appdata/secrets/monitoring_grafana_influxdb_token.txt -> Docker Secret /run/secrets/monitoring_grafana_influxdb_token aktiv
Home Assistant -> InfluxDB HA InfluxDB Token /homeassistant/secrets.yaml -> influxdb3_homeassistant_token geplant

Historisch entfernte Secrets

Dienst Frueherer Secret-Pfad / Mechanismus Status
Gotify gotify_password.txt / GOTIFY_DEFAULTUSER_PASS_FILE Dienst nicht mehr aktiv
diun Stack ENV Container entfernt

Pfadstruktur

/mnt/user/appdata/secrets/
|-- authelia_jwt_secret.txt
|-- authelia_postgres_password.txt
|-- authelia_session_secret.txt
|-- authelia_smtp_password.txt
|-- authelia_storage_encryption_key.txt
|-- immich_postgres_password.txt
|-- komodo_mongo_password.txt
|-- mealie_postgres_password.txt
|-- monitoring_grafana_admin_password.txt
|-- monitoring_grafana_influxdb_token.txt
|-- nextcloud_admin_password.txt
|-- nextcloud_admin_user.txt
|-- nextcloud_postgres_password.txt
|-- postgres_password.txt
|-- redis_password.txt
|-- borg_repo_passphrase.txt
|-- grafana_admin_password.txt
|-- grafana_influxdb_token.txt
|-- influxdb3_admin_token.json
|-- filebrowser_admin_password.txt
|-- uptime_kuma_admin_password.txt
`-- vaultwarden_admin_token.txt

Weitere dokumentierte Secret-Pfade:

  • /mnt/user/appdata/code-server/secrets/password
  • /mnt/user/appdata/secrets/hermes_runner_id_ed25519
  • /mnt/user/appdata/traefik/secrets/cloudflare_dns_api_token
  • Borg UI verwaltet Session-Secret, Admin-Login, SSH-Keys und Repo-Credentials in seiner persistenten /data-Struktur. Diese Daten liegen nicht im Git, muessen aber gesichert werden.
  • Die Borg-Repo-Passphrase liegt zusaetzlich als Host-Secret-Datei fuer Restore-Tests und Notfallzugriff vor; der Wert muss ausserhalb des Homelabs analog gesichert werden.
  • Gitea verwaltet den GitHub-Push-Mirror-PAT in den Repository-Mirror-Settings. Der Wert wird nicht dokumentiert und nicht in Dateien unter docs/ oder core/gitea/ geschrieben.
  • paperless-ngx ist eine bewusste Ausnahme: DB-Passwort und Redis-URL bleiben aktuell als Komodo Stack Environment Variables hinterlegt, um den stabil laufenden Produktionsstand nicht fuer eine reine Secret-Mechanik-Migration zu riskieren.

Regel

Wenn _FILE nicht unterstuetzt wird -> Stack Environment Variable in Komodo verwenden.

Secrets niemals direkt in die Compose-Datei schreiben.