53c34dca0e7a236151c8b7fd0063d0d30cba7f2e
Erster Lauf am 2026-06-03 lief sauber durch alle Phasen (Borg-Extract, pg_restore, Container alle gesund), schlug aber im HTTP-Smoke mit 503 fehl. Ursache (aus dem preserved /mnt/user/backups/restore-lab/_failed/...): - OC_Util.php:486 prueft die Permissions der data-Dir - Skript hatte chmod -R a+rwX gesetzt (0777, letzte Stelle 7) - Nextcloud versucht selbst chmod(0770) als www-data im Container - Unraids shfs/FUSE lehnt chmod von Non-Root ab - Nextcloud meldet "data directory readable by other people" -> 503 Fix: in der gepatchten config.php zusaetzlich 'check_data_directory_permissions' => false setzen. Nextcloud bietet das in OC_Util:480 explizit als Opt-out an, fuer den isolierten Smoke mit Wegwerf-Daten ist das vertretbar (kein Public, kein Traefik). Produktiv bleibt der Check natuerlich an. Patching erfolgt im bestehenden PHP-Injection-Block; idempotent (laeuft keine Aenderung wenn beide Keys schon im config.php sind). Fallback- sed-Pfad fuer Hosts ohne php ebenfalls erweitert.
Homelab Infrastructure (KalliLab CORE)
Dieses Repository ist die zentrale Quelle ("Single Source of Truth") fuer die komplette Infrastruktur meines Homelabs.
WICHTIG - Einstieg
Vor jeder Aenderung lesen:
HOMELAB_ARCHITECTURE_MASTER_V2.mddocs/WORKFLOW.mddocs/README.md
Bei Restore-, Host-Ausfall- oder Wiederanlauf-Fragen zusaetzlich:
docs/DISASTER_RECOVERY.mddocs/RESTORE_MATRIX.mddocs/SERVICES_RECOVERY.md
Bei Hardware-, Netzwerk-, Provider- oder Kapazitaetsfragen zusaetzlich:
docs/HARDWARE_INVENTORY.mddocs/NETWORK_INVENTORY.mddocs/EXTERNAL_DEPENDENCIES.mddocs/CAPACITY_AND_LIFECYCLE.md
Architektur
- Host: Unraid
- Container: Docker Compose
- Reverse Proxy: Traefik v3 (Service-Routing via Docker-Labels, File-Provider nur fuer zentrale Dynamic-Config)
- Zugriff: Tailscale (VPN)
- DNS: AdGuard Home + Unbound
- GitOps: Gitea + Komodo
Grundprinzipien
- Gitea Online ist der operative Sollzustand.
- Der lokale Clone ist die Arbeitskopie.
- Komodo deployed automatisch aus Gitea und ist kein Bearbeitungsort.
- Keine produktiven Container ausserhalb von Compose.
- Traefik ist der einzige oeffentliche Einstiegspunkt.
- Secrets werden niemals im Repository gespeichert.
Repository-Struktur
core/-> Basisdienste (Gitea)security/-> sicherheitskritische Diensteinfra/-> Datenbanken und technische Servicesapps/-> Anwendungenops/-> operative Toolsmonitoring/-> zentraler Observability-Stackhost-services/-> Dienste mit Host-Netztraefik/-> Reverse Proxy Konfigurationdocs/-> Dokumentation und Prozesseenv/-> Beispiel-Umgebungsvariablen
Kurz-Workflow
- In GitHub Desktop
Fetch origin. - Wenn noetig
Pull origin. - Lokal aendern.
- Commit erstellen.
Push origin.- Komodo-Webhook und Ergebnis pruefen.
- Doku bei Bedarf aktualisieren.
Status
- Komodo ist der primaere und einzige produktive Stack-Manager.
- Komodo bleibt bewusst bei nativer Authentifizierung; zentrale Traefik-Auth wird dort nicht pauschal vorgeschaltet.
- Portainer CE ist abgeschaltet und kein Teil des aktiven Betriebs mehr.
- Glance ist das aktive produktive Homelab-Dashboard.
- Traefik
dynamic/bleibt eine dokumentierte manuelle Host-Sync-Ausnahme ausserhalb des normalen Komodo-Deployments. - Mutable Image-Tags sind auf die aktuell laufenden Digests eingefroren; echte Versions-Upgrades erfolgen bewusst separat.
- Disaster-Recovery und dienstspezifische Restore-Quellen sind in
docs/DISASTER_RECOVERY.mdunddocs/RESTORE_MATRIX.mdbeschrieben. - Recovery-kritische Services-Pfade wie Gitea-Repositories, Komodo-Workspaces und Host-Automation sind in
docs/SERVICES_RECOVERY.mdbeschrieben. - Hardware-, Netzwerk-, Provider- und Capacity-Inventare sind als operative Audit-Dokumente unter
docs/HARDWARE_INVENTORY.md,docs/NETWORK_INVENTORY.md,docs/EXTERNAL_DEPENDENCIES.mdunddocs/CAPACITY_AND_LIFECYCLE.mdvorbereitet. - Der verbindliche Detailablauf steht in
docs/WORKFLOW.md. - Der Doku-Index mit aktiven und archivierten Dokumenten steht in
docs/README.md. nextcloud,bentopdfundmonitoringfolgen dem dokumentierten Netz-/Secret-/Traefik-Modell; der zentrale Monitoring-Stack buendelt Prometheus, Loki, Promtail, Grafana und InfluxDB 3 Core.
Description
Languages
Shell
73.2%
PowerShell
21.5%
Python
3.5%
CSS
1.3%
JavaScript
0.3%
Other
0.2%