From 215f44b96234e7614c739e111bd449f586144415 Mon Sep 17 00:00:00 2001 From: Micha Date: Sun, 17 May 2026 17:05:23 +0200 Subject: [PATCH] Fix Glance monitor health checks --- docs/MIGRATION_LOG.md | 4 +-- docs/REPO_MAP.md | 3 +- docs/ROLLBACK.md | 5 ++- docs/SECRETS_MAP.md | 1 - docs/SERVICE_CATALOG.md | 2 +- ops/glance/config/glance.yml | 57 ++++++++++++++++++++++++++++++----- ops/glance/docker-compose.yml | 2 -- ops/glance/stack.env.example | 2 -- 8 files changed, 55 insertions(+), 21 deletions(-) delete mode 100644 ops/glance/stack.env.example diff --git a/docs/MIGRATION_LOG.md b/docs/MIGRATION_LOG.md index fceaad0..f441d37 100644 --- a/docs/MIGRATION_LOG.md +++ b/docs/MIGRATION_LOG.md @@ -19,9 +19,9 @@ Dieses Dokument ist nur noch ein historischer Verlauf. Der aktuelle operative Ab ### 2026-05-17 - Glance Homelab-Dashboard vorbereitet - `ops/glance` als geschuetztes Homelab-Dashboard unter `glance.kaleschke.info` vorbereitet. -- Glance zeigt HTTP-Monitore fuer Core, Apps und Ops, Docker-Containergruppen, AdGuard DNS-Stats, Host-Snapshot, Bookmarks und relevante Upstream-Releases. +- Glance zeigt HTTP-Monitore fuer Core, Apps und Ops, Docker-Containergruppen, Host-Snapshot, Bookmarks und relevante Upstream-Releases. - Docker-Status laeuft nicht ueber einen direkten Socket-Mount in Glance, sondern ueber `glance-docker-socket-proxy` auf einem internen `glance_socket_net`. -- AdGuard-Zugangsdaten fuer das DNS-Stats-Widget bleiben als Komodo Stack Environment Variables ausserhalb des Repos. +- Die HTTP-Monitore nutzen oeffentliche URLs als Klickziel und interne `check-url`-Endpunkte auf `frontend_net`, damit Glance nicht vom externen Hairpin-/Auth-Pfad abhaengt. ### 2026-05-17 - Monitoring-Zielstack konsolidiert diff --git a/docs/REPO_MAP.md b/docs/REPO_MAP.md index 6e90585..90806db 100644 --- a/docs/REPO_MAP.md +++ b/docs/REPO_MAP.md @@ -54,7 +54,7 @@ Secret-Werte werden hier nicht dokumentiert. Aufgefuehrt werden nur Variablennam | `monitoring/loki/loki-config.yml` | Loki Filesystem/Retention-Konfiguration fuer dedizierten Monitoring-Stack | | `monitoring/promtail/promtail-config.yml` | Promtail Docker-Socket-Discovery fuer dedizierten Monitoring-Stack | | `monitoring/grafana/provisioning/*` | Grafana Datasource-/Dashboard-Provisioning fuer Prometheus und Loki | -| `ops/glance/config/glance.yml` | Glance Dashboard-Konfiguration fuer Homelab-Monitore, Docker-Containergruppen, DNS-Stats und Bookmarks | +| `ops/glance/config/glance.yml` | Glance Dashboard-Konfiguration fuer Homelab-Monitore, Docker-Containergruppen, Host-Snapshot, Releases und Bookmarks | | `ops/borg-ui/scripts/pre-backup-dumps.sh` | Host-seitiges Dump-Skript fuer PostgreSQL, SQLite-Container-Dumps und Komodo Mongo | | `services/posture-check/posture-check.sh` | Host-seitiger Posture-Check fuer Filesystem, Mover-Drift, NVMe-SMART, Fuellstand und ntfy-Alarmierung | | `services/posture-check/docker-critical-events.sh` | Host-seitiger Docker-Event-Watcher fuer kritische ntfy-Alarme | @@ -221,7 +221,6 @@ Secret-Werte werden hier nicht dokumentiert. Aufgefuehrt werden nur Variablennam | Immich | `IMMICH_DB_PASSWORD` Stack ENV; `immich_postgres_password.txt` fuer Postgres | | Mail Archiver | `MAILARCHIVER_DB_CONNECTION`, `MAILARCHIVER_AUTH_PASSWORD` als Stack ENV | | Homepage | viele `HOMEPAGE_VAR_*` Stack ENV Keys fuer Tokens/Logins | -| Glance | `GLANCE_ADGUARD_USERNAME`, `GLANCE_ADGUARD_PASSWORD` als Stack ENV fuer AdGuard DNS-Stats | | Speedtest | `APP_KEY`, `ADMIN_PASSWORD` als Stack ENV | | Nextcloud | Admin User, Admin Password, Postgres Password via Secret-Dateien | | Komodo | `KOMODO_SECRET_KEY`, `KOMODO_WEBHOOK_SECRET`, `KOMODO_JWT_SECRET`, `KOMODO_MONGO_PASSWORD`, `KOMODO_PERIPHERY_PASSKEY`; Mongo Passwort-Datei | diff --git a/docs/ROLLBACK.md b/docs/ROLLBACK.md index bbe94f3..6387bb1 100644 --- a/docs/ROLLBACK.md +++ b/docs/ROLLBACK.md @@ -113,9 +113,8 @@ Nach einem Deploy: 1. `glance` in Komodo stoppen oder auf den letzten funktionierenden Commit zurueckgehen 2. keine Produktivdaten loeschen; Glance nutzt nur Repo-Konfiguration und Stack-ENV -3. Stack-ENV `GLANCE_ADGUARD_USERNAME` und `GLANCE_ADGUARD_PASSWORD` nur nach bewusstem Entscheid entfernen -4. pruefen, ob `https://glance.kaleschke.info` nicht mehr geroutet wird oder wieder den erwarteten Stand zeigt -5. der `glance-docker-socket-proxy` darf nicht separat als Dauercontainer laufen bleiben +3. pruefen, ob `https://glance.kaleschke.info` nicht mehr geroutet wird oder wieder den erwarteten Stand zeigt +4. der `glance-docker-socket-proxy` darf nicht separat als Dauercontainer laufen bleiben --- diff --git a/docs/SECRETS_MAP.md b/docs/SECRETS_MAP.md index 3c98462..93f3594 100644 --- a/docs/SECRETS_MAP.md +++ b/docs/SECRETS_MAP.md @@ -39,7 +39,6 @@ Dieses Dokument listet sensible Daten, deren Ablageorte und die vorgesehene Einb | 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 | | Homepage | API Tokens / Zugangsdaten | Stack ENV `HOMEPAGE_VAR_*` | aktiv | -| Glance | AdGuard API Login fuer DNS-Stats | Stack ENV `${GLANCE_ADGUARD_USERNAME}`, `${GLANCE_ADGUARD_PASSWORD}` | vorbereitet | | 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 | diff --git a/docs/SERVICE_CATALOG.md b/docs/SERVICE_CATALOG.md index 3eae2fe..26320f9 100644 --- a/docs/SERVICE_CATALOG.md +++ b/docs/SERVICE_CATALOG.md @@ -55,7 +55,7 @@ Secret-Werte sind nicht enthalten. Es werden nur Secret-Namen, Env-Key-Namen und | Service | Zweck | Autoritativer Pfad | URL / Zugang | Abhaengigkeiten | Datenpfade | Backup / Restore | Traefik | Besonderheiten / TODOs | |---|---|---|---|---|---|---|---|---| | `homepage` | Start-Dashboard | `apps/homepage/docker-compose.yml` | `https://home.kaleschke.info` | Traefik, viele API Tokens | `/mnt/user/appdata/homepage`, `/mnt/user/appdata/homepage/images` | Tier 2 | ja + Authelia laut Compose | Authelia schuetzt die Domain ueber die 1FA-Wildcard-Regel; Docker socket im Recovery entfernt, Docker-Widgets erst wieder via dokumentierter Ausnahme oder Socket-Proxy | -| `glance` | Homelab-Uebersicht / Status-Dashboard | `ops/glance/docker-compose.yml`, `ops/glance/config/glance.yml` | `https://glance.kaleschke.info` | Traefik + Authelia, AdGuard API, interner Docker-Socket-Proxy | Repo-Konfiguration; keine kritische Persistenz | Tier 3, rebuildbar | ja + Authelia | Zeigt aktive Dienste, HTTP-Monitore, Docker-Containergruppen, AdGuard DNS-Stats, Host-Snapshot und Releases; Docker-API nur ueber `glance-docker-socket-proxy` auf internem Netz | +| `glance` | Homelab-Uebersicht / Status-Dashboard | `ops/glance/docker-compose.yml`, `ops/glance/config/glance.yml` | `https://glance.kaleschke.info` | Traefik + Authelia, interne HTTP-Checks, interner Docker-Socket-Proxy | Repo-Konfiguration; keine kritische Persistenz | Tier 3, rebuildbar | ja + Authelia | Zeigt aktive Dienste, HTTP-Monitore, Docker-Containergruppen, Host-Snapshot und Releases; Docker-API nur ueber `glance-docker-socket-proxy` auf internem Netz | | `komodo-core` | GitOps UI/API/Stack-Manager | `ops/komodo/docker-compose.yml` | `https://komodo.kaleschke.info` | Mongo, Gitea, Traefik | `/mnt/user/appdata/komodo/core`, `komodo_keys` | Tier 1 | ja, native Auth | keine pauschale Authelia-ForwardAuth; Gitea DNS override | | `komodo-mongo` | Komodo Datenbank | `ops/komodo/docker-compose.yml` | intern | `komodo_net` | `/mnt/user/appdata/komodo/mongo`, `komodo_mongo_password.txt` | Tier 1, `komodo-mongo.archive.gz` | nein | Dump am 2026-05-04 bestaetigt; nach Major-Upgrades pruefen | | `komodo-periphery` | Komodo Host-Agent | `ops/komodo/docker-compose.yml` | intern Core -> Periphery | Docker socket, `/mnt/user/services`, `frontend_net`, `komodo_net` | `/mnt/user/appdata/komodo/periphery`, `komodo_keys` | Tier 1 | nein | Docker-Socket-Ausnahme; `/mnt/user/services` Mount fuer Stack-Workspaces | diff --git a/ops/glance/config/glance.yml b/ops/glance/config/glance.yml index cc21da0..8033542 100644 --- a/ops/glance/config/glance.yml +++ b/ops/glance/config/glance.yml @@ -50,14 +50,6 @@ pages: - type: calendar first-day-of-week: monday - - type: dns-stats - title: AdGuard DNS - service: adguard - url: http://adguard - username: ${GLANCE_ADGUARD_USERNAME} - password: ${GLANCE_ADGUARD_PASSWORD} - hour-format: 24h - - type: server-stats title: Host Snapshot servers: @@ -107,28 +99,39 @@ pages: sites: - title: Traefik url: https://traefik.kaleschke.info + check-url: http://traefik:8082/metrics icon: si:traefikproxy + timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: Authelia url: https://auth.kaleschke.info + check-url: http://authelia:9091/api/health icon: si:authelia + timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: Gitea url: https://git.kaleschke.info + check-url: http://gitea:3000/api/healthz icon: si:gitea + timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: Komodo url: https://komodo.kaleschke.info + check-url: http://komodo-core:9120 icon: sh:komodo + timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: Vaultwarden url: https://vault.kaleschke.info + check-url: http://vaultwarden/alive icon: si:vaultwarden + timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: AdGuard Home url: http://192.168.178.58:8082 check-url: http://adguard icon: si:adguard + timeout: 5s alt-status-codes: [200, 302, 401, 403] - type: monitor @@ -137,35 +140,51 @@ pages: sites: - title: Paperless-ngx url: https://paperless.kaleschke.info + check-url: http://paperless-ngx:8000 icon: sh:paperless-ngx + timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: Paperless-GPT url: https://paperless-gpt.kaleschke.info + check-url: http://paperless-gpt:8080 icon: mdi:robot + timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: Immich url: https://immich.kaleschke.info + check-url: http://immich_server:2283/api/server/ping icon: si:immich + timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: Mealie url: https://mealie.kaleschke.info + check-url: http://mealie:9000 icon: sh:mealie + timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: Nextcloud url: https://cloud.kaleschke.info + check-url: http://nextcloud/status.php icon: si:nextcloud + timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: ntfy url: https://ntfy.kaleschke.info + check-url: http://ntfy/v1/health icon: si:ntfy + timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: Mail Archiver url: https://mail.kaleschke.info + check-url: http://mail-archiver:5000 icon: mdi:email-archive + timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: BentoPDF url: https://pdf.kaleschke.info + check-url: http://bentopdf:8080 icon: mdi:file-pdf-box + timeout: 5s alt-status-codes: [200, 302, 401, 403] - type: monitor @@ -174,47 +193,69 @@ pages: sites: - title: Glance url: https://glance.kaleschke.info + check-url: http://glance:8080 icon: sh:glance + timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: Homepage url: https://home.kaleschke.info + check-url: http://homepage:3000 icon: sh:homepage + timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: Monitoring Grafana url: https://monitoring.kaleschke.info + check-url: http://monitoring-grafana:3000/api/health icon: si:grafana + timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: Uptime Kuma url: https://uptime.kaleschke.info + check-url: http://uptime-kuma:3001 icon: sh:uptime-kuma + timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: Glances url: https://glances.kaleschke.info + check-url: http://glances:61208 icon: sh:glances + timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: Scrutiny url: https://scrutiny.kaleschke.info + check-url: http://scrutiny:8080 icon: sh:scrutiny + timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: Speedtest Tracker url: https://speedtest.kaleschke.info + check-url: http://speedtest-tracker icon: sh:speedtest-tracker + timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: Filebrowser url: https://files.kaleschke.info + check-url: http://filebrowser icon: sh:filebrowser + timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: code-server url: https://code.kaleschke.info + check-url: http://code-server:8443 icon: sh:code-server + timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: Borg UI url: https://borg.kaleschke.info + check-url: http://borg-ui:8081 icon: mdi:archive-sync + timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: Hermes url: https://hermes.kaleschke.info + check-url: http://hermes-dashboard:9119 icon: mdi:shield-sparkles + timeout: 5s alt-status-codes: [200, 302, 401, 403] - size: small diff --git a/ops/glance/docker-compose.yml b/ops/glance/docker-compose.yml index d91ce88..a20096f 100644 --- a/ops/glance/docker-compose.yml +++ b/ops/glance/docker-compose.yml @@ -5,8 +5,6 @@ services: restart: unless-stopped environment: TZ: Europe/Berlin - GLANCE_ADGUARD_USERNAME: ${GLANCE_ADGUARD_USERNAME} - GLANCE_ADGUARD_PASSWORD: ${GLANCE_ADGUARD_PASSWORD} volumes: - ./config:/app/config:ro networks: diff --git a/ops/glance/stack.env.example b/ops/glance/stack.env.example deleted file mode 100644 index bb212db..0000000 --- a/ops/glance/stack.env.example +++ /dev/null @@ -1,2 +0,0 @@ -GLANCE_ADGUARD_USERNAME=admin -GLANCE_ADGUARD_PASSWORD=change-me