21 KiB
21 KiB
Service Catalog
Stand: 2026-05-04
Dieser Katalog beschreibt produktive und repo-vorbereitete Dienste aus Sicht von Betrieb, Restore und KI-Kontext. Er basiert auf dem Repo-Sollzustand. Vor produktiven Eingriffen immer den Live-Zustand in Komodo/Docker pruefen.
Secret-Werte sind nicht enthalten. Es werden nur Secret-Namen, Env-Key-Namen und Pfade genannt.
Core / Ingress / DNS
| Service | Zweck | Autoritativer Pfad | URL / Zugang | Abhaengigkeiten | Datenpfade | Backup / Restore | Traefik | Besonderheiten / TODOs |
|---|---|---|---|---|---|---|---|---|
traefik |
zentraler Reverse Proxy, TLS, Docker-Label-Routing | traefik/docker-compose.yml, traefik/dynamic/* |
https://traefik.kaleschke.info |
Docker socket, Cloudflare DNS API, frontend_net, backend_net |
/mnt/user/appdata/traefik/dynamic, /mnt/user/appdata/traefik/letsencrypt |
Tier 1, Share/Borg | ja, eigene Dashboard-Route mit Authelia | Host-Ports 80/443 sind zentrale Ausnahme; dynamic configs werden nicht automatisch von Komodo deployed |
adguard |
DNS-Server / LAN DNS | host-services/Adguard/docker-compose.yml |
LAN-Port 53, Admin 8082 |
dns_net, frontend_net, Unbound |
/mnt/user/appdata/adguard/conf, /mnt/user/appdata/adguard/work |
Tier 1, config relevant | nein | Direkte Ports 53 und 8082 dokumentierte Ausnahme; Admin-Port spaeter ggf. absichern |
unbound |
Upstream DNS Resolver fuer AdGuard | apps/unbound/docker-compose.yml |
intern | dns_net |
/mnt/user/appdata/unbound/config |
rebuildbar / config relevant | nein | intern isoliert |
tailscale |
VPN/Remote-Zugang | host-services/tailscale/docker-compose.yml |
Tailscale | Host-Netz | /mnt/user/appdata/tailscale |
Tier 1, State relevant | nein | network_mode: host, NET_ADMIN, NET_RAW und /dev/net/tun sind dokumentierte VPN-Ausnahmen |
gitea |
Git-Server / origin fuer GitOps | core/gitea/docker-compose.yml |
https://git.kaleschke.info, SSH 222 |
Traefik, frontend_net |
/mnt/user/services/gitea/data |
Tier 1, gitea.sqlite.dump + Share |
ja | SSH-Port 222 direkte Host-Port-Ausnahme; ohne externen Mirror im DR kritisch |
Security / Identity
| Service | Zweck | Autoritativer Pfad | URL / Zugang | Abhaengigkeiten | Datenpfade | Backup / Restore | Traefik | Besonderheiten / TODOs |
|---|---|---|---|---|---|---|---|---|
authelia |
ForwardAuth / zentrale Auth fuer Admin-UIs | security/authelia/docker-compose.yml, security/authelia/configuration.yml |
https://auth.kaleschke.info |
PostgreSQL 17, Traefik, GMX SMTP | /mnt/user/appdata/authelia/config, Authelia Secret-Dateien |
Tier 1, config + DB + secrets | ja | Bewusst ohne Redis-Session-Backend; SMTP-Notifier via GMX und authelia_smtp_password.txt; explizite DNS-Server fuer SMTP/NTP; Repo-Baseline muss manuell in die Host-Config gemerged werden, OIDC/Secrets bleiben hostseitig; Access-Control und Compose-Middleware bei Aenderungen abgleichen |
vaultwarden |
Passwort-Tresor | security/vaultwarden/docker-compose.yml |
https://vault.kaleschke.info |
Traefik, frontend_net |
/mnt/user/appdata/vaultwarden |
Tier 1, vaultwarden.sqlite.dump + Share |
ja | ADMIN_TOKEN_FILE; keine direkten Ports |
Shared Infrastructure
| Service | Zweck | Autoritativer Pfad | URL / Zugang | Abhaengigkeiten | Datenpfade | Backup / Restore | Traefik | Besonderheiten / TODOs |
|---|---|---|---|---|---|---|---|---|
postgresql17 |
shared PostgreSQL Cluster | infra/postgresql17/docker-compose.yml |
intern | backend_net |
/mnt/user/appdata/postgresql17, postgres_password.txt |
Tier 1; Dumps unter /mnt/user/backups/borg/dumps/latest |
nein | keine Host-Ports; raw DB nicht primaerer Restore-Weg |
Redis |
shared Redis Cache | infra/redis/docker-compose.yml |
intern | backend_net |
/mnt/user/appdata/redis, redis_password.txt |
transiente Daten, bewusst nicht kritisch | nein | Passwort-Datei; optional named volume offen |
ddns-updater |
Cloudflare/DDNS Aktualisierung | infra/ddns-updater/docker-compose.yml |
intern | Internetzugang, frontend_net |
/mnt/user/appdata/ddns-updater |
rebuildbar | nein | bleibt bewusst in frontend_net, weil backend_net internal ist |
Public / User Apps
| Service | Zweck | Autoritativer Pfad | URL / Zugang | Abhaengigkeiten | Datenpfade | Backup / Restore | Traefik | Besonderheiten / TODOs |
|---|---|---|---|---|---|---|---|---|
paperless-ngx |
Dokumentenmanagement | apps/paperless/docker-compose.yml |
https://paperless.kaleschke.info |
PostgreSQL 17, Redis, Traefik | /mnt/user/appdata/paperless-ngx/data, /mnt/user/documents/paperless, /mnt/user/documents/scans_inbox |
Tier 2, Borg + postgresql17-paperless.dump |
ja | DB/Redis Secrets bleiben bewusst Stack ENV |
paperless-gpt |
KI-Ergaenzung fuer Paperless | apps/paperless-gpt/docker-compose.yml |
https://paperless-gpt.kaleschke.info |
Paperless API, LLM/Ollama, Traefik | /mnt/user/appdata/paperless-gpt/data, /mnt/user/appdata/paperless-gpt/prompts |
Tier 2 | ja + Authelia | API Token als Stack ENV; OCR/LLM-Konfig bei Aenderungen pruefen |
immich_server |
Foto-/Video-App | apps/immich/docker-compose.yml |
https://immich.kaleschke.info |
Immich Postgres, Immich Redis, ML, Traefik | /mnt/user/photos/immich, /mnt/user/photos/family_archive |
Tier 2, Borg + immich.dump |
ja | native App-Auth; externes Fotoarchiv gemountet |
immich_postgres |
Immich-Datenbank | apps/immich/docker-compose.yml |
intern | immich_default |
/mnt/user/appdata/immich_postgres, immich_postgres_password.txt |
Dump immich.dump |
nein | nie ins frontend_net |
immich_redis |
Immich Cache | apps/immich/docker-compose.yml |
intern | immich_default |
kein kritischer Pfad dokumentiert | rebuildbar | nein | Architektur nennt anonymes Volume -> named volume als offenes Thema |
immich_machine_learning |
Immich ML | apps/immich/docker-compose.yml |
intern | immich_default |
model-cache |
rebuildbar | nein | intern-only |
mealie |
Rezeptverwaltung | apps/mealie/docker-compose.yml |
https://mealie.kaleschke.info |
mealie-postgres, Traefik |
/mnt/user/appdata/mealie/data |
Tier 2, Borg + mealie.dump |
ja | App + DB in internem Netz getrennt |
mealie-postgres |
Mealie-Datenbank | apps/mealie/docker-compose.yml |
intern | mealie_internal |
/mnt/user/appdata/mealie/postgres, mealie_postgres_password.txt |
Dump mealie.dump |
nein | interne DB |
mail-archiver |
Mail-Archivierung | apps/mail-archiver/docker-compose.yml |
https://mail.kaleschke.info |
PostgreSQL 17, Internet/IMAP, Traefik, Authelia | /mnt/user/appdata/mailarchiver/data-protection-keys |
Tier 2, postgresql17-mailarchiver.dump |
ja + Authelia | Hybrid-Dienst: frontend_net fuer Internet, backend_net fuer DB; App-eigene Auth bleibt zusaetzliche Schutzschicht |
nextcloud |
Datei-/Cloud-Dienst | apps/nextcloud/docker-compose.yml |
https://cloud.kaleschke.info |
eigene PostgreSQL, eigene Redis, Traefik | /mnt/user/appdata/nextcloud/html, /mnt/user/documents/nextcloud-data |
Tier 2, nextcloud.dump + Share |
ja | native App-Auth ohne zentrale ForwardAuth; WebDAV/CardDAV beachten |
nextcloud-postgres |
Nextcloud-Datenbank | apps/nextcloud/docker-compose.yml |
intern | nextcloud_internal |
/mnt/user/appdata/nextcloud/postgres, nextcloud_postgres_password.txt |
nextcloud.dump, raw DB nicht primaerer Restore-Weg |
nein | interne DB |
nextcloud-redis |
Nextcloud Cache/Locking | apps/nextcloud/docker-compose.yml |
intern | nextcloud_internal |
/mnt/user/appdata/nextcloud/redis |
Teil von Nextcloud-Restore | nein | interne Redis |
ntfy |
Push-Benachrichtigungen | apps/ntfy/docker-compose.yml |
https://ntfy.kaleschke.info |
Traefik, upstream mobile push | /mnt/user/appdata/ntfy |
Tier 2 | ja | NTFY_BEHIND_PROXY=true; Problem-Alerts gehen gebuendelt an homelab-alerts, optionale Erfolgsmeldungen an homelab-info |
bentopdf |
PDF-Tooling / Ersatz fuer Stirling-PDF | apps/bentopdf/docker-compose.yml |
https://pdf.kaleschke.info |
Traefik + Authelia | keine kritische Persistenz im Compose | Tier 3, rebuildbar | ja + Authelia | COOP/COEP per Middleware; fachliche Abnahme/Live-Status pruefen |
Operations / Monitoring / Admin
| 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 |
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 |
borg-ui |
Borg Backup-/Restore UI | ops/borg-ui/docker-compose.yml |
https://borg.kaleschke.info |
Traefik + Authelia, Borg repo credentials | /mnt/user/appdata/borg-ui/data, /mnt/user/backups/borg/dumps, Restore-Ziel |
Tier 3 / Backup kritisch, borg-ui.sqlite |
ja + Authelia | breite Mounts bewusst; /local/secrets im DR-Scope; Nextcloud-Daten werden read-only nach /local/nextcloud/data eingebunden |
uptime-kuma |
Monitoring / Uptime Checks | ops/uptime-kuma/docker-compose.yml |
https://uptime.kaleschke.info |
Traefik + Authelia | /mnt/user/appdata/uptime-kuma |
Tier 3, uptime-kuma.sqlite.dump |
ja + Authelia | Monitore nach Restore pruefen |
glances |
System-/Container-Monitoring | ops/glances/docker-compose.yml |
https://glances.kaleschke.info |
Docker socket, rootfs, Traefik + Authelia | kein kritischer Zustand | Tier 3, rebuildbar | ja + Authelia | Dokumentierte Host-Observability-Ausnahme: pid: host, /:/rootfs:ro, /var/run/docker.sock:/var/run/docker.sock:ro, /etc/os-release:/etc/os-release:ro; keine Appdaten ausserhalb /mnt/user/... |
scrutiny |
Laufwerks-/SMART-Monitoring | ops/scrutiny/docker-compose.yml |
https://scrutiny.kaleschke.info |
Device mounts, Traefik + Authelia | /mnt/user/appdata/scrutiny/config, /mnt/user/appdata/scrutiny/influxdb |
Tier 3, Metrics nicht kritisch | ja + Authelia | Dokumentierte Host-Observability-Ausnahme: privileged: true, /run/udev:/run/udev:ro, /dev/sdb:/dev/sdb, /dev/sdc:/dev/sdc, /dev/nvme0n1:/dev/nvme0n1; keine Appdaten ausserhalb /mnt/user/... |
speedtest-tracker |
Speedtest-Monitoring | ops/speedtest/docker-compose.yml |
https://speedtest.kaleschke.info |
Traefik + Authelia | /mnt/user/appdata/speedtest-tracker/config |
Tier 3, speedtest-tracker.sqlite.dump |
ja + Authelia | APP_KEY, ADMIN_PASSWORD Stack ENV |
filebrowser |
Datei-Browser fuer Documents/Photos/Projekte | ops/filebrowser/docker-compose.yml |
https://files.kaleschke.info |
Traefik + Authelia | /mnt/user/appdata/filebrowser/*, /mnt/user/documents, /mnt/user/photos, /mnt/user/projekte |
Tier 3, filebrowser.bolt.dump + Share |
ja + Authelia | Breiter Appdata-Mount entfernt; Secrets und Traefik-Dynamic-Config sind nicht mehr ueber Filebrowser gemountet |
code-server |
Web-Editor / Operations Workspace | ops/code-server/docker-compose.yml |
https://code.kaleschke.info |
Traefik + Authelia | /mnt/user/appdata/code-server, /mnt/user/services/dev |
Tier 3 | ja + Authelia | Passwort ueber LSIO FILE__PASSWORD; Workspaces beachten |
grafana |
abgeloester Altstand fuer Grafana/InfluxDB | ops/grafana-influxdb/docker-compose.yml |
https://grafana.kaleschke.info |
Traefik + Authelia, InfluxDB 3 Core | /mnt/user/appdata/grafana, Grafana provisioning |
Tier 3, grafana.sqlite |
ja + Authelia | Nicht parallel zum neuen monitoring/-Zielstack betreiben; bleibt vorerst als Rollback-/Migrationsreferenz |
influxdb3-core |
abgeloester Altstand fuer Home-Assistant-Langzeitdaten | ops/grafana-influxdb/docker-compose.yml |
LAN 8181 je INFLUXDB_BIND_IP, keine Public URL |
Grafana, Home Assistant Writer | /mnt/user/appdata/influxdb3/data, /mnt/user/appdata/influxdb3/plugins |
Tier 3 | nein | Nach erfolgreicher Migration durch monitoring-influxdb3-core ersetzen; alten Datenpfad nicht blind loeschen |
monitoring-grafana |
zentrale Observability-UI fuer Metriken, Logs und InfluxDB | monitoring/docker-compose.yml |
https://monitoring.kaleschke.info |
Traefik + Authelia, Prometheus, Loki, InfluxDB 3 Core | named volume grafana_data, Provisioning unter monitoring/grafana/provisioning, Dashboards unter monitoring/grafana/dashboards |
Tier 3, named volume | ja + Authelia | Admin-Passwort ueber monitoring_grafana_admin_password.txt; Zielbestand: Homelab / Availability, Homelab / Host Overview, Homelab / Containers + Logs, Traefik Official Standalone Dashboard; Dashboard-Importer ist optionales bootstrap-Profil fuer Traefik |
monitoring-prometheus |
Metrik-Speicher fuer Homelab-Monitoring | monitoring/docker-compose.yml, monitoring/prometheus/prometheus.yml, monitoring/prometheus/alerts.yml |
intern http://prometheus:9090 |
monitoring_net, node-exporter, cAdvisor, Traefik-Metrics, Blackbox Exporter, Alertmanager |
named volume prometheus_data |
Tier 3, transiente Metriken mit 30 Tagen Retention | nein | Scrapes: Prometheus, node-exporter, cAdvisor, Traefik :8082, blackbox-http; Prometheus-Regeln senden an Alertmanager und von dort nach ntfy |
monitoring-alertmanager |
Alert-Routing fuer Prometheus-Regeln | monitoring/docker-compose.yml, monitoring/alertmanager/alertmanager.yml |
intern :9093 |
Prometheus, ntfy Bridge | named volume alertmanager_data |
Tier 3 | nein | sendet firing und resolved Alerts an monitoring-alertmanager-ntfy-bridge |
monitoring-alertmanager-ntfy-bridge |
Alertmanager-Webhook nach ntfy Push | monitoring/docker-compose.yml, monitoring/alertmanager-ntfy-bridge/bridge.py |
intern :8080 |
Alertmanager, https://ntfy.kaleschke.info/homelab-alerts |
kein kritischer Zustand | rebuildbar | nein | formatiert Alertmanager JSON als ntfy Titel, Nachricht, Priority und Tags; keine Secrets |
monitoring-blackbox-exporter |
HTTP-Erreichbarkeitspruefungen fuer Uptime-Kuma-Abloesung | monitoring/docker-compose.yml, monitoring/blackbox/blackbox.yml |
intern :9115 |
Prometheus, externe HTTPS-Ziele | kein kritischer Zustand | rebuildbar | nein | Uptime Kuma erst nach sieben Tagen Parallelbetrieb und Grafana-Alerting-Paritaet stoppen |
monitoring-loki |
Logspeicher fuer Monitoring-Stack | monitoring/docker-compose.yml, monitoring/loki/loki-config.yml |
intern http://loki:3100 |
monitoring_net, Promtail, Grafana |
named volume loki_data |
Tier 3, transiente Logs mit 30 Tagen Retention | nein | Von bestehendem ops/loki getrennt; Doppelbetrieb bewusst pruefen |
monitoring-promtail |
Docker-Log-Collector fuer Monitoring-Loki | monitoring/docker-compose.yml, monitoring/promtail/promtail-config.yml |
intern | Docker socket read-only, Docker json-file Logs, Loki | named volume promtail_positions |
rebuildbar | nein | Dokumentierte Host-Observability-Ausnahme: /var/run/docker.sock:/var/run/docker.sock:ro und /var/lib/docker/containers:ro; keine Appdaten, nur Log-Discovery |
monitoring-node-exporter |
Host-Metriken fuer Prometheus | monitoring/docker-compose.yml |
intern :9100 |
Host /proc, /sys, / read-only, Prometheus |
kein kritischer Zustand | rebuildbar | nein | Host-Observability-Ausnahme mit read-only Rootfs/Proc/Sys-Mounts |
monitoring-cadvisor |
Container-Metriken fuer Prometheus | monitoring/docker-compose.yml |
intern :8080 |
Docker/Host read-only Mounts, Prometheus | kein kritischer Zustand | rebuildbar | nein | Host-Observability-Ausnahme fuer Container-Metriken; keine direkten Ports |
monitoring-influxdb3-core |
InfluxDB 3 Core fuer Home-Assistant-/Ecowitt-Langzeitdaten | monitoring/docker-compose.yml |
LAN 8181 je INFLUXDB_BIND_IP, keine Public URL |
Monitoring-Grafana, Home Assistant Writer | /mnt/user/appdata/influxdb3/data, /mnt/user/appdata/influxdb3/plugins |
Tier 3 | nein | LAN-only Host-Port-Ausnahme; user: "0" ist fuer den lokalen Object-Store-Pfad dokumentiert; uebernimmt den bisherigen InfluxDB-Daten-/Token-Katalog; 401 Unauthorized beim Curl ohne Token ist erwarteter Reachability-Test |
loki |
abgeloester Altstand fuer Container-Logs | ops/loki/docker-compose.yml, ops/loki/config/loki-config.yml |
intern http://loki:3100, keine Public URL |
backend_net, Grafana |
/mnt/user/appdata/loki/config, /mnt/user/appdata/loki/data |
Tier 3, transiente Logs mit 30 Tagen Retention | nein | Durch monitoring-loki ersetzen; nicht parallel betreiben, ausser bewusst zur Migration |
alloy |
abgeloester Altstand fuer Docker-Log-Collection | ops/loki/docker-compose.yml, ops/loki/config/config.alloy |
intern | Docker socket read-only, Loki, backend_net |
/mnt/user/appdata/alloy/config, /mnt/user/appdata/alloy/data |
rebuildbar | nein | Durch monitoring-promtail ersetzen; Socket-Ausnahme bleibt nur fuer aktive Collector relevant |
hermes-gateway |
Hermes Agent Gateway/API intern | ops/hermes-agent/docker-compose.yml |
intern 8642 auf hermes_net |
SSH Runner (VM 192.168.178.143), LLM Provider, optional Home Assistant | /mnt/user/appdata/hermes-agent/data, SSH key path |
Tier 3, Borg/Share | nein | NAS-Stack bleibt deaktiviert, solange die separate Hermes-VM/Runner-Seite nicht wiederhergestellt ist; kein Docker-Socket |
hermes-dashboard |
Hermes Dashboard | ops/hermes-agent/docker-compose.yml |
https://hermes.kaleschke.info via ${HERMES_DASHBOARD_HOST} |
hermes-gateway, Traefik + Authelia |
shared read-only data mount | Tier 3, Borg/Share | ja + Authelia | Compose-Profil dashboard; aktuell VM-seitig offen, nicht Teil des NAS-Finalstarts |
Host Operations
| Service | Zweck | Autoritativer Pfad | URL / Zugang | Abhaengigkeiten | Datenpfade | Backup / Restore | Traefik | Besonderheiten / TODOs |
|---|---|---|---|---|---|---|---|---|
posture-check |
Host-Posture-Audit fuer Filesystem, Mover-Drift, NVMe-SMART und Fuellstand | services/posture-check/posture-check.sh |
Unraid User-Script / Cron / Borg Pre-Hook | findmnt, df, nvme, optional curl fuer ntfy |
/mnt/user/services/posture-check/last.json |
Repo-Skript + letzter JSON-Status | nein | Muss auf dem Unraid-Host bei Boot, stuendlich und vor Borg laufen; ALLOW_DISK1_NTFS=1 ist die dokumentierte Uebergangsausnahme bis Disk1-Migration Phase 2; Warning/Critical alarmieren via ntfy |
docker-critical-events |
Live-Alarmierung fuer Docker die/oom/kill Events |
services/posture-check/docker-critical-events.sh |
Unraid User-Script / Hintergrundprozess | Docker CLI, ntfy | /mnt/user/services/posture-check/docker-critical-events-last.log |
Repo-Skript + letzter Event-Log | nein | Optional als Unraid User-Script at array start starten; sendet nach homelab-alerts |
Backup- und Restore-Hinweise
- Tier-1-Dienste stehen in
docs/RESTORE_MATRIX.mdunddocs/DISASTER_RECOVERY.md. - Dump-Erzeugung erfolgt host-seitig ueber
ops/borg-ui/scripts/pre-backup-dumps.sh. - Dump-Ziel:
/mnt/user/backups/borg/dumps/latest. - Raw Live-DB-Pfade sind meist nicht der primaere Restore-Weg; bevorzugt werden Dumps plus Appdaten.
- Borg UI nimmt bewusst
/local/secretsin den DR-Scope auf.
Logging-Resilienz
- Docker-Rohlogs bleiben die erste Fallback-Ebene:
docker logs <container>funktioniert unabhaengig von Loki/Grafana. - Loki-Chunks liegen unter
/mnt/user/appdata/loki/dataund koennen durch Neustart des internen Loki-Stacks wieder genutzt werden. - Host-Logs wie
/var/log/syslogunddmesgbleiben die Quelle fuer Kernel-, OOM- und Docker-Daemon-Ereignisse. - Critical-Events werden zusaetzlich ueber ntfy extern sichtbar, wenn
services/posture-check/docker-critical-events.shals Host-Watcher laeuft. - Docker
json-fileLogs werden auf Unraid nativ ueber/boot/config/docker.cfgbegrenzt. Aktiver Host-Stand:DOCKER_LOG_ROTATION="yes",DOCKER_LOG_SIZE="50m",DOCKER_LOG_FILES="1". Keine zusaetzliche/etc/docker/daemon.jsonsetzen, weil sie mit Unraids Docker-Startflags kollidieren kann.
Bekannte offene Fragen
- Authelia Repo-Baseline, Host-Config und Compose-Middlewares sollten bei Auth-Aenderungen explizit abgeglichen werden.
- Filebrowser-Mounts sind breit und bewusst, aber bei zukuenftigen Hardening-Sprints Kandidaten.
- Scrutiny bleibt privilegiert; nur mit klarer Begruendung aendern.
- BentoPDF ersetzt Stirling-PDF produktiv. Hermes ist VM-seitig offen und auf dem NAS bewusst nicht gestartet.