22 KiB
22 KiB
Repository Map
Stand: 2026-05-04
Diese Datei ist eine technische Landkarte des Repositories. Sie wurde aus Markdown-Dokumenten, docker-compose.yml-Dateien, Env-Beispielen, Traefik-Dynamic-Configs, Komodo/Periphery-Dateien und Skripten abgeleitet. Sie beschreibt den Repo-Sollzustand, nicht zwingend den Live-Zustand auf dem Host.
Secret-Werte werden hier nicht dokumentiert. Aufgefuehrt werden nur Variablennamen, Secret-Namen und Pfade.
Ordnerstruktur
| Pfad | Zweck |
|---|---|
apps/ |
Produktive Anwendungen und vorbereitete App-Stacks |
core/ |
Basisdienste, aktuell Gitea |
docs/ |
Betriebsdokumentation, Restore, Rollback, GitOps-Regeln |
env/ |
globale nicht geheime Beispiel-Env-Dateien |
host-services/ |
Host-nahe Dienste mit direkten Ports oder Host-Netz |
infra/ |
technische Infrastruktur wie PostgreSQL, Redis, DDNS |
ops/ |
Operations-, Backup-, Monitoring- und Admin-Tools |
services/ |
Host-seitige Betriebsskripte und Recovery-kritische Service-Hilfen |
security/ |
Identity/Security-Dienste wie Authelia und Vaultwarden |
traefik/ |
Reverse Proxy Compose und dynamic File-Provider-Konfiguration |
Wichtige Dokumente
| Datei | Bedeutung |
|---|---|
README.md |
Einstieg und Kurzueberblick |
HOMELAB_ARCHITECTURE_MASTER_V2.md |
operative Architektur-Quelle fuer Netzwerk, Zugriff und Ausnahmen |
docs/WORKFLOW.md |
GitOps-/No-Drift-Arbeitsregeln |
docs/GITOPS_DRIFT_RUNBOOK.md |
Pflichtmatrix fuer Git/Gitea/Komodo/Docker/Host-Drift |
docs/DISASTER_RECOVERY.md |
Wiederanlauf nach Host-/Systemausfall |
docs/RESTORE_MATRIX.md |
Restore-Quellen, Dump-Artefakte und Smoke-Tests je Dienst |
docs/ROLLBACK.md |
Rueckweg bei Fehlern im GitOps-Betrieb |
docs/SECRETS_MAP.md |
Secret-Namen, Pfade und Einbindungsarten ohne Werte |
docs/HOME_ASSISTANT_INFLUXDB_ECOWITT.md |
Home Assistant -> InfluxDB 3 -> Grafana Ablauf |
docs/AI_CONTEXT.md |
Gesamtverstaendnis fuer KI-Agenten |
docs/SERVICE_CATALOG.md |
produktiver Service-Katalog |
Relevante Nicht-Compose-Dateien
| Datei | Zweck / Hinweis |
|---|---|
traefik/dynamic/middlewares.yml |
zentrale secure-headers und authelia ForwardAuth Middleware; manuelle Host-Sync-Ausnahme |
traefik/dynamic/dashboards.yml |
leer; File-Provider-Platzhalter |
traefik/dynamic/tls.yml |
leer; File-Provider-Platzhalter |
security/authelia/configuration.yml |
versionierte Authelia-Baseline fuer nicht geheime ACL-/Session-/Storage-Einstellungen; manuelle Host-Merge-Pflicht, User-Daten, OIDC-Client-Konfiguration und Secret-Werte bleiben ausserhalb von Git |
ops/grafana-influxdb/provisioning/datasources/influxdb.yml |
Grafana Datasource Provisioning fuer InfluxDB 3 Core und Loki |
ops/grafana-influxdb/provisioning/dashboards/*.json |
Grafana Dashboards fuer Container-Logs, Restart-Events und Error-Rate |
ops/loki/config/loki-config.yml |
Loki Filesystem/Retention-Konfiguration fuer internen Logspeicher |
ops/loki/config/config.alloy |
Alloy Docker-Log-Collector-Konfiguration |
monitoring/prometheus/prometheus.yml |
Prometheus Scrape-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/grafana/provisioning/* |
Grafana Datasource-/Dashboard-Provisioning fuer Prometheus und Loki |
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 |
services/posture-check/posture_check.sh |
Kompatibilitaets-Wrapper fuer die Schreibweise aus STORAGE_LAYOUT.draft.md |
ops/hermes-agent/config/hermes/config.yaml |
Hermes Agent Konfiguration mit Env-Platzhaltern |
ops/hermes-agent/hermes.env.example |
Beispiel fuer Hermes .env; echte Datei liegt auf Host-Appdata |
ops/hermes-agent/stack.env.example |
Beispiel fuer Hermes Stack-ENV; echte stack.env bleibt host-/komodoseitig und ist per .gitignore ausgeschlossen |
ops/grafana-influxdb/stack.env.example |
INFLUXDB_BIND_IP Default 127.0.0.1; auf Unraid fuer Home Assistant auf LAN-IP setzen |
monitoring/stack.env.example |
INFLUXDB_BIND_IP Default 127.0.0.1; im Zielzustand fuer Home Assistant auf LAN-IP setzen |
ops/komodo/stack.env.example |
Komodo Stack-ENV-Beispiel, Secret-Werte nicht enthalten |
Stack-Inventar
Apps
| Stack | Compose | Services / Images | Traefik Hosts | Networks | Ports | Abhaengigkeiten |
|---|---|---|---|---|---|---|
| BentoPDF | apps/bentopdf/docker-compose.yml |
bentopdf -> bentopdfteam/bentopdf:2.8.4 |
pdf.kaleschke.info |
frontend_net |
keine | Traefik + Authelia; COOP/COEP Middleware |
| Homepage | apps/homepage/docker-compose.yml |
homepage -> ghcr.io/gethomepage/homepage:v1.12.3@sha256:... |
home.kaleschke.info |
frontend_net |
keine | Docker-Socket read-only fuer Widgets; viele HOMEPAGE_VAR_* Env-Keys |
| Immich | apps/immich/docker-compose.yml |
immich-server, immich-machine-learning, database, redis |
immich.kaleschke.info |
frontend_net, immich_default |
keine | immich-server depends on database, redis |
| Mail Archiver | apps/mail-archiver/docker-compose.yml |
mail-archiver -> s1t5/mailarchiver@sha256:... |
mail.kaleschke.info |
frontend_net, backend_net |
keine | shared PostgreSQL via env connection string; Internet fuer IMAP |
| Mealie | apps/mealie/docker-compose.yml |
mealie, mealie-postgres |
mealie.kaleschke.info |
frontend_net, mealie_internal |
keine | eigene PostgreSQL im internen Netz |
| Nextcloud | apps/nextcloud/docker-compose.yml |
nextcloud, nextcloud-postgres, nextcloud-redis |
cloud.kaleschke.info |
frontend_net, nextcloud_internal |
keine | native Nextcloud-Auth; eigene DB und Redis |
| ntfy | apps/ntfy/docker-compose.yml |
ntfy -> binwiederhier/ntfy:latest@sha256:... |
ntfy.kaleschke.info |
frontend_net |
keine | mobile Push via upstream ntfy.sh |
| Paperless-ngx | apps/paperless/docker-compose.yml |
paperless -> ghcr.io/paperless-ngx/paperless-ngx:2.20.10 |
paperless.kaleschke.info |
frontend_net, backend_net |
keine | shared PostgreSQL + Redis; DB/Redis via Stack ENV |
| Paperless-GPT | apps/paperless-gpt/docker-compose.yml |
paperless-gpt -> icereed/paperless-gpt:v0.24.0 |
paperless-gpt.kaleschke.info |
frontend_net |
keine | Paperless API, Ollama/LLM config |
| Unbound | apps/unbound/docker-compose.yml |
unbound -> shaanmajid/unbound:latest@sha256:... |
keine | dns_net |
keine | Upstream Resolver fuer AdGuard |
Core / Security / Infra
| Stack | Compose | Services / Images | Traefik Hosts | Networks | Ports | Abhaengigkeiten |
|---|---|---|---|---|---|---|
| Gitea | core/gitea/docker-compose.yml |
gitea -> docker.gitea.com/gitea:1.25.4@sha256:... |
git.kaleschke.info |
frontend_net |
222:22/tcp |
SQLite in /data; SSH-Port ist dokumentierte Ausnahme |
| Authelia | security/authelia/docker-compose.yml |
authelia -> authelia/authelia:latest@sha256:... |
auth.kaleschke.info |
frontend_net, backend_net |
keine | PostgreSQL 17 Storage, Traefik ForwardAuth; bewusst ohne Redis-Session-Backend |
| Vaultwarden | security/vaultwarden/docker-compose.yml |
vaultwarden -> vaultwarden/server:latest@sha256:... |
vault.kaleschke.info |
frontend_net |
keine | Datei-Persistenz, ADMIN_TOKEN_FILE |
| ddns-updater | infra/ddns-updater/docker-compose.yml |
ddns-updater -> ghcr.io/qdm12/ddns-updater:latest@sha256:... |
keine | frontend_net |
keine | Cloudflare/API-Internetbedarf |
| PostgreSQL 17 | infra/postgresql17/docker-compose.yml |
postgresql17 -> postgres:17.9@sha256:... |
keine | backend_net |
keine | shared DB-Cluster |
| Redis | infra/redis/docker-compose.yml |
Redis -> redis:7.4-alpine@sha256:... |
keine | backend_net |
keine | shared Cache, Passwort-Datei |
Host Services
| Stack | Compose | Services / Images | Hosts | Networks | Ports / Mode | Abhaengigkeiten |
|---|---|---|---|---|---|---|
| AdGuard Home | host-services/Adguard/docker-compose.yml |
adguard -> adguard/adguardhome:v0.107.52 |
keine Traefik-Route | dns_net, frontend_net |
53/tcp, 53/udp, 8082:80/tcp |
Unbound in dns_net; direkte Ports sind dokumentierte Ausnahme |
| Tailscale | host-services/tailscale/docker-compose.yml |
Tailscale-Docker -> tailscale/tailscale:stable@sha256:... |
keine | network_mode: host |
host network | VPN/Remote-Zugang |
Operations
| Stack | Compose | Services / Images | Traefik Hosts | Networks | Ports | Abhaengigkeiten |
|---|---|---|---|---|---|---|
| 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 |
| 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 |
| Monitoring | monitoring/docker-compose.yml |
monitoring-prometheus, monitoring-loki, monitoring-promtail, monitoring-grafana, monitoring-node-exporter, monitoring-cadvisor, monitoring-influxdb3-core, optional monitoring-grafana-dashboard-importer |
monitoring.kaleschke.info |
frontend_net, monitoring_net, monitoring_influx_lan |
monitoring-influxdb3-core: ${INFLUXDB_BIND_IP:-127.0.0.1}:8181:8181 |
zentraler Zielstack fuer Prometheus/Loki/Grafana/InfluxDB; Promtail nutzt Docker socket read-only; Dashboard-Importer nur via bootstrap-Profil |
| Hermes Agent | ops/hermes-agent/docker-compose.yml |
hermes-gateway, hermes-dashboard -> local build from Dockerfile |
hermes.kaleschke.info via ${HERMES_DASHBOARD_HOST} |
hermes_net, dashboard zusaetzlich frontend_net |
8642 nur expose intern |
SSH runner, Home Assistant optional, LLM provider env; Dashboard hinter Authelia |
| Komodo | ops/komodo/docker-compose.yml |
komodo-core, komodo-mongo, komodo-periphery |
komodo.kaleschke.info |
frontend_net, komodo_net |
keine | Mongo, Docker socket, /mnt/user/services workspace mount, Gitea DNS override |
| Scrutiny | ops/scrutiny/docker-compose.yml |
scrutiny -> ghcr.io/starosdev/scrutiny:latest-omnibus@sha256:... |
scrutiny.kaleschke.info |
frontend_net |
keine | privileged: true, device mounts fuer SMART |
| Speedtest Tracker | ops/speedtest/docker-compose.yml |
speedtest-tracker -> lscr.io/linuxserver/speedtest-tracker:1.13.12@sha256:... |
speedtest.kaleschke.info |
frontend_net |
keine | App key/admin env, SQLite/config path |
| Uptime Kuma | ops/uptime-kuma/docker-compose.yml |
UptimeKuma -> louislam/uptime-kuma:1@sha256:... |
uptime.kaleschke.info |
frontend_net |
keine | Monitor-State in Appdata |
Traefik
| Stack | Compose | Service / Image | Hosts | Networks | Ports | Abhaengigkeiten |
|---|---|---|---|---|---|---|
| Traefik | traefik/docker-compose.yml |
traefik -> traefik:v3.6 |
traefik.kaleschke.info |
frontend_net, backend_net |
80:80/tcp, 443:443/tcp |
Docker provider, Cloudflare DNS token secret, dynamic config |
Traefik Hosts
| Host | Service | Zugriff |
|---|---|---|
auth.kaleschke.info |
Authelia | Auth provider / bypass fuer eigene Domain |
borg.kaleschke.info |
Borg UI | Traefik + Authelia |
cloud.kaleschke.info |
Nextcloud | Traefik, native App-Auth |
code.kaleschke.info |
code-server | Traefik + Authelia |
files.kaleschke.info |
Filebrowser | Traefik + Authelia |
git.kaleschke.info |
Gitea Web | Traefik |
glances.kaleschke.info |
Glances | Traefik + Authelia |
grafana.kaleschke.info |
Grafana | Traefik + Authelia |
hermes.kaleschke.info |
Hermes Dashboard | Traefik + Authelia |
home.kaleschke.info |
Homepage | Traefik + Authelia; faellt in Authelia unter die 1FA-Wildcard-Regel |
immich.kaleschke.info |
Immich | Traefik, native App-Auth |
komodo.kaleschke.info |
Komodo | Traefik, native Komodo-Auth; keine pauschale ForwardAuth |
mail.kaleschke.info |
Mail Archiver | Traefik + Authelia + App-Auth |
mealie.kaleschke.info |
Mealie | Traefik |
monitoring.kaleschke.info |
Monitoring Grafana | Traefik + Authelia |
ntfy.kaleschke.info |
ntfy | Traefik |
paperless.kaleschke.info |
Paperless-ngx | Traefik |
paperless-gpt.kaleschke.info |
Paperless-GPT | Traefik + Authelia |
pdf.kaleschke.info |
BentoPDF | Traefik + Authelia + COOP/COEP |
scrutiny.kaleschke.info |
Scrutiny | Traefik + Authelia |
speedtest.kaleschke.info |
Speedtest Tracker | Traefik + Authelia |
traefik.kaleschke.info |
Traefik Dashboard | Traefik + Authelia |
uptime.kaleschke.info |
Uptime Kuma | Traefik + Authelia |
vault.kaleschke.info |
Vaultwarden | Traefik |
Networks
| Network | Typ / Status | Nutzer |
|---|---|---|
frontend_net |
external bridge | Web-/Proxy-Netz fuer Traefik und alle gerouteten UIs |
backend_net |
external/internal laut Architektur | PostgreSQL 17, Redis, Authelia, Paperless, Mail Archiver, Traefik, Loki, Alloy, Grafana-Loki-Datasource |
dns_net |
App-/Host-Netz | AdGuard Home und Unbound |
immich_default |
Compose-intern, internal: true |
Immich Server, ML, Postgres, Redis |
mealie_internal |
Compose-intern; Laufzeitname mit Compose-Projektpraefix typischerweise mealie_mealie_internal |
Mealie und Mealie Postgres |
nextcloud_internal |
Compose-intern | Nextcloud, Nextcloud Postgres, Nextcloud Redis |
grafana_influx_internal |
Compose-intern, internal: true |
Grafana und InfluxDB |
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_influx_lan |
Compose-intern bridge | InfluxDB Host-Port-Publishing fuer LAN Writer im zentralen Monitoring-Stack |
komodo_net |
Compose-intern, internal: true |
Komodo Core, Mongo, Periphery |
hermes_net |
Compose-intern bridge | Hermes Gateway/Dashboard |
host |
Host-Netz | Tailscale; Plex historisch ausserhalb Repo |
Volumes und Datenpfade
| Bereich | Wichtige Pfade |
|---|---|
| Traefik | /mnt/user/appdata/traefik/dynamic, /mnt/user/appdata/traefik/letsencrypt, Cloudflare Secret |
| Gitea | /mnt/user/services/gitea/data |
| Authelia | /mnt/user/appdata/authelia/config, Authelia Secret-Dateien |
| Vaultwarden | /mnt/user/appdata/vaultwarden, Admin-Token-Datei |
| PostgreSQL 17 | /mnt/user/appdata/postgresql17, postgres_password.txt |
| Redis | /mnt/user/appdata/redis, redis_password.txt |
| Paperless | /mnt/user/appdata/paperless-ngx/data, /mnt/user/documents/paperless, /mnt/user/documents/scans_inbox |
| Immich | /mnt/user/photos/immich, /mnt/user/photos/family_archive, /mnt/user/appdata/immich_postgres, model-cache |
| Mealie | /mnt/user/appdata/mealie/data, /mnt/user/appdata/mealie/postgres |
| Mail Archiver | /mnt/user/appdata/mailarchiver/data-protection-keys |
| Nextcloud | /mnt/user/appdata/nextcloud/html, /mnt/user/documents/nextcloud-data, /mnt/user/appdata/nextcloud/postgres, /mnt/user/appdata/nextcloud/redis |
| Homepage | /mnt/user/appdata/homepage, /mnt/user/appdata/homepage/images, Docker socket read-only |
| ntfy | /mnt/user/appdata/ntfy |
| Paperless-GPT | /mnt/user/appdata/paperless-gpt/data, /mnt/user/appdata/paperless-gpt/prompts |
| AdGuard | /mnt/user/appdata/adguard/work, /mnt/user/appdata/adguard/conf |
| Tailscale | /mnt/user/appdata/tailscale |
| 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 |
| Filebrowser | /mnt/user/documents, /mnt/user/photos, /mnt/user/projekte, Filebrowser database/config paths |
| Glances | /, Docker socket, /etc/os-release |
| Scrutiny | /mnt/user/appdata/scrutiny/*, /run/udev, selected /dev/... disks |
| Speedtest | /mnt/user/appdata/speedtest-tracker/config |
| Uptime Kuma | /mnt/user/appdata/uptime-kuma |
| Grafana/InfluxDB | /mnt/user/appdata/grafana, Grafana provisioning, /mnt/user/appdata/influxdb3/data, /mnt/user/appdata/influxdb3/plugins |
| Loki/Alloy | /mnt/user/appdata/loki/config, /mnt/user/appdata/loki/data, /mnt/user/appdata/alloy/config, /mnt/user/appdata/alloy/data |
| Monitoring | named volumes prometheus_data, loki_data, promtail_positions, grafana_data, influxdb3_data, influxdb3_plugins; Provisioning im Repo unter monitoring/grafana/provisioning |
| Hermes Agent | /mnt/user/appdata/hermes-agent/data, /mnt/user/appdata/hermes-agent/ssh, SSH private key path |
| Komodo | komodo_keys, /mnt/user/appdata/komodo/core, /mnt/user/appdata/komodo/mongo, /mnt/user/appdata/komodo/periphery, /mnt/user/services |
Secrets und Env-Hinweise
| Dienst / Stack | Secret-/Env-Hinweise ohne Werte |
|---|---|
| Traefik | cloudflare_dns_api_token als Docker Secret / CF_DNS_API_TOKEN_FILE |
| Authelia | JWT, Session, Storage Encryption, Postgres Password via _FILE |
| Vaultwarden | ADMIN_TOKEN_FILE |
| PostgreSQL 17 | POSTGRES_PASSWORD_FILE |
| Redis | Passwort-Datei und Startkommando |
| Paperless | PAPERLESS_DBPASS, PAPERLESS_REDIS als Komodo Stack ENV |
| 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 |
| 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 |
| Borg UI | Borg Credentials, Admin Login, SSH Keys in persistentem Appdata, nicht im Git |
| Hermes Agent | provider keys, API server key, messaging tokens, Home Assistant token in Host .env; SSH private key als Host-Secret |
| Grafana/InfluxDB | Grafana Admin Password, InfluxDB Admin Token JSON, Grafana Datasource Token |
| Loki/Alloy | keine zusaetzlichen Secrets; Zugriff nur intern ueber backend_net |
| Monitoring | monitoring_grafana_admin_password.txt, monitoring_grafana_influxdb_token.txt, influxdb3_admin_token.json fuer zentrale Grafana-/InfluxDB-Funktionen |
Skripte
| Skript | Ausfuehrungsort | Zweck |
|---|---|---|
ops/borg-ui/scripts/pre-backup-dumps.sh |
Unraid Host, nicht Borg-UI Inline-Hook | erzeugt aktuelle Dumps unter /mnt/user/backups/borg/dumps/latest |
services/posture-check/posture-check.sh |
Unraid Host | schreibt /mnt/user/services/posture-check/last.json und alarmiert via ntfy bei Warning/Critical |
services/posture-check/docker-critical-events.sh |
Unraid Host | beobachtet Docker die/oom/kill Events und alarmiert via kallilab-critical |
Das Skript liest Secret-Dateien auf dem Host und schreibt Dump-Artefakte. Bei Analyse niemals Secret-Inhalte ausgeben.
Unsicherheiten / TODOs aus Repo-Sicht
- Echte
stack.env- und.env-Dateien sind per.gitignoreausgeschlossen; nur*.example-Dateien gehoeren ins Repo. - Authelia
configuration.ymlist Repo-Baseline fuer nicht geheime Einstellungen, wird aber nicht automatisch von Komodo auf den Host kopiert. Die produktive Host-Datei kann zusaetzliche OIDC-/Secret-Konfiguration enthalten; Aenderungen muessen manuell gemerged und validiert werden. backend_netist in der Architektur alsinternal: truebeschrieben; einzelne Compose-Dateien referenzieren es external. Live-Netz-Attribute bei Drift-Fragen pruefen.- Einige Images bleiben trotz Digest-Pin semantisch auf mutable Tags (
latest@sha256,release@sha256). Das ist bewusst dokumentiert, aber bei Updates gesondert pruefen. - Stateful Datenhalter sind seit 2026-05-05 bevorzugt mit Minor-/Patch-Tag plus Digest gepinnt; Redis-Caches wurden im Hardening-Sprint 2026-05-16 auf
redis:7.4-alpine@sha256:...vereinheitlicht. scrutinybleibtprivileged: true; dokumentierte Ausnahme, aber weiterhin pruefenswert.tailscalenutzt Host-Netz,NET_ADMIN,NET_RAWund/dev/net/tunals dokumentierte VPN-Ausnahme.grafanaundinfluxdb3-corelaufen aktuell alsuser: "0"; UID/GID-Hardening nur als eigener Sprint.- Leere
.keep-Platzhalter wurden entfernt; neue Verzeichnisse sollen erst mit konkretem Inhalt ins Repo. Plex-Media-Serverist als historischer Host-Sonderfall dokumentiert, aber nicht als Repo-Compose-Stack enthalten.- BentoPDF kann je nach Live-Stand vorbereitet statt produktiv sein; Hermes Dashboard ist produktiv unter
hermes.kaleschke.info.