Add Glance homelab dashboard stack
This commit is contained in:
@@ -92,6 +92,7 @@ Jeder produktive Container nutzt `restart: unless-stopped`, außer eine Ausnahme
|
|||||||
| `nextcloud_internal` | bridge, `internal: true` | internes Netz nur fuer `nextcloud` + `nextcloud-postgres` + `nextcloud-redis` | ✅ vorbereitet |
|
| `nextcloud_internal` | bridge, `internal: true` | internes Netz nur fuer `nextcloud` + `nextcloud-postgres` + `nextcloud-redis` | ✅ vorbereitet |
|
||||||
| `monitoring_net` | Compose-intern, bridge | zentraler Observability-Stack fuer Prometheus, Loki, Grafana, Promtail, Exporter und InfluxDB | Zielzustand |
|
| `monitoring_net` | Compose-intern, bridge | zentraler Observability-Stack fuer Prometheus, Loki, Grafana, Promtail, Exporter und InfluxDB | Zielzustand |
|
||||||
| `monitoring_influx_lan` | Compose-intern, bridge | nicht-oeffentliches Zusatznetz nur fuer Docker Host-Port-Publishing von InfluxDB 8181 | Zielzustand |
|
| `monitoring_influx_lan` | Compose-intern, bridge | nicht-oeffentliches Zusatznetz nur fuer Docker Host-Port-Publishing von InfluxDB 8181 | Zielzustand |
|
||||||
|
| `glance_socket_net` | Compose-intern, `internal: true` | interner Zugriff von Glance auf den Docker-Socket-Proxy | vorbereitet |
|
||||||
| `grafana_influx_internal` | Compose-intern, `internal: true` | alte Grafana-zu-InfluxDB-Kommunikation | abgeloester Altstand |
|
| `grafana_influx_internal` | Compose-intern, `internal: true` | alte Grafana-zu-InfluxDB-Kommunikation | abgeloester Altstand |
|
||||||
| `grafana_influx_lan` | Compose-intern, bridge | altes Docker Host-Port-Publishing von InfluxDB 8181 | abgeloester Altstand |
|
| `grafana_influx_lan` | Compose-intern, bridge | altes Docker Host-Port-Publishing von InfluxDB 8181 | abgeloester Altstand |
|
||||||
| `host` | host | nur für echte Sonderfälle | begründet |
|
| `host` | host | nur für echte Sonderfälle | begründet |
|
||||||
@@ -105,7 +106,7 @@ traefik (80/443)
|
|||||||
│
|
│
|
||||||
└── frontend_net
|
└── frontend_net
|
||||||
├── öffentliche Apps (vaultwarden, mealie, paperless, immich, gitea, ntfy, mail-archiver, nextcloud)
|
├── öffentliche Apps (vaultwarden, mealie, paperless, immich, gitea, ntfy, mail-archiver, nextcloud)
|
||||||
├── geschützte UIs mit Middleware (homepage, paperless-gpt, uptime-kuma, filebrowser, scrutiny, code-server, borg-ui, glances, speedtest, bentopdf, grafana)
|
├── geschützte UIs mit Middleware (homepage, glance, paperless-gpt, uptime-kuma, filebrowser, scrutiny, code-server, borg-ui, glances, speedtest, bentopdf, grafana)
|
||||||
├── Admin-UI mit nativer Auth (komodo)
|
├── Admin-UI mit nativer Auth (komodo)
|
||||||
└── Dienste mit Internetbedarf ohne öffentliche UI (ddns-updater)
|
└── Dienste mit Internetbedarf ohne öffentliche UI (ddns-updater)
|
||||||
|
|
||||||
@@ -159,6 +160,7 @@ Diese Dienste sind **keine Public Apps**:
|
|||||||
- `code-server` — Traefik + Middleware
|
- `code-server` — Traefik + Middleware
|
||||||
- `borg-ui` — borg.kaleschke.info (Middleware)
|
- `borg-ui` — borg.kaleschke.info (Middleware)
|
||||||
- `homepage` — home.kaleschke.info (Middleware)
|
- `homepage` — home.kaleschke.info (Middleware)
|
||||||
|
- `glance` — glance.kaleschke.info (Middleware)
|
||||||
- `paperless-gpt` — paperless-gpt.kaleschke.info (Middleware)
|
- `paperless-gpt` — paperless-gpt.kaleschke.info (Middleware)
|
||||||
- `mail-archiver` — mail.kaleschke.info (Middleware + App-Auth)
|
- `mail-archiver` — mail.kaleschke.info (Middleware + App-Auth)
|
||||||
- `glances` — glances.kaleschke.info (Middleware)
|
- `glances` — glances.kaleschke.info (Middleware)
|
||||||
@@ -295,6 +297,7 @@ Legende Status:
|
|||||||
| Container | Status | Soll-Netz(e) | Finaler Zugang | Finaler Sollzustand | Offene Punkte |
|
| Container | Status | Soll-Netz(e) | Finaler Zugang | Finaler Sollzustand | Offene Punkte |
|
||||||
|---|---|---|---|---|---|
|
|---|---|---|---|---|---|
|
||||||
| `UptimeKuma` | ✅ | `frontend_net` | Traefik + Middleware | aktiv via `uptime.kaleschke.info` | — |
|
| `UptimeKuma` | ✅ | `frontend_net` | Traefik + Middleware | aktiv via `uptime.kaleschke.info` | — |
|
||||||
|
| `glance` | vorbereitet | `frontend_net`, `glance_socket_net` | Traefik + Middleware | Homelab-Uebersicht via `glance.kaleschke.info`; Docker-Status nur ueber internen Socket-Proxy | Deploy und fachliche Abnahme offen |
|
||||||
| `glances` | ✅ | `frontend_net` | Traefik + Middleware | aktiv via `glances.kaleschke.info` | — |
|
| `glances` | ✅ | `frontend_net` | Traefik + Middleware | aktiv via `glances.kaleschke.info` | — |
|
||||||
| `scrutiny` | ✅ | `frontend_net` | Traefik + Middleware | aktiv via `scrutiny.kaleschke.info`, Git-Stack | `privileged` später prüfen |
|
| `scrutiny` | ✅ | `frontend_net` | Traefik + Middleware | aktiv via `scrutiny.kaleschke.info`, Git-Stack | `privileged` später prüfen |
|
||||||
| `speedtest-tracker` | ✅ | `frontend_net` | Traefik + Middleware | aktiv via `speedtest.kaleschke.info` | — |
|
| `speedtest-tracker` | ✅ | `frontend_net` | Traefik + Middleware | aktiv via `speedtest.kaleschke.info` | — |
|
||||||
@@ -394,6 +397,7 @@ Für den laufenden Betrieb gilt stattdessen:
|
|||||||
| `Plex-Media-Server` | `host` | Discovery / mDNS / Plex GDM |
|
| `Plex-Media-Server` | `host` | Discovery / mDNS / Plex GDM |
|
||||||
| `scrutiny` | `privileged: true` | SMART-Datenzugriff auf Laufwerke |
|
| `scrutiny` | `privileged: true` | SMART-Datenzugriff auf Laufwerke |
|
||||||
| `Komodo` | Docker-Socket Zugriff | Stack-Deployments benötigen Socket |
|
| `Komodo` | Docker-Socket Zugriff | Stack-Deployments benötigen Socket |
|
||||||
|
| `glance-docker-socket-proxy` | Docker-Socket read-only | Glance benoetigt Containerstatus; Zugriff wird ueber einen internen Socket-Proxy auf lesende Docker-API-Endpunkte begrenzt und nicht ins `frontend_net` gelegt |
|
||||||
| `Komodo` | keine pauschale zentrale Middleware | Webhooks (`/listener`), API und Periphery-WebSocket (`/ws/periphery`) sollen nicht durch vorgeschaltete ForwardAuth gebrochen werden |
|
| `Komodo` | keine pauschale zentrale Middleware | Webhooks (`/listener`), API und Periphery-WebSocket (`/ws/periphery`) sollen nicht durch vorgeschaltete ForwardAuth gebrochen werden |
|
||||||
| `gitea` | SSH-Port 222 direkt gebunden | Git-SSH-Zugang; kein HTTP-Proxy für SSH möglich |
|
| `gitea` | SSH-Port 222 direkt gebunden | Git-SSH-Zugang; kein HTTP-Proxy für SSH möglich |
|
||||||
| `ddns-updater` | bleibt in `frontend_net` statt `backend_net` | braucht Cloudflare-API-Zugang; `backend_net` ist `internal: true` |
|
| `ddns-updater` | bleibt in `frontend_net` statt `backend_net` | braucht Cloudflare-API-Zugang; `backend_net` ist `internal: true` |
|
||||||
|
|||||||
@@ -16,6 +16,13 @@ Dieses Dokument ist nur noch ein historischer Verlauf. Der aktuelle operative Ab
|
|||||||
|
|
||||||
## Historische Meilensteine
|
## Historische Meilensteine
|
||||||
|
|
||||||
|
### 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.
|
||||||
|
- 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.
|
||||||
|
|
||||||
### 2026-05-17 - Monitoring-Zielstack konsolidiert
|
### 2026-05-17 - Monitoring-Zielstack konsolidiert
|
||||||
|
|
||||||
- `monitoring/` als zentraler Observability-Zielstack fuer Prometheus, Loki, Promtail, Grafana, node-exporter, cAdvisor und InfluxDB 3 Core vorbereitet.
|
- `monitoring/` als zentraler Observability-Zielstack fuer Prometheus, Loki, Promtail, Grafana, node-exporter, cAdvisor und InfluxDB 3 Core vorbereitet.
|
||||||
|
|||||||
@@ -54,6 +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/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/promtail/promtail-config.yml` | Promtail Docker-Socket-Discovery fuer dedizierten Monitoring-Stack |
|
||||||
| `monitoring/grafana/provisioning/*` | Grafana Datasource-/Dashboard-Provisioning fuer Prometheus und Loki |
|
| `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/borg-ui/scripts/pre-backup-dumps.sh` | Host-seitiges Dump-Skript fuer PostgreSQL, SQLite-Container-Dumps und Komodo Mongo |
|
| `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/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 |
|
| `services/posture-check/docker-critical-events.sh` | Host-seitiger Docker-Event-Watcher fuer kritische ntfy-Alarme |
|
||||||
@@ -107,6 +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 |
|
| 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 |
|
| 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 |
|
| 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:0.4.2` | `glance.kaleschke.info` | `frontend_net`, `glance_socket_net` | keine | Homelab-Dashboard mit Monitor-, Docker-, DNS-, Server-Stats- und Release-Widgets; 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 |
|
| 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 |
|
| 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 |
|
| Loki/Alloy | `ops/loki/docker-compose.yml` | `loki`, `alloy` | keine | `backend_net` | keine | abgeloester Altstand; nach erfolgreicher Migration durch `monitoring-loki`/`monitoring-promtail` ersetzen |
|
||||||
@@ -133,6 +135,7 @@ Secret-Werte werden hier nicht dokumentiert. Aufgefuehrt werden nur Variablennam
|
|||||||
| `code.kaleschke.info` | code-server | Traefik + Authelia |
|
| `code.kaleschke.info` | code-server | Traefik + Authelia |
|
||||||
| `files.kaleschke.info` | Filebrowser | Traefik + Authelia |
|
| `files.kaleschke.info` | Filebrowser | Traefik + Authelia |
|
||||||
| `git.kaleschke.info` | Gitea Web | Traefik |
|
| `git.kaleschke.info` | Gitea Web | Traefik |
|
||||||
|
| `glance.kaleschke.info` | Glance | Traefik + Authelia |
|
||||||
| `glances.kaleschke.info` | Glances | Traefik + Authelia |
|
| `glances.kaleschke.info` | Glances | Traefik + Authelia |
|
||||||
| `grafana.kaleschke.info` | Grafana | Traefik + Authelia |
|
| `grafana.kaleschke.info` | Grafana | Traefik + Authelia |
|
||||||
| `hermes.kaleschke.info` | Hermes Dashboard | Traefik + Authelia |
|
| `hermes.kaleschke.info` | Hermes Dashboard | Traefik + Authelia |
|
||||||
@@ -166,6 +169,7 @@ Secret-Werte werden hier nicht dokumentiert. Aufgefuehrt werden nur Variablennam
|
|||||||
| `grafana_influx_lan` | Compose-intern bridge | InfluxDB Host-Port-Publishing fuer LAN Writer |
|
| `grafana_influx_lan` | Compose-intern bridge | InfluxDB Host-Port-Publishing fuer LAN Writer |
|
||||||
| `monitoring_net` | Compose-/Stack-Netz bridge | Prometheus, Loki, Promtail, Monitoring-Grafana, node-exporter, cAdvisor; Traefik fuer Metrics-Scrape |
|
| `monitoring_net` | Compose-/Stack-Netz bridge | Prometheus, Loki, Promtail, Monitoring-Grafana, node-exporter, cAdvisor; Traefik fuer Metrics-Scrape |
|
||||||
| `monitoring_influx_lan` | Compose-intern bridge | InfluxDB Host-Port-Publishing fuer LAN Writer im zentralen Monitoring-Stack |
|
| `monitoring_influx_lan` | Compose-intern bridge | InfluxDB Host-Port-Publishing fuer LAN Writer im zentralen Monitoring-Stack |
|
||||||
|
| `glance_socket_net` | Compose-intern, `internal: true` | Glance und `glance-docker-socket-proxy`; keine Traefik-Anbindung |
|
||||||
| `komodo_net` | Compose-intern, `internal: true` | Komodo Core, Mongo, Periphery |
|
| `komodo_net` | Compose-intern, `internal: true` | Komodo Core, Mongo, Periphery |
|
||||||
| `hermes_net` | Compose-intern bridge | Hermes Gateway/Dashboard |
|
| `hermes_net` | Compose-intern bridge | Hermes Gateway/Dashboard |
|
||||||
| `host` | Host-Netz | Tailscale; Plex historisch ausserhalb Repo |
|
| `host` | Host-Netz | Tailscale; Plex historisch ausserhalb Repo |
|
||||||
@@ -193,6 +197,7 @@ Secret-Werte werden hier nicht dokumentiert. Aufgefuehrt werden nur Variablennam
|
|||||||
| Borg UI | `/mnt/user/appdata/borg-ui/data`, `/mnt/user/appdata/borg-ui/cache`, `/mnt/user/backups/borg/dumps`, selected restore/source mounts |
|
| Borg UI | `/mnt/user/appdata/borg-ui/data`, `/mnt/user/appdata/borg-ui/cache`, `/mnt/user/backups/borg/dumps`, selected restore/source mounts |
|
||||||
| code-server | `/mnt/user/appdata/code-server`, `/mnt/user/services/dev`, Homepage production mount |
|
| code-server | `/mnt/user/appdata/code-server`, `/mnt/user/services/dev`, Homepage production mount |
|
||||||
| Filebrowser | `/mnt/user/documents`, `/mnt/user/photos`, `/mnt/user/projekte`, Filebrowser database/config paths |
|
| Filebrowser | `/mnt/user/documents`, `/mnt/user/photos`, `/mnt/user/projekte`, Filebrowser database/config paths |
|
||||||
|
| Glance | Repo-Konfiguration unter `ops/glance/config/glance.yml`; keine produktive Datenpersistenz; Docker-Socket nur am internen Proxy |
|
||||||
| Glances | `/`, Docker socket, `/etc/os-release` |
|
| Glances | `/`, Docker socket, `/etc/os-release` |
|
||||||
| Scrutiny | `/mnt/user/appdata/scrutiny/*`, `/run/udev`, selected `/dev/...` disks |
|
| Scrutiny | `/mnt/user/appdata/scrutiny/*`, `/run/udev`, selected `/dev/...` disks |
|
||||||
| Speedtest | `/mnt/user/appdata/speedtest-tracker/config` |
|
| Speedtest | `/mnt/user/appdata/speedtest-tracker/config` |
|
||||||
@@ -216,6 +221,7 @@ Secret-Werte werden hier nicht dokumentiert. Aufgefuehrt werden nur Variablennam
|
|||||||
| Immich | `IMMICH_DB_PASSWORD` Stack ENV; `immich_postgres_password.txt` fuer Postgres |
|
| Immich | `IMMICH_DB_PASSWORD` Stack ENV; `immich_postgres_password.txt` fuer Postgres |
|
||||||
| Mail Archiver | `MAILARCHIVER_DB_CONNECTION`, `MAILARCHIVER_AUTH_PASSWORD` als Stack ENV |
|
| Mail Archiver | `MAILARCHIVER_DB_CONNECTION`, `MAILARCHIVER_AUTH_PASSWORD` als Stack ENV |
|
||||||
| Homepage | viele `HOMEPAGE_VAR_*` Stack ENV Keys fuer Tokens/Logins |
|
| 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 |
|
| Speedtest | `APP_KEY`, `ADMIN_PASSWORD` als Stack ENV |
|
||||||
| Nextcloud | Admin User, Admin Password, Postgres Password via Secret-Dateien |
|
| 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 |
|
| Komodo | `KOMODO_SECRET_KEY`, `KOMODO_WEBHOOK_SECRET`, `KOMODO_JWT_SECRET`, `KOMODO_MONGO_PASSWORD`, `KOMODO_PERIPHERY_PASSKEY`; Mongo Passwort-Datei |
|
||||||
|
|||||||
@@ -105,6 +105,18 @@ Der Zielzustand ist `monitoring/` als einziger Observability-Stack. Bei Probleme
|
|||||||
5. Home Assistant Writer erst wieder umstellen, wenn `curl -i http://192.168.178.58:8181/` erwartbar `401 Unauthorized` liefert
|
5. Home Assistant Writer erst wieder umstellen, wenn `curl -i http://192.168.178.58:8181/` erwartbar `401 Unauthorized` liefert
|
||||||
6. Grafana-Datasources `Prometheus`, `Loki` und `InfluxDB 3 Core` testen
|
6. Grafana-Datasources `Prometheus`, `Loki` und `InfluxDB 3 Core` testen
|
||||||
|
|
||||||
|
## Glance Dashboard Rollback
|
||||||
|
|
||||||
|
Vor dem ersten produktiven Einsatz reicht es, den vorbereiteten Stack `ops/glance` nicht zu deployen oder per Ruecknahme-Commit aus dem Repo zu entfernen.
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Daten-Rollback
|
## Daten-Rollback
|
||||||
|
|||||||
@@ -39,6 +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 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 |
|
| 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 |
|
| 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 |
|
| 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 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 |
|
| Nextcloud | Admin Password | `/mnt/user/appdata/secrets/nextcloud_admin_password.txt` -> `NEXTCLOUD_ADMIN_PASSWORD_FILE` | neu |
|
||||||
|
|||||||
@@ -55,6 +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 |
|
| 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 |
|
| `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 |
|
||||||
| `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-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-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 |
|
| `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 |
|
||||||
|
|||||||
Vendored
+1
@@ -2,3 +2,4 @@ BASE_DOMAIN=kaleschke.info
|
|||||||
TRAEFIK_DOMAIN=traefik.kaleschke.info
|
TRAEFIK_DOMAIN=traefik.kaleschke.info
|
||||||
AUTH_DOMAIN=auth.kaleschke.info
|
AUTH_DOMAIN=auth.kaleschke.info
|
||||||
HOME_DOMAIN=home.kaleschke.info
|
HOME_DOMAIN=home.kaleschke.info
|
||||||
|
GLANCE_DOMAIN=glance.kaleschke.info
|
||||||
|
|||||||
@@ -0,0 +1,568 @@
|
|||||||
|
server:
|
||||||
|
proxied: true
|
||||||
|
|
||||||
|
branding:
|
||||||
|
app-name: KalliLab Dashboard
|
||||||
|
logo-text: KL
|
||||||
|
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
|
||||||
|
disable-picker: false
|
||||||
|
|
||||||
|
pages:
|
||||||
|
- name: Homelab
|
||||||
|
slug: home
|
||||||
|
width: wide
|
||||||
|
head-widgets:
|
||||||
|
- type: search
|
||||||
|
search-engine: duckduckgo
|
||||||
|
new-tab: true
|
||||||
|
autofocus: true
|
||||||
|
placeholder: Suche im Web oder springe per Bang...
|
||||||
|
bangs:
|
||||||
|
- title: Gitea
|
||||||
|
shortcut: "!git"
|
||||||
|
url: https://git.kaleschke.info/explore/repos?q={QUERY}
|
||||||
|
- title: Paperless
|
||||||
|
shortcut: "!doc"
|
||||||
|
url: https://paperless.kaleschke.info/documents?query={QUERY}
|
||||||
|
- title: Nextcloud
|
||||||
|
shortcut: "!cloud"
|
||||||
|
url: https://cloud.kaleschke.info/apps/files/?dir=/{QUERY}
|
||||||
|
- title: Komodo
|
||||||
|
shortcut: "!komodo"
|
||||||
|
url: https://komodo.kaleschke.info
|
||||||
|
columns:
|
||||||
|
- size: small
|
||||||
|
widgets:
|
||||||
|
- type: clock
|
||||||
|
hour-format: 24h
|
||||||
|
timezones:
|
||||||
|
- timezone: Europe/Berlin
|
||||||
|
label: Berlin
|
||||||
|
|
||||||
|
- 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:
|
||||||
|
- type: local
|
||||||
|
name: Kallilabcore
|
||||||
|
hide-mountpoints-by-default: false
|
||||||
|
|
||||||
|
- type: bookmarks
|
||||||
|
title: Direkte Einstiege
|
||||||
|
groups:
|
||||||
|
- title: Core
|
||||||
|
color: 170 56 58
|
||||||
|
links:
|
||||||
|
- title: Home
|
||||||
|
url: https://home.kaleschke.info
|
||||||
|
icon: sh:homepage
|
||||||
|
- title: Komodo
|
||||||
|
url: https://komodo.kaleschke.info
|
||||||
|
icon: sh:komodo
|
||||||
|
- title: Gitea
|
||||||
|
url: https://git.kaleschke.info
|
||||||
|
icon: si:gitea
|
||||||
|
- title: Monitoring
|
||||||
|
url: https://monitoring.kaleschke.info
|
||||||
|
icon: si:grafana
|
||||||
|
- title: Ops
|
||||||
|
color: 45 70 55
|
||||||
|
links:
|
||||||
|
- title: Borg
|
||||||
|
url: https://borg.kaleschke.info
|
||||||
|
icon: mdi:archive
|
||||||
|
- title: Uptime
|
||||||
|
url: https://uptime.kaleschke.info
|
||||||
|
icon: sh:uptime-kuma
|
||||||
|
- title: Glances
|
||||||
|
url: https://glances.kaleschke.info
|
||||||
|
icon: sh:glances
|
||||||
|
- title: Scrutiny
|
||||||
|
url: https://scrutiny.kaleschke.info
|
||||||
|
icon: sh:scrutiny
|
||||||
|
|
||||||
|
- size: full
|
||||||
|
widgets:
|
||||||
|
- type: monitor
|
||||||
|
title: Core, Security und Ingress
|
||||||
|
cache: 1m
|
||||||
|
sites:
|
||||||
|
- title: Traefik
|
||||||
|
url: https://traefik.kaleschke.info
|
||||||
|
icon: si:traefikproxy
|
||||||
|
alt-status-codes: [200, 302, 401, 403]
|
||||||
|
- title: Authelia
|
||||||
|
url: https://auth.kaleschke.info
|
||||||
|
icon: si:authelia
|
||||||
|
alt-status-codes: [200, 302, 401, 403]
|
||||||
|
- title: Gitea
|
||||||
|
url: https://git.kaleschke.info
|
||||||
|
icon: si:gitea
|
||||||
|
alt-status-codes: [200, 302, 401, 403]
|
||||||
|
- title: Komodo
|
||||||
|
url: https://komodo.kaleschke.info
|
||||||
|
icon: sh:komodo
|
||||||
|
alt-status-codes: [200, 302, 401, 403]
|
||||||
|
- title: Vaultwarden
|
||||||
|
url: https://vault.kaleschke.info
|
||||||
|
icon: si:vaultwarden
|
||||||
|
alt-status-codes: [200, 302, 401, 403]
|
||||||
|
- title: AdGuard Home
|
||||||
|
url: http://192.168.178.58:8082
|
||||||
|
check-url: http://adguard
|
||||||
|
icon: si:adguard
|
||||||
|
alt-status-codes: [200, 302, 401, 403]
|
||||||
|
|
||||||
|
- type: monitor
|
||||||
|
title: Apps
|
||||||
|
cache: 1m
|
||||||
|
sites:
|
||||||
|
- title: Paperless-ngx
|
||||||
|
url: https://paperless.kaleschke.info
|
||||||
|
icon: sh:paperless-ngx
|
||||||
|
alt-status-codes: [200, 302, 401, 403]
|
||||||
|
- title: Paperless-GPT
|
||||||
|
url: https://paperless-gpt.kaleschke.info
|
||||||
|
icon: mdi:robot
|
||||||
|
alt-status-codes: [200, 302, 401, 403]
|
||||||
|
- title: Immich
|
||||||
|
url: https://immich.kaleschke.info
|
||||||
|
icon: si:immich
|
||||||
|
alt-status-codes: [200, 302, 401, 403]
|
||||||
|
- title: Mealie
|
||||||
|
url: https://mealie.kaleschke.info
|
||||||
|
icon: sh:mealie
|
||||||
|
alt-status-codes: [200, 302, 401, 403]
|
||||||
|
- title: Nextcloud
|
||||||
|
url: https://cloud.kaleschke.info
|
||||||
|
icon: si:nextcloud
|
||||||
|
alt-status-codes: [200, 302, 401, 403]
|
||||||
|
- title: ntfy
|
||||||
|
url: https://ntfy.kaleschke.info
|
||||||
|
icon: si:ntfy
|
||||||
|
alt-status-codes: [200, 302, 401, 403]
|
||||||
|
- title: Mail Archiver
|
||||||
|
url: https://mail.kaleschke.info
|
||||||
|
icon: mdi:email-archive
|
||||||
|
alt-status-codes: [200, 302, 401, 403]
|
||||||
|
- title: BentoPDF
|
||||||
|
url: https://pdf.kaleschke.info
|
||||||
|
icon: mdi:file-pdf-box
|
||||||
|
alt-status-codes: [200, 302, 401, 403]
|
||||||
|
|
||||||
|
- type: monitor
|
||||||
|
title: Operations und Observability
|
||||||
|
cache: 1m
|
||||||
|
sites:
|
||||||
|
- title: Glance
|
||||||
|
url: https://glance.kaleschke.info
|
||||||
|
icon: sh:glance
|
||||||
|
alt-status-codes: [200, 302, 401, 403]
|
||||||
|
- title: Homepage
|
||||||
|
url: https://home.kaleschke.info
|
||||||
|
icon: sh:homepage
|
||||||
|
alt-status-codes: [200, 302, 401, 403]
|
||||||
|
- title: Monitoring Grafana
|
||||||
|
url: https://monitoring.kaleschke.info
|
||||||
|
icon: si:grafana
|
||||||
|
alt-status-codes: [200, 302, 401, 403]
|
||||||
|
- title: Uptime Kuma
|
||||||
|
url: https://uptime.kaleschke.info
|
||||||
|
icon: sh:uptime-kuma
|
||||||
|
alt-status-codes: [200, 302, 401, 403]
|
||||||
|
- title: Glances
|
||||||
|
url: https://glances.kaleschke.info
|
||||||
|
icon: sh:glances
|
||||||
|
alt-status-codes: [200, 302, 401, 403]
|
||||||
|
- title: Scrutiny
|
||||||
|
url: https://scrutiny.kaleschke.info
|
||||||
|
icon: sh:scrutiny
|
||||||
|
alt-status-codes: [200, 302, 401, 403]
|
||||||
|
- title: Speedtest Tracker
|
||||||
|
url: https://speedtest.kaleschke.info
|
||||||
|
icon: sh:speedtest-tracker
|
||||||
|
alt-status-codes: [200, 302, 401, 403]
|
||||||
|
- title: Filebrowser
|
||||||
|
url: https://files.kaleschke.info
|
||||||
|
icon: sh:filebrowser
|
||||||
|
alt-status-codes: [200, 302, 401, 403]
|
||||||
|
- title: code-server
|
||||||
|
url: https://code.kaleschke.info
|
||||||
|
icon: sh:code-server
|
||||||
|
alt-status-codes: [200, 302, 401, 403]
|
||||||
|
- title: Borg UI
|
||||||
|
url: https://borg.kaleschke.info
|
||||||
|
icon: mdi:archive-sync
|
||||||
|
alt-status-codes: [200, 302, 401, 403]
|
||||||
|
- title: Hermes
|
||||||
|
url: https://hermes.kaleschke.info
|
||||||
|
icon: mdi:shield-sparkles
|
||||||
|
alt-status-codes: [200, 302, 401, 403]
|
||||||
|
|
||||||
|
- size: small
|
||||||
|
widgets:
|
||||||
|
- type: docker-containers
|
||||||
|
title: Core Container
|
||||||
|
category: core
|
||||||
|
hide-by-default: true
|
||||||
|
sock-path: tcp://glance-docker-socket-proxy:2375
|
||||||
|
containers: &containers
|
||||||
|
traefik:
|
||||||
|
name: Traefik
|
||||||
|
icon: si:traefikproxy
|
||||||
|
url: https://traefik.kaleschke.info
|
||||||
|
description: Reverse Proxy
|
||||||
|
category: core
|
||||||
|
hide: false
|
||||||
|
gitea:
|
||||||
|
name: Gitea
|
||||||
|
icon: si:gitea
|
||||||
|
url: https://git.kaleschke.info
|
||||||
|
description: GitOps Origin
|
||||||
|
category: core
|
||||||
|
hide: false
|
||||||
|
authelia:
|
||||||
|
name: Authelia
|
||||||
|
icon: si:authelia
|
||||||
|
url: https://auth.kaleschke.info
|
||||||
|
description: ForwardAuth
|
||||||
|
category: core
|
||||||
|
hide: false
|
||||||
|
vaultwarden:
|
||||||
|
name: Vaultwarden
|
||||||
|
icon: si:vaultwarden
|
||||||
|
url: https://vault.kaleschke.info
|
||||||
|
description: Password Vault
|
||||||
|
category: core
|
||||||
|
hide: false
|
||||||
|
postgresql17:
|
||||||
|
name: PostgreSQL 17
|
||||||
|
icon: si:postgresql
|
||||||
|
description: Shared DB
|
||||||
|
category: core
|
||||||
|
hide: false
|
||||||
|
Redis:
|
||||||
|
name: Redis
|
||||||
|
icon: si:redis
|
||||||
|
description: Shared Cache
|
||||||
|
category: core
|
||||||
|
hide: false
|
||||||
|
adguard:
|
||||||
|
name: AdGuard
|
||||||
|
icon: si:adguard
|
||||||
|
url: http://192.168.178.58:8082
|
||||||
|
description: DNS Filter
|
||||||
|
category: core
|
||||||
|
hide: false
|
||||||
|
unbound:
|
||||||
|
name: Unbound
|
||||||
|
icon: mdi:dns
|
||||||
|
description: Upstream Resolver
|
||||||
|
category: core
|
||||||
|
hide: false
|
||||||
|
Tailscale-Docker:
|
||||||
|
name: Tailscale
|
||||||
|
icon: si:tailscale
|
||||||
|
description: VPN
|
||||||
|
category: core
|
||||||
|
hide: false
|
||||||
|
ddns-updater:
|
||||||
|
name: DDNS Updater
|
||||||
|
icon: mdi:cloud-sync
|
||||||
|
description: Cloudflare DNS
|
||||||
|
category: core
|
||||||
|
hide: false
|
||||||
|
paperless-ngx:
|
||||||
|
name: Paperless-ngx
|
||||||
|
icon: sh:paperless-ngx
|
||||||
|
url: https://paperless.kaleschke.info
|
||||||
|
description: Dokumente
|
||||||
|
category: apps
|
||||||
|
hide: false
|
||||||
|
paperless-gpt:
|
||||||
|
name: Paperless-GPT
|
||||||
|
icon: mdi:robot
|
||||||
|
url: https://paperless-gpt.kaleschke.info
|
||||||
|
description: Dokumenten-KI
|
||||||
|
category: apps
|
||||||
|
hide: false
|
||||||
|
immich_server:
|
||||||
|
name: Immich
|
||||||
|
icon: si:immich
|
||||||
|
url: https://immich.kaleschke.info
|
||||||
|
description: Fotos und Videos
|
||||||
|
category: apps
|
||||||
|
id: immich
|
||||||
|
hide: false
|
||||||
|
immich_postgres:
|
||||||
|
name: DB
|
||||||
|
parent: immich
|
||||||
|
category: apps
|
||||||
|
hide: false
|
||||||
|
immich_redis:
|
||||||
|
name: Redis
|
||||||
|
parent: immich
|
||||||
|
category: apps
|
||||||
|
hide: false
|
||||||
|
immich_machine_learning:
|
||||||
|
name: ML
|
||||||
|
parent: immich
|
||||||
|
category: apps
|
||||||
|
hide: false
|
||||||
|
mealie:
|
||||||
|
name: Mealie
|
||||||
|
icon: sh:mealie
|
||||||
|
url: https://mealie.kaleschke.info
|
||||||
|
description: Rezepte
|
||||||
|
category: apps
|
||||||
|
id: mealie
|
||||||
|
hide: false
|
||||||
|
mealie-postgres:
|
||||||
|
name: DB
|
||||||
|
parent: mealie
|
||||||
|
category: apps
|
||||||
|
hide: false
|
||||||
|
nextcloud:
|
||||||
|
name: Nextcloud
|
||||||
|
icon: si:nextcloud
|
||||||
|
url: https://cloud.kaleschke.info
|
||||||
|
description: Dateien und Sync
|
||||||
|
category: apps
|
||||||
|
id: nextcloud
|
||||||
|
hide: false
|
||||||
|
nextcloud-postgres:
|
||||||
|
name: DB
|
||||||
|
parent: nextcloud
|
||||||
|
category: apps
|
||||||
|
hide: false
|
||||||
|
nextcloud-redis:
|
||||||
|
name: Redis
|
||||||
|
parent: nextcloud
|
||||||
|
category: apps
|
||||||
|
hide: false
|
||||||
|
mail-archiver:
|
||||||
|
name: Mail Archiver
|
||||||
|
icon: mdi:email-archive
|
||||||
|
url: https://mail.kaleschke.info
|
||||||
|
description: Mail-Archiv
|
||||||
|
category: apps
|
||||||
|
hide: false
|
||||||
|
ntfy:
|
||||||
|
name: ntfy
|
||||||
|
icon: si:ntfy
|
||||||
|
url: https://ntfy.kaleschke.info
|
||||||
|
description: Push Alerts
|
||||||
|
category: apps
|
||||||
|
hide: false
|
||||||
|
bentopdf:
|
||||||
|
name: BentoPDF
|
||||||
|
icon: mdi:file-pdf-box
|
||||||
|
url: https://pdf.kaleschke.info
|
||||||
|
description: PDF Tools
|
||||||
|
category: apps
|
||||||
|
hide: false
|
||||||
|
homepage:
|
||||||
|
name: Homepage
|
||||||
|
icon: sh:homepage
|
||||||
|
url: https://home.kaleschke.info
|
||||||
|
description: Bestehendes Start-Dashboard
|
||||||
|
category: ops
|
||||||
|
hide: false
|
||||||
|
glance:
|
||||||
|
name: Glance
|
||||||
|
icon: sh:glance
|
||||||
|
url: https://glance.kaleschke.info
|
||||||
|
description: Homelab Uebersicht
|
||||||
|
category: ops
|
||||||
|
hide: false
|
||||||
|
glance-docker-socket-proxy:
|
||||||
|
name: Glance Socket Proxy
|
||||||
|
icon: si:docker
|
||||||
|
description: Read-only Docker API
|
||||||
|
category: ops
|
||||||
|
hide: false
|
||||||
|
monitoring-grafana:
|
||||||
|
name: Monitoring Grafana
|
||||||
|
icon: si:grafana
|
||||||
|
url: https://monitoring.kaleschke.info
|
||||||
|
description: Observability UI
|
||||||
|
category: ops
|
||||||
|
id: monitoring
|
||||||
|
hide: false
|
||||||
|
monitoring-prometheus:
|
||||||
|
name: Prometheus
|
||||||
|
parent: monitoring
|
||||||
|
category: ops
|
||||||
|
hide: false
|
||||||
|
monitoring-loki:
|
||||||
|
name: Loki
|
||||||
|
parent: monitoring
|
||||||
|
category: ops
|
||||||
|
hide: false
|
||||||
|
monitoring-promtail:
|
||||||
|
name: Promtail
|
||||||
|
parent: monitoring
|
||||||
|
category: ops
|
||||||
|
hide: false
|
||||||
|
monitoring-alertmanager:
|
||||||
|
name: Alertmanager
|
||||||
|
parent: monitoring
|
||||||
|
category: ops
|
||||||
|
hide: false
|
||||||
|
monitoring-alertmanager-ntfy-bridge:
|
||||||
|
name: ntfy Bridge
|
||||||
|
parent: monitoring
|
||||||
|
category: ops
|
||||||
|
hide: false
|
||||||
|
monitoring-blackbox-exporter:
|
||||||
|
name: Blackbox
|
||||||
|
parent: monitoring
|
||||||
|
category: ops
|
||||||
|
hide: false
|
||||||
|
monitoring-node-exporter:
|
||||||
|
name: Node Exporter
|
||||||
|
parent: monitoring
|
||||||
|
category: ops
|
||||||
|
hide: false
|
||||||
|
monitoring-cadvisor:
|
||||||
|
name: cAdvisor
|
||||||
|
parent: monitoring
|
||||||
|
category: ops
|
||||||
|
hide: false
|
||||||
|
monitoring-influxdb3-core:
|
||||||
|
name: InfluxDB 3
|
||||||
|
parent: monitoring
|
||||||
|
category: ops
|
||||||
|
hide: false
|
||||||
|
uptime-kuma:
|
||||||
|
name: Uptime Kuma
|
||||||
|
icon: sh:uptime-kuma
|
||||||
|
url: https://uptime.kaleschke.info
|
||||||
|
description: Uptime Checks
|
||||||
|
category: ops
|
||||||
|
hide: false
|
||||||
|
glances:
|
||||||
|
name: Glances
|
||||||
|
icon: sh:glances
|
||||||
|
url: https://glances.kaleschke.info
|
||||||
|
description: Host-Monitoring
|
||||||
|
category: ops
|
||||||
|
hide: false
|
||||||
|
scrutiny:
|
||||||
|
name: Scrutiny
|
||||||
|
icon: sh:scrutiny
|
||||||
|
url: https://scrutiny.kaleschke.info
|
||||||
|
description: SMART
|
||||||
|
category: ops
|
||||||
|
hide: false
|
||||||
|
speedtest-tracker:
|
||||||
|
name: Speedtest
|
||||||
|
icon: sh:speedtest-tracker
|
||||||
|
url: https://speedtest.kaleschke.info
|
||||||
|
description: WAN-Messung
|
||||||
|
category: ops
|
||||||
|
hide: false
|
||||||
|
filebrowser:
|
||||||
|
name: Filebrowser
|
||||||
|
icon: sh:filebrowser
|
||||||
|
url: https://files.kaleschke.info
|
||||||
|
description: Dateizugriff
|
||||||
|
category: ops
|
||||||
|
hide: false
|
||||||
|
code-server:
|
||||||
|
name: code-server
|
||||||
|
icon: sh:code-server
|
||||||
|
url: https://code.kaleschke.info
|
||||||
|
description: Web IDE
|
||||||
|
category: ops
|
||||||
|
hide: false
|
||||||
|
borg-ui:
|
||||||
|
name: Borg UI
|
||||||
|
icon: mdi:archive-sync
|
||||||
|
url: https://borg.kaleschke.info
|
||||||
|
description: Backup und Restore
|
||||||
|
category: ops
|
||||||
|
hide: false
|
||||||
|
hermes-dashboard:
|
||||||
|
name: Hermes
|
||||||
|
icon: mdi:shield-sparkles
|
||||||
|
url: https://hermes.kaleschke.info
|
||||||
|
description: Ops Agent UI
|
||||||
|
category: ops
|
||||||
|
id: hermes
|
||||||
|
hide: false
|
||||||
|
hermes-gateway:
|
||||||
|
name: Gateway
|
||||||
|
parent: hermes
|
||||||
|
category: ops
|
||||||
|
hide: false
|
||||||
|
komodo-core:
|
||||||
|
name: Komodo
|
||||||
|
icon: sh:komodo
|
||||||
|
url: https://komodo.kaleschke.info
|
||||||
|
description: Stack Manager
|
||||||
|
category: ops
|
||||||
|
id: komodo
|
||||||
|
hide: false
|
||||||
|
komodo-mongo:
|
||||||
|
name: Mongo
|
||||||
|
parent: komodo
|
||||||
|
category: ops
|
||||||
|
hide: false
|
||||||
|
komodo-periphery:
|
||||||
|
name: Periphery
|
||||||
|
parent: komodo
|
||||||
|
category: ops
|
||||||
|
hide: false
|
||||||
|
|
||||||
|
- 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
|
||||||
|
|
||||||
|
- type: releases
|
||||||
|
title: Relevante Releases
|
||||||
|
cache: 6h
|
||||||
|
show-source-icon: true
|
||||||
|
collapse-after: 6
|
||||||
|
repositories:
|
||||||
|
- glanceapp/glance
|
||||||
|
- traefik/traefik
|
||||||
|
- go-gitea/gitea
|
||||||
|
- authelia/authelia
|
||||||
|
- vaultwarden/server
|
||||||
|
- paperless-ngx/paperless-ngx
|
||||||
|
- immich-app/immich
|
||||||
|
- mealie-recipes/mealie
|
||||||
|
- nextcloud/server
|
||||||
|
- binwiederhier/ntfy
|
||||||
|
- louislam/uptime-kuma
|
||||||
|
- grafana/grafana
|
||||||
|
- prometheus/prometheus
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
services:
|
||||||
|
glance:
|
||||||
|
image: glanceapp/glance:v0.8.4
|
||||||
|
container_name: glance
|
||||||
|
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:
|
||||||
|
- frontend_net
|
||||||
|
- glance_socket_net
|
||||||
|
depends_on:
|
||||||
|
- glance-docker-socket-proxy
|
||||||
|
labels:
|
||||||
|
- traefik.enable=true
|
||||||
|
- traefik.docker.network=frontend_net
|
||||||
|
- traefik.http.routers.glance.rule=Host(`glance.kaleschke.info`)
|
||||||
|
- traefik.http.routers.glance.entrypoints=websecure
|
||||||
|
- traefik.http.routers.glance.tls=true
|
||||||
|
- traefik.http.routers.glance.tls.certresolver=le
|
||||||
|
- traefik.http.routers.glance.middlewares=authelia@file,secure-headers@file
|
||||||
|
- traefik.http.services.glance.loadbalancer.server.port=8080
|
||||||
|
security_opt:
|
||||||
|
- no-new-privileges:true
|
||||||
|
|
||||||
|
glance-docker-socket-proxy:
|
||||||
|
image: tecnativa/docker-socket-proxy:0.4.2
|
||||||
|
container_name: glance-docker-socket-proxy
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
LOG_LEVEL: warning
|
||||||
|
POST: "0"
|
||||||
|
CONTAINERS: "1"
|
||||||
|
INFO: "1"
|
||||||
|
VERSION: "1"
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
|
networks:
|
||||||
|
- glance_socket_net
|
||||||
|
expose:
|
||||||
|
- "2375"
|
||||||
|
security_opt:
|
||||||
|
- no-new-privileges:true
|
||||||
|
|
||||||
|
networks:
|
||||||
|
frontend_net:
|
||||||
|
external: true
|
||||||
|
glance_socket_net:
|
||||||
|
name: glance_socket_net
|
||||||
|
internal: true
|
||||||
|
driver: bridge
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
GLANCE_ADGUARD_USERNAME=admin
|
||||||
|
GLANCE_ADGUARD_PASSWORD=change-me
|
||||||
Reference in New Issue
Block a user