diff --git a/docs/MIGRATION_LOG.md b/docs/MIGRATION_LOG.md index 5d144d8..0a062cc 100644 --- a/docs/MIGRATION_LOG.md +++ b/docs/MIGRATION_LOG.md @@ -23,7 +23,7 @@ Dieses Dokument ist nur noch ein historischer Verlauf. Der aktuelle operative Ab - 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. - 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. -- Das Dashboard-Layout wurde an `ginesjunior11/glance-dashboard-config` angelehnt: dunkleres blaues Theme, Zeitfortschrittsgruppe, farbige Dashboard-Icons, dichter `Homelab Status`, Server-Stats im Hauptbereich und eine zweite Seite `Infrastructure and Media`. Die rechte Home-Spalte zeigt externe Internet-Checks, Speedtest-Livewerte, AdGuard-DNS-Stats, DNS/VPN/Ingress-Monitore und eine separate Netzwerk-Containergruppe. +- Das Dashboard-Layout wurde an `ginesjunior11/glance-dashboard-config` angelehnt: dunkleres blaues Theme, Zeitfortschrittsgruppe, farbige Dashboard-Icons, dichter `Homelab Status`, Server-Stats im Hauptbereich und eine zweite Seite `Infrastructure and Media`. Die rechte Home-Spalte zeigt WAN-Infos aus Speedtest Tracker, Speedtest-Livewerte, AdGuard-DNS-Stats, DNS/Ingress-Monitore und eine separate Netzwerk-Containergruppe. ### 2026-05-17 - Monitoring-Zielstack konsolidiert diff --git a/ops/glance/config/glance.yml b/ops/glance/config/glance.yml index d97357e..6731843 100644 --- a/ops/glance/config/glance.yml +++ b/ops/glance/config/glance.yml @@ -121,13 +121,6 @@ pages: - type: calendar first-day-of-week: monday - - type: weather - title: Wetter - location: Berlin - hide-location: true - units: metric - hour-format: 24h - - type: bookmarks title: Direkte Einstiege groups: @@ -363,25 +356,26 @@ pages: - size: small widgets: - - type: monitor + - type: custom-api title: Internet - cache: 1m - sites: - - title: Cloudflare - url: https://one.one.one.one - icon: si:cloudflare - timeout: 5s - alt-status-codes: [200, 301, 302, 403] - - title: GitHub - url: https://github.com - icon: si:github - timeout: 5s - alt-status-codes: [200, 301, 302, 403] - - title: Gitea extern - url: https://git.kaleschke.info - icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/gitea.svg - timeout: 5s - alt-status-codes: [200, 301, 302, 401, 403] + title-url: https://speedtest.kaleschke.info + cache: 1h + url: http://speedtest-tracker/api/v1/results/latest + headers: + Authorization: Bearer ${GLANCE_SPEEDTEST_API_KEY} + Accept: application/json + template: | + {{ $ip := .JSON.String "external_ip" }} + {{ if eq $ip "" }}{{ $ip = .JSON.String "data.interface.externalIp" }}{{ end }} + {{ $isp := .JSON.String "isp" }} + {{ if eq $isp "" }}{{ $isp = .JSON.String "data.isp" }}{{ end }} + {{ $server := .JSON.String "server_name" }} + {{ if eq $server "" }}{{ $server = .JSON.String "data.server_name" }}{{ end }} +
+
{{ if ne $ip "" }}{{ $ip }}{{ else }}WAN online{{ end }}
+
Speedtest Tracker
+
{{ if ne $isp "" }}{{ $isp }}{{ else }}{{ $server }}{{ end }}
+
- type: custom-api title: Internet Speed @@ -399,24 +393,36 @@ pages: Accept: application/json template: | {{ $stats := .Subrequest "stats" }} - {{ $download := .JSON.Float "data.download_bits" }} - {{ $upload := .JSON.Float "data.upload_bits" }} - {{ $ping := .JSON.Float "data.ping" }} - {{ $downloadAvg := $stats.JSON.Float "data.download.avg_bits" }} - {{ $uploadAvg := $stats.JSON.Float "data.upload.avg_bits" }} - {{ $pingAvg := $stats.JSON.Float "data.ping.avg" }} + {{ $download := .JSON.Float "download" }} + {{ if eq $download 0.0 }}{{ $download = .JSON.Float "data.download" }}{{ end }} + {{ if eq $download 0.0 }}{{ $download = div (.JSON.Float "download_bits") 1000000.0 }}{{ end }} + {{ if eq $download 0.0 }}{{ $download = div (.JSON.Float "data.download_bits") 1000000.0 }}{{ end }} + {{ $upload := .JSON.Float "upload" }} + {{ if eq $upload 0.0 }}{{ $upload = .JSON.Float "data.upload" }}{{ end }} + {{ if eq $upload 0.0 }}{{ $upload = div (.JSON.Float "upload_bits") 1000000.0 }}{{ end }} + {{ if eq $upload 0.0 }}{{ $upload = div (.JSON.Float "data.upload_bits") 1000000.0 }}{{ end }} + {{ $ping := .JSON.Float "ping" }} + {{ if eq $ping 0.0 }}{{ $ping = .JSON.Float "data.ping" }}{{ end }} + {{ $downloadAvg := $stats.JSON.Float "avg_download" }} + {{ if eq $downloadAvg 0.0 }}{{ $downloadAvg = $stats.JSON.Float "data.download.avg" }}{{ end }} + {{ if eq $downloadAvg 0.0 }}{{ $downloadAvg = div ($stats.JSON.Float "data.download.avg_bits") 1000000.0 }}{{ end }} + {{ $uploadAvg := $stats.JSON.Float "avg_upload" }} + {{ if eq $uploadAvg 0.0 }}{{ $uploadAvg = $stats.JSON.Float "data.upload.avg" }}{{ end }} + {{ if eq $uploadAvg 0.0 }}{{ $uploadAvg = div ($stats.JSON.Float "data.upload.avg_bits") 1000000.0 }}{{ end }} + {{ $pingAvg := $stats.JSON.Float "avg_ping" }} + {{ if eq $pingAvg 0.0 }}{{ $pingAvg = $stats.JSON.Float "data.ping.avg" }}{{ end }} {{ $downloadChange := percentChange $downloadAvg $download }} {{ $uploadChange := percentChange $uploadAvg $upload }} {{ $pingChange := percentChange $pingAvg $ping }}
{{ printf "%+.1f%%" $downloadChange }}
-
{{ div $download 1000000.0 | printf "%.1f" }}
+
{{ printf "%.1f" $download }}
DOWNLOAD
{{ printf "%+.1f%%" $uploadChange }}
-
{{ div $upload 1000000.0 | printf "%.1f" }}
+
{{ printf "%.1f" $upload }}
UPLOAD
@@ -443,11 +449,6 @@ pages: icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/adguard-home.svg timeout: 5s alt-status-codes: [200, 302, 401, 403] - - title: Tailscale - url: https://login.tailscale.com/admin/machines - icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/tailscale.svg - timeout: 5s - alt-status-codes: [200, 302, 401, 403] - title: Traefik url: https://traefik.kaleschke.info check-url: http://traefik:8082/metrics