bcb2bf81a8
Document Authelia without Redis session backend
13 KiB
13 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 ist dokumentierte Ausnahme |
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, SQLite in /data |
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 | /mnt/user/appdata/authelia/config, Authelia Secret-Dateien |
Tier 1, config + DB + secrets | ja | Bewusst ohne Redis-Session-Backend; Template im Repo, Host-Datei pruefen; 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 | 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 | /mnt/user/appdata/mailarchiver/data-protection-keys |
Tier 2, postgresql17-mailarchiver.dump |
ja | Hybrid-Dienst: frontend_net fuer Internet, backend_net fuer DB |
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, Share + app-eigene DB | 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 |
Teil von Nextcloud-Restore | 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; Monitoring/Borg-Benachrichtigungen |
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, Docker socket read-only, viele API Tokens | /mnt/user/appdata/homepage, /mnt/user/appdata/homepage/images |
Tier 2 | ja + Authelia laut Compose | Authelia Template listet home als bypass; abgleichen |
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 | ja + Authelia | breite Mounts bewusst; /local/secrets im DR-Scope |
backrest |
Backup-Admin-Dienst / Legacy-Backup-Ebene | ops/backrest/docker-compose.yml |
https://backrest.kaleschke.info |
Traefik + Authelia, Repo/SSH-Mounts | /mnt/user/appdata/backrest/*, broad source mounts |
Tier 3 | ja + Authelia | breite Mounts bewusst dokumentieren |
uptime-kuma |
Monitoring / Uptime Checks | ops/uptime-kuma/docker-compose.yml |
https://uptime.kaleschke.info |
Traefik + Authelia | /mnt/user/appdata/uptime-kuma |
Tier 3 | 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 | Rootfs und Docker-Socket Mounts |
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 | privileged: true dokumentierte Ausnahme |
speedtest-tracker |
Speedtest-Monitoring | ops/speedtest/docker-compose.yml |
https://speedtest.kaleschke.info |
Traefik + Authelia | /mnt/user/appdata/speedtest-tracker/config |
Tier 3 | ja + Authelia | APP_KEY, ADMIN_PASSWORD Stack ENV |
filebrowser |
Datei-Browser fuer Appdata | ops/filebrowser/docker-compose.yml |
https://files.kaleschke.info |
Traefik + Authelia | /mnt/user/appdata/filebrowser/*, breiter /mnt/user/appdata Mount |
Tier 3 | ja + Authelia | Mounts langfristig einschraenken |
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 | PASSWORD_FILE; Workspaces beachten |
grafana |
Metrik-Dashboard | ops/grafana-influxdb/docker-compose.yml |
https://grafana.kaleschke.info |
Traefik + Authelia, InfluxDB 3 Core | /mnt/user/appdata/grafana, Grafana provisioning |
Tier 3 | ja + Authelia | Datasource wird provisioniert, Token ueber Secret |
influxdb3-core |
Zeitreihen-/Metrikdaten fuer Grafana und Home Assistant | 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 | LAN-only Host-Port-Ausnahme; 401 Unauthorized beim Curl ohne Token ist erwarteter Reachability-Test |
hermes-gateway |
Hermes Agent Gateway/API intern | ops/hermes-agent/docker-compose.yml |
intern 8642 auf hermes_net |
SSH Runner, LLM Provider, optional Home Assistant | /mnt/user/appdata/hermes-agent/data, SSH key path |
noch nicht in Restore Matrix | nein | kein Docker socket; terminal backend ssh; echte .env auf Host-Appdata |
hermes-dashboard |
Hermes Dashboard | ops/hermes-agent/docker-compose.yml |
${HERMES_DASHBOARD_HOST} |
hermes-gateway, Traefik + Authelia |
shared read-only data mount | noch nicht in Restore Matrix | ja + Authelia | Compose-Profil dashboard; Live-Status pruefen |
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.
Bekannte offene Fragen
- Hermes Agent ist dokumentiert, aber noch nicht vollstaendig in Restore Matrix / DR Bootstrap eingeordnet.
- Authelia Template vs. Compose-Middleware sollte bei Auth-Aenderungen explizit abgeglichen werden.
- Filebrowser- und Backrest-Mounts sind breit und bewusst, aber bei zukuenftigen Hardening-Sprints Kandidaten.
- Scrutiny bleibt privilegiert; nur mit klarer Begruendung aendern.
- BentoPDF und Hermes Dashboard koennen je nach Live-Stand vorbereitet statt produktiv sein.