diff --git a/docs/MIGRATION_LOG.md b/docs/MIGRATION_LOG.md index ac9b7b9..4217d8f 100644 --- a/docs/MIGRATION_LOG.md +++ b/docs/MIGRATION_LOG.md @@ -22,7 +22,7 @@ Dieses Dokument ist nur noch ein historischer Verlauf. Der aktuelle operative Ab - Glance zeigt HTTP-Monitore fuer Core, Apps und Ops, Docker-Containergruppen, Host-Snapshot und Bookmarks. - Docker-Status laeuft nicht ueber einen direkten Socket-Mount in Glance, sondern ueber `glance-docker-socket-proxy` auf einem internen `glance_socket_net`. - 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. -- Community-Widgets fuer Immich und Speedtest Tracker wurden ergaenzt. API-Zugriffe nutzen interne Service-URLs und Stack-ENV-Tokens. Paperless und Scrutiny bleiben Kandidaten fuer einen spaeteren Widget-Pass, sobald die konkrete API-Ausgabe im Glance-Kontext sauber verifiziert ist. +- Das Immich Community-Widget wurde ergaenzt. Der API-Zugriff nutzt eine interne Service-URL und ein Stack-ENV-Token. Paperless, Scrutiny und Speedtest bleiben Kandidaten fuer einen spaeteren Widget-Pass, sobald die konkrete API-Ausgabe im Glance-Kontext sauber verifiziert ist. ### 2026-05-17 - Monitoring-Zielstack konsolidiert diff --git a/docs/REPO_MAP.md b/docs/REPO_MAP.md index 3e8f5e6..b03eca0 100644 --- a/docs/REPO_MAP.md +++ b/docs/REPO_MAP.md @@ -108,7 +108,7 @@ Secret-Werte werden hier nicht dokumentiert. Aufgefuehrt werden nur Variablennam | Borg UI | `ops/borg-ui/docker-compose.yml` | `borg-ui` -> `ainullcode/borg-ui:latest@sha256:...` | `borg.kaleschke.info` | `frontend_net` | keine | Borg repo, Dump-Scope, Restore-Ziel | | code-server | `ops/code-server/docker-compose.yml` | `code-server` -> `lscr.io/linuxserver/code-server:4.116.0@sha256:...` | `code.kaleschke.info` | `frontend_net` | keine | Passwort-Datei, Workspace-Mounts | | Filebrowser | `ops/filebrowser/docker-compose.yml` | `filebrowser` -> `filebrowser/filebrowser:v2.63.2@sha256:...` | `files.kaleschke.info` | `frontend_net` | keine | Documents/Photos/Projekte-Mounts, Admin-UI hinter Authelia | -| Glance | `ops/glance/docker-compose.yml` | `glance` -> `glanceapp/glance:v0.8.4`, `glance-docker-socket-proxy` -> `tecnativa/docker-socket-proxy:v0.4.2` | `glance.kaleschke.info` | `frontend_net`, `glance_socket_net` | keine | Homelab-Dashboard mit Monitor-, Community-, Docker- und Server-Stats-Widgets; aktive Community-Widgets: Immich und Speedtest; Docker-API nur ueber internen Socket-Proxy | +| Glance | `ops/glance/docker-compose.yml` | `glance` -> `glanceapp/glance:v0.8.4`, `glance-docker-socket-proxy` -> `tecnativa/docker-socket-proxy:v0.4.2` | `glance.kaleschke.info` | `frontend_net`, `glance_socket_net` | keine | Homelab-Dashboard mit Monitor-, Community-, Docker- und Server-Stats-Widgets; aktives Community-Widget: Immich; Docker-API nur ueber internen Socket-Proxy | | Glances | `ops/glances/docker-compose.yml` | `glances` -> `nicolargo/glances:latest-full@sha256:...` | `glances.kaleschke.info` | `frontend_net` | keine | Rootfs/Docker-Socket fuer Monitoring | | Grafana/InfluxDB | `ops/grafana-influxdb/docker-compose.yml` | `grafana`, `influxdb3-core` | `grafana.kaleschke.info` | `frontend_net`, `grafana_influx_internal`, `grafana_influx_lan` | `influxdb3-core`: `${INFLUXDB_BIND_IP:-127.0.0.1}:8181:8181` | abgeloester Altstand; nach erfolgreicher Migration durch `monitoring/` ersetzen | | Loki/Alloy | `ops/loki/docker-compose.yml` | `loki`, `alloy` | keine | `backend_net` | keine | abgeloester Altstand; nach erfolgreicher Migration durch `monitoring-loki`/`monitoring-promtail` ersetzen | @@ -221,7 +221,7 @@ 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_IMMICH_API_KEY`, `GLANCE_SPEEDTEST_API_TOKEN` als Stack ENV fuer Community-Widgets | +| Glance | `GLANCE_IMMICH_API_KEY` als Stack ENV fuer Community-Widgets | | 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/SECRETS_MAP.md b/docs/SECRETS_MAP.md index 79b748a..9e99e51 100644 --- a/docs/SECRETS_MAP.md +++ b/docs/SECRETS_MAP.md @@ -39,7 +39,7 @@ 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 | Community Widget API Tokens | Stack ENV `${GLANCE_IMMICH_API_KEY}`, `${GLANCE_SPEEDTEST_API_TOKEN}` | aktiv | +| Glance | Community Widget API Tokens | Stack ENV `${GLANCE_IMMICH_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 | diff --git a/docs/SERVICE_CATALOG.md b/docs/SERVICE_CATALOG.md index b654b95..1223421 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, interne HTTP-Checks, Immich/Speedtest APIs, interner Docker-Socket-Proxy | Repo-Konfiguration; keine kritische Persistenz | Tier 3, rebuildbar | ja + Authelia | Zeigt aktive Dienste, Immich-/Speedtest-Community-Widgets, HTTP-Monitore, Docker-Containergruppen, Host-Snapshot und Bookmarks; 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, Immich API, interner Docker-Socket-Proxy | Repo-Konfiguration; keine kritische Persistenz | Tier 3, rebuildbar | ja + Authelia | Zeigt aktive Dienste, Immich-Community-Widget, HTTP-Monitore, Docker-Containergruppen, Host-Snapshot und Bookmarks; 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 9ac158b..a2114f8 100644 --- a/ops/glance/config/glance.yml +++ b/ops/glance/config/glance.yml @@ -134,45 +134,6 @@ pages:
{{ if $storageOK }}{{ printf "%.1f" $percentage }}% Speicher belegt{{ else }}Speicher API nicht verfuegbar{{ end }}
- - type: group - widgets: - - type: custom-api - title: Internet Speed - title-url: https://speedtest.kaleschke.info - cache: 1h - url: http://speedtest-tracker/api/v1/results/latest - headers: - Authorization: Bearer ${GLANCE_SPEEDTEST_API_TOKEN} - Accept: application/json - subrequests: - stats: - url: http://speedtest-tracker/api/v1/stats - headers: - Authorization: Bearer ${GLANCE_SPEEDTEST_API_TOKEN} - Accept: application/json - template: | - {{ $stats := .Subrequest "stats" }} - {{ $downloadChange := percentChange (.JSON.Float "download_bits") ($stats.JSON.Float "avg_download") }} - {{ $uploadChange := percentChange (.JSON.Float "upload_bits") ($stats.JSON.Float "avg_upload") }} - {{ $pingChange := percentChange (.JSON.Float "ping") ($stats.JSON.Float "avg_ping") }} -
-
-
{{ $downloadChange | printf "%+.1f%%" }}
-
{{ .JSON.Float "download_bits" | mul 0.000001 | printf "%.1f" }}
-
Download
-
-
-
{{ $uploadChange | printf "%+.1f%%" }}
-
{{ .JSON.Float "upload_bits" | mul 0.000001 | printf "%.1f" }}
-
Upload
-
-
-
{{ $pingChange | printf "%+.1f%%" }}
-
{{ .JSON.Float "ping" | printf "%.0f ms" }}
-
Ping
-
-
- - type: monitor title: Core, Security und Ingress cache: 1m diff --git a/ops/glance/docker-compose.yml b/ops/glance/docker-compose.yml index 8475320..559fd5d 100644 --- a/ops/glance/docker-compose.yml +++ b/ops/glance/docker-compose.yml @@ -6,7 +6,6 @@ services: environment: TZ: Europe/Berlin GLANCE_IMMICH_API_KEY: ${GLANCE_IMMICH_API_KEY:-} - GLANCE_SPEEDTEST_API_TOKEN: ${GLANCE_SPEEDTEST_API_TOKEN:-} volumes: - ./config:/app/config:ro networks: