diff --git a/docs/MIGRATION_LOG.md b/docs/MIGRATION_LOG.md index 4217d8f..8b3b6c5 100644 --- a/docs/MIGRATION_LOG.md +++ b/docs/MIGRATION_LOG.md @@ -23,6 +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`. ### 2026-05-17 - Monitoring-Zielstack konsolidiert diff --git a/docs/REPO_MAP.md b/docs/REPO_MAP.md index b03eca0..d3f8900 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, Community-Widgets, Docker-Containergruppen, Host-Snapshot und Bookmarks | +| `ops/glance/config/glance.yml` | Glance Dashboard-Konfiguration fuer Homelab-Monitore, Community-Widgets, Docker-Containergruppen, Zeitfortschritt, Host-Snapshot, Bookmarks und zweite Infrastruktur-Seite | | `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 | @@ -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; aktives Community-Widget: Immich; 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 Home- und Infrastructure-Seite, 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 | diff --git a/docs/SERVICE_CATALOG.md b/docs/SERVICE_CATALOG.md index 1223421..6c075e6 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 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 | +| `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, Server-Stats, Zeitfortschritt, Bookmarks und eine Infrastruktur-Seite; 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 a2114f8..227714f 100644 --- a/ops/glance/config/glance.yml +++ b/ops/glance/config/glance.yml @@ -7,16 +7,16 @@ branding: hide-footer: true theme: - background-color: 220 13 11 - primary-color: 170 56 58 - positive-color: 135 42 52 - negative-color: 0 72 62 - contrast-multiplier: 1.15 - text-saturation-multiplier: 0.8 + background-color: 210 20 13 + primary-color: 212 100 50 + positive-color: 140 70 40 + negative-color: 4 78 57 + contrast-multiplier: 1.25 + text-saturation-multiplier: 0.9 disable-picker: false pages: - - name: Homelab + - name: Home slug: home width: wide head-widgets: @@ -41,27 +41,97 @@ pages: columns: - size: small widgets: + - type: group + widgets: + - type: custom-api + title: Day + body-type: string + skip-json-validation: true + cache: 1s + template: | + {{ $localTime := now }} + {{ $elapsedSeconds := add (mul $localTime.Hour 3600) (mul $localTime.Minute 60) | add $localTime.Second }} + {{ $dayProgress := div (mul $elapsedSeconds 100.0) 86400.0 }} + {{ $gradient := "#70a1ff" }} + {{ if gt $dayProgress 25.0 }}{{ $gradient = "#ff6b6b, #70a1ff" }}{{ end }} + {{ if gt $dayProgress 50.0 }}{{ $gradient = "#ff6b6b, #f8e71c, #7ed6df" }}{{ end }} + {{ if gt $dayProgress 75.0 }}{{ $gradient = "#ff6b6b, #f8e71c, #7ed6df, #70a1ff" }}{{ end }} +
+
+
+
+
{{ printf "%.2f" $dayProgress }}% des Tages sind vorbei
+
+ + - type: custom-api + title: Month + body-type: string + skip-json-validation: true + cache: 1s + template: | + {{ $localTime := now }} + {{ $month := $localTime.Month }} + {{ $daysInMonth := 31 }} + {{ if eq $month 2 }}{{ $daysInMonth = 28 }}{{ end }} + {{ if or (eq $month 4) (eq $month 6) (eq $month 9) (eq $month 11) }}{{ $daysInMonth = 30 }}{{ end }} + {{ $secondsToday := add (mul $localTime.Hour 3600) (mul $localTime.Minute 60) | add $localTime.Second }} + {{ $daysElapsed := add (sub $localTime.Day 1) (div $secondsToday 86400.0) }} + {{ $monthProgress := mul (div $daysElapsed $daysInMonth) 100.0 }} + {{ $gradient := "#70a1ff" }} + {{ if gt $monthProgress 25.0 }}{{ $gradient = "#ff6b6b, #70a1ff" }}{{ end }} + {{ if gt $monthProgress 50.0 }}{{ $gradient = "#ff6b6b, #f8e71c, #7ed6df" }}{{ end }} + {{ if gt $monthProgress 75.0 }}{{ $gradient = "#ff6b6b, #f8e71c, #7ed6df, #70a1ff" }}{{ end }} +
+
+
+
+
{{ printf "%.2f" $monthProgress }}% des Monats sind vorbei
+
+ + - type: custom-api + title: Year + body-type: string + skip-json-validation: true + cache: 1s + template: | + {{ $localTime := now }} + {{ $secondsToday := add (mul $localTime.Hour 3600) (mul $localTime.Minute 60) | add $localTime.Second }} + {{ $secondsElapsed := add (mul (sub $localTime.YearDay 1) 86400) $secondsToday }} + {{ $yearProgress := div (mul $secondsElapsed 100.0) (mul 365 86400) }} + {{ $gradient := "#70a1ff" }} + {{ if gt $yearProgress 25.0 }}{{ $gradient = "#ff6b6b, #70a1ff" }}{{ end }} + {{ if gt $yearProgress 50.0 }}{{ $gradient = "#ff6b6b, #f8e71c, #7ed6df" }}{{ end }} + {{ if gt $yearProgress 75.0 }}{{ $gradient = "#ff6b6b, #f8e71c, #7ed6df, #70a1ff" }}{{ end }} +
+
+
+
+
{{ printf "%.2f" $yearProgress }}% des Jahres sind vorbei
+
+ - type: clock hour-format: 24h + show-progress: true timezones: - timezone: Europe/Berlin label: Berlin + - timezone: UTC + label: UTC - type: calendar first-day-of-week: monday - - type: server-stats - title: Host Snapshot - servers: - - type: local - name: Kallilabcore - hide-mountpoints-by-default: false + - type: weather + title: Wetter + location: Berlin, Germany + units: metric + hour-format: 24h - type: bookmarks title: Direkte Einstiege groups: - title: Core - color: 170 56 58 + color: 212 100 50 links: - title: Home url: https://home.kaleschke.info @@ -93,6 +163,13 @@ pages: - size: full widgets: + - type: server-stats + title: Server Stats + servers: + - type: local + name: Kallilabcore + hide-mountpoints-by-default: false + - type: group widgets: - type: custom-api @@ -135,54 +212,49 @@ pages:
{{ if $storageOK }}{{ printf "%.1f" $percentage }}% Speicher belegt{{ else }}Speicher API nicht verfuegbar{{ end }}
- type: monitor - title: Core, Security und Ingress + title: Homelab Status cache: 1m sites: - - title: Traefik - url: https://traefik.kaleschke.info - check-url: http://traefik:8082/metrics - icon: si:traefikproxy + - title: AdGuard Home + url: http://192.168.178.58:8082 + check-url: http://adguard + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/adguard-home.svg 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 + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/authelia.svg 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 + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/gitea.svg 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 + - title: Traefik + url: https://traefik.kaleschke.info + check-url: http://traefik:8082/metrics + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/traefik.svg timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: Vaultwarden url: https://vault.kaleschke.info check-url: http://vaultwarden/alive - icon: si:vaultwarden + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/vaultwarden.svg 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 + - title: Komodo + url: https://komodo.kaleschke.info + check-url: http://komodo-core:9120 + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/komodo.svg timeout: 5s alt-status-codes: [200, 302, 401, 403] - - - type: monitor - title: Apps - cache: 1m - sites: - title: Paperless-ngx url: https://paperless.kaleschke.info check-url: http://paperless-ngx:8000 - icon: sh:paperless-ngx + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/paperless-ngx.svg timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: Paperless-GPT @@ -194,25 +266,25 @@ pages: - title: Immich url: https://immich.kaleschke.info check-url: http://immich_server:2283/api/server/ping - icon: si:immich + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/immich.svg timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: Mealie url: https://mealie.kaleschke.info check-url: http://mealie:9000 - icon: sh:mealie + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/mealie.svg 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 + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/nextcloud.svg 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 + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/ntfy.svg timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: Mail Archiver @@ -227,63 +299,58 @@ pages: icon: mdi:file-pdf-box timeout: 5s alt-status-codes: [200, 302, 401, 403] - - - type: monitor - title: Operations und Observability - cache: 1m - sites: - title: Glance url: https://glance.kaleschke.info check-url: http://glance:8080 - icon: sh:glance + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/glance.svg timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: Homepage url: https://home.kaleschke.info check-url: http://homepage:3000 - icon: sh:homepage + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/homepage.png 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 + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/grafana.svg 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 + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/uptime-kuma.svg timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: Glances url: https://glances.kaleschke.info check-url: http://glances:61208 - icon: sh:glances + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/glances.svg timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: Scrutiny url: https://scrutiny.kaleschke.info check-url: http://scrutiny:8080 - icon: sh:scrutiny + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/scrutiny.svg 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 + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/speedtest-tracker.png timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: Filebrowser url: https://files.kaleschke.info check-url: http://filebrowser - icon: sh:filebrowser + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/filebrowser.svg 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 + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/code-server.svg timeout: 5s alt-status-codes: [200, 302, 401, 403] - title: Borg UI @@ -295,6 +362,17 @@ pages: - size: small widgets: + - type: custom-api + title: Internet + cache: 5m + url: https://ipinfo.io/json + template: | +
+
{{ .JSON.String "ip" }}
+
{{ .JSON.String "city" }}, {{ .JSON.String "country" }}
+
{{ .JSON.String "org" }}
+
+ - type: docker-containers title: Core Container category: core @@ -303,28 +381,28 @@ pages: containers: &containers traefik: name: Traefik - icon: si:traefikproxy + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/traefik.svg url: https://traefik.kaleschke.info description: Reverse Proxy category: core hide: false gitea: name: Gitea - icon: si:gitea + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/gitea.svg url: https://git.kaleschke.info description: GitOps Origin category: core hide: false authelia: name: Authelia - icon: si:authelia + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/authelia.svg url: https://auth.kaleschke.info description: ForwardAuth category: core hide: false vaultwarden: name: Vaultwarden - icon: si:vaultwarden + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/vaultwarden.svg url: https://vault.kaleschke.info description: Password Vault category: core @@ -343,7 +421,7 @@ pages: hide: false adguard: name: AdGuard - icon: si:adguard + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/adguard-home.svg url: http://192.168.178.58:8082 description: DNS Filter category: core @@ -368,7 +446,7 @@ pages: hide: false paperless-ngx: name: Paperless-ngx - icon: sh:paperless-ngx + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/paperless-ngx.svg url: https://paperless.kaleschke.info description: Dokumente category: apps @@ -382,7 +460,7 @@ pages: hide: false immich_server: name: Immich - icon: si:immich + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/immich.svg url: https://immich.kaleschke.info description: Fotos und Videos category: apps @@ -405,7 +483,7 @@ pages: hide: false mealie: name: Mealie - icon: sh:mealie + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/mealie.svg url: https://mealie.kaleschke.info description: Rezepte category: apps @@ -418,7 +496,7 @@ pages: hide: false nextcloud: name: Nextcloud - icon: si:nextcloud + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/nextcloud.svg url: https://cloud.kaleschke.info description: Dateien und Sync category: apps @@ -443,7 +521,7 @@ pages: hide: false ntfy: name: ntfy - icon: si:ntfy + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/ntfy.svg url: https://ntfy.kaleschke.info description: Push Alerts category: apps @@ -457,14 +535,14 @@ pages: hide: false homepage: name: Homepage - icon: sh:homepage + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/homepage.png url: https://home.kaleschke.info description: Bestehendes Start-Dashboard category: ops hide: false glance: name: Glance - icon: sh:glance + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/glance.svg url: https://glance.kaleschke.info description: Homelab Uebersicht category: ops @@ -477,7 +555,7 @@ pages: hide: false monitoring-grafana: name: Monitoring Grafana - icon: si:grafana + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/grafana.svg url: https://monitoring.kaleschke.info description: Observability UI category: ops @@ -530,42 +608,42 @@ pages: hide: false uptime-kuma: name: Uptime Kuma - icon: sh:uptime-kuma + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/uptime-kuma.svg url: https://uptime.kaleschke.info description: Uptime Checks category: ops hide: false glances: name: Glances - icon: sh:glances + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/glances.svg url: https://glances.kaleschke.info description: Host-Monitoring category: ops hide: false scrutiny: name: Scrutiny - icon: sh:scrutiny + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/scrutiny.svg url: https://scrutiny.kaleschke.info description: SMART category: ops hide: false speedtest-tracker: name: Speedtest - icon: sh:speedtest-tracker + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/speedtest-tracker.png url: https://speedtest.kaleschke.info description: WAN-Messung category: ops hide: false filebrowser: name: Filebrowser - icon: sh:filebrowser + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/filebrowser.svg url: https://files.kaleschke.info description: Dateizugriff category: ops hide: false code-server: name: code-server - icon: sh:code-server + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/code-server.svg url: https://code.kaleschke.info description: Web IDE category: ops @@ -622,3 +700,132 @@ pages: hide-by-default: true sock-path: tcp://glance-docker-socket-proxy:2375 containers: *containers + + - name: Infrastructure and Media + slug: infrastructure + width: wide + columns: + - size: small + widgets: + - type: bookmarks + title: Core + groups: + - title: Control Plane + color: 212 100 50 + links: + - title: Komodo + url: https://komodo.kaleschke.info + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/komodo.svg + - title: Gitea + url: https://git.kaleschke.info + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/gitea.svg + - title: Traefik + url: https://traefik.kaleschke.info + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/traefik.svg + - title: Authelia + url: https://auth.kaleschke.info + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/authelia.svg + + - type: bookmarks + title: Media und Apps + groups: + - title: Apps + color: 140 70 40 + links: + - title: Immich + url: https://immich.kaleschke.info + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/immich.svg + - title: Paperless + url: https://paperless.kaleschke.info + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/paperless-ngx.svg + - title: Nextcloud + url: https://cloud.kaleschke.info + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/nextcloud.svg + - title: Mealie + url: https://mealie.kaleschke.info + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/mealie.svg + + - size: full + widgets: + - type: monitor + title: Platform Checks + cache: 1m + sites: + - title: Gitea + url: https://git.kaleschke.info + check-url: http://gitea:3000/api/healthz + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/gitea.svg + 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: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/grafana.svg + timeout: 5s + alt-status-codes: [200, 302, 401, 403] + - title: Glance + url: https://glance.kaleschke.info + check-url: http://glance:8080 + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/glance.svg + 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: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/immich.svg + timeout: 5s + alt-status-codes: [200, 302, 401, 403] + - title: Paperless-ngx + url: https://paperless.kaleschke.info + check-url: http://paperless-ngx:8000 + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/paperless-ngx.svg + timeout: 5s + alt-status-codes: [200, 302, 401, 403] + - title: Nextcloud + url: https://cloud.kaleschke.info + check-url: http://nextcloud/status.php + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/nextcloud.svg + timeout: 5s + alt-status-codes: [200, 302, 401, 403] + + - type: docker-containers + title: Core Container + category: core + hide-by-default: true + sock-path: tcp://glance-docker-socket-proxy:2375 + containers: *containers + + - type: docker-containers + title: App Container + category: apps + hide-by-default: true + sock-path: tcp://glance-docker-socket-proxy:2375 + containers: *containers + + - type: docker-containers + title: Ops Container + category: ops + hide-by-default: true + sock-path: tcp://glance-docker-socket-proxy:2375 + containers: *containers + + - size: small + widgets: + - type: bookmarks + title: Ops + groups: + - title: Tools + color: 4 78 57 + links: + - title: Uptime Kuma + url: https://uptime.kaleschke.info + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/uptime-kuma.svg + - title: Glances + url: https://glances.kaleschke.info + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/glances.svg + - title: Scrutiny + url: https://scrutiny.kaleschke.info + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/scrutiny.svg + - title: Speedtest + url: https://speedtest.kaleschke.info + icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/speedtest-tracker.png