From 9b4d37ca813c750d8d86335dc0e7cc547a0df38c Mon Sep 17 00:00:00 2001 From: Micha Date: Wed, 6 May 2026 18:50:14 +0200 Subject: [PATCH] Split Komodo webhook secret --- docs/AI_CONTEXT.md | 2 +- docs/DISASTER_RECOVERY.md | 1 + docs/MIGRATION_LOG.md | 6 ++++++ docs/REPO_MAP.md | 2 +- docs/SECRETS_MAP.md | 2 +- ops/komodo/docker-compose.yml | 2 +- ops/komodo/stack.env.example | 3 +++ 7 files changed, 14 insertions(+), 4 deletions(-) diff --git a/docs/AI_CONTEXT.md b/docs/AI_CONTEXT.md index 50828ef..4f4ce83 100644 --- a/docs/AI_CONTEXT.md +++ b/docs/AI_CONTEXT.md @@ -46,7 +46,7 @@ Traefik ist der zentrale Web-Einstieg fuer HTTP(S). Admin-/Ops-UIs liegen entwed - Authelia nutzt GMX SMTP fuer Identity-/2FA-Benachrichtigungen; Passwort liegt als Host-Secret `authelia_smtp_password.txt`. - Vaultwarden ist ein separater Passwort-Tresor. - Komodo ist bewusst nicht pauschal hinter Authelia, weil UI, API, Webhooks und Periphery-WebSocket sonst leicht gebrochen werden koennen. -- Komodo-Compose, Komodo-Secrets und Komodo-Runtime nur gemeinsam mit dem Betreiber aendern. +- Komodo-Compose, Komodo-Secrets und Komodo-Runtime nur gemeinsam mit dem Betreiber aendern; `KOMODO_WEBHOOK_SECRET` ist bewusst getrennt von `KOMODO_SECRET_KEY`. ### Apps diff --git a/docs/DISASTER_RECOVERY.md b/docs/DISASTER_RECOVERY.md index 9772d5b..d941377 100644 --- a/docs/DISASTER_RECOVERY.md +++ b/docs/DISASTER_RECOVERY.md @@ -159,6 +159,7 @@ Diese Werte sind vor dem Start der betroffenen Dienste zu pruefen bzw. wieder in - `HERMES_DASHBOARD_HOST` - Hermes Host-`.env` fuer Provider-/API-/Home-Assistant-Tokens - `KOMODO_SECRET_KEY` +- `KOMODO_WEBHOOK_SECRET` - `KOMODO_JWT_SECRET` - `KOMODO_MONGO_PASSWORD` - `KOMODO_PERIPHERY_PASSKEY` diff --git a/docs/MIGRATION_LOG.md b/docs/MIGRATION_LOG.md index a7804cb..e2d0df2 100644 --- a/docs/MIGRATION_LOG.md +++ b/docs/MIGRATION_LOG.md @@ -16,6 +16,12 @@ Dieses Dokument ist nur noch ein historischer Verlauf. Der aktuelle operative Ab ## Historische Meilensteine +### 2026-05-06 - Komodo Webhook Secret getrennt + +- `KOMODO_WEBHOOK_SECRET` von `KOMODO_SECRET_KEY` getrennt und als eigene Stack-ENV-Variable dokumentiert. +- Gitea-Komodo-Webhooks muessen denselben Webhook-Secret-Wert nutzen wie Komodo Core. +- Host-`.env`, persistente Komodo-Compose und Gitea-Webhooks wurden als ein gemeinsamer Runtime-Schritt behandelt, damit Auto-Deploys nicht auseinanderlaufen. + ### 2026-05-06 - Authelia GMX SMTP Notifier - Authelia-Notifier von Filesystem-Log auf GMX SMTP (`submission://mail.gmx.net:587`) umgestellt. diff --git a/docs/REPO_MAP.md b/docs/REPO_MAP.md index 8420b13..eec71b4 100644 --- a/docs/REPO_MAP.md +++ b/docs/REPO_MAP.md @@ -201,7 +201,7 @@ Secret-Werte werden hier nicht dokumentiert. Aufgefuehrt werden nur Variablennam | Homepage | viele `HOMEPAGE_VAR_*` Stack ENV Keys fuer Tokens/Logins | | Speedtest | `APP_KEY`, `ADMIN_PASSWORD` als Stack ENV | | Nextcloud | Admin User, Admin Password, Postgres Password via Secret-Dateien | -| Komodo | `KOMODO_SECRET_KEY`, `KOMODO_JWT_SECRET`, `KOMODO_MONGO_PASSWORD`, `KOMODO_PERIPHERY_PASSKEY`; Mongo Passwort-Datei | +| Komodo | `KOMODO_SECRET_KEY`, `KOMODO_WEBHOOK_SECRET`, `KOMODO_JWT_SECRET`, `KOMODO_MONGO_PASSWORD`, `KOMODO_PERIPHERY_PASSKEY`; Mongo Passwort-Datei | | Borg UI | Borg Credentials, Admin Login, SSH Keys in persistentem Appdata, nicht im Git | | Hermes Agent | provider keys, API server key, messaging tokens, Home Assistant token in Host `.env`; SSH private key als Host-Secret | | Grafana/InfluxDB | Grafana Admin Password, InfluxDB Admin Token JSON, Grafana Datasource Token | diff --git a/docs/SECRETS_MAP.md b/docs/SECRETS_MAP.md index c85f36d..1e8ff8c 100644 --- a/docs/SECRETS_MAP.md +++ b/docs/SECRETS_MAP.md @@ -34,7 +34,7 @@ Dieses Dokument listet sensible Daten, deren Ablageorte und die vorgesehene Einb | 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_JWT_SECRET}`, `${KOMODO_MONGO_PASSWORD}`, `${KOMODO_PERIPHERY_PASSKEY}` | aktiv | +| Komodo Core | App Secrets | Stack ENV `${KOMODO_SECRET_KEY}`, `${KOMODO_WEBHOOK_SECRET}`, `${KOMODO_JWT_SECRET}`, `${KOMODO_MONGO_PASSWORD}`, `${KOMODO_PERIPHERY_PASSKEY}` | aktiv | | Homepage | API Tokens / Zugangsdaten | Stack ENV `HOMEPAGE_VAR_*` | 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 | diff --git a/ops/komodo/docker-compose.yml b/ops/komodo/docker-compose.yml index ff33328..7b64e51 100644 --- a/ops/komodo/docker-compose.yml +++ b/ops/komodo/docker-compose.yml @@ -53,7 +53,7 @@ services: - KOMODO_HOST=https://komodo.kaleschke.info - KOMODO_TITLE=Kallilabcore - KOMODO_SECRET_KEY=${KOMODO_SECRET_KEY} - - KOMODO_WEBHOOK_SECRET=${KOMODO_SECRET_KEY} + - KOMODO_WEBHOOK_SECRET=${KOMODO_WEBHOOK_SECRET} - KOMODO_PASSKEY=${KOMODO_PERIPHERY_PASSKEY} - KOMODO_DATABASE_ADDRESS=komodo-mongo:27017 - KOMODO_DATABASE_USERNAME=komodo diff --git a/ops/komodo/stack.env.example b/ops/komodo/stack.env.example index d0cd863..8a93c13 100644 --- a/ops/komodo/stack.env.example +++ b/ops/komodo/stack.env.example @@ -18,6 +18,9 @@ KOMODO_MONGO_PASSWORD= # Komodo Secret Key (JWT-Signing, min. 32 Zeichen) KOMODO_SECRET_KEY= +# Komodo Webhook Secret (Gitea -> Komodo, eigener Wert) +KOMODO_WEBHOOK_SECRET= + # Komodo JWT Secret (min. 32 Zeichen) KOMODO_JWT_SECRET=