3bd35434d66b0859da4b5f3fc5f34fa22d290ec8
Setup-Pfad final geworden, vier Reparaturen unterwegs: 1. EAI_AGAIN: Container kann git.kaleschke.info nicht aufloesen -> --add-host (analog zur Komodo-extra_hosts) 2. Token-Sichtbarkeit in ps/inspect -> --env-file mit 0600 tempfile 3. EACCES auf State-Mount: Renovate-Image laeuft als uid 12021 -> chmod 0777 auf /mnt/user/services/renovate/state 4. "Repository does not permit pull or push": Renovate-Source- Code (lib/modules/platform/gitea/index.ts) prueft hardcoded repo.permissions.push aus der Gitea-API. Mein initialer SQL-INSERT in die collaboration-Tabelle hatte den Gitea- In-Memory-Permission-Cache nicht aktualisiert; Operator- UI-Klick "Entfernen + neu hinzufuegen" loeste den Cache- Refresh. Konfigurations-Trennung: - renovate.json (Repo): nur Repo-Settings (extends, packageRules, ignorePaths, manager file patterns, labels) - ops/renovate/bot-config.js: Bot-Settings (platform, endpoint, autodiscover=false, repositories=[Micha/homelab-infra], Concurrent-Limits) Bot-Felder in renovate.json fuehren zu "Repository is forbidden, status: disabled" weil Renovate die Repo-Config nicht als Bot- Config wertet. Erstlauf am 2026-05-29: 5 PRs, 1 Dependency-Dashboard, 8 Branches. Komodo-Major bleibt durch packageRule deaktiviert wie erwartet. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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.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. nextcloud,bentopdfundmonitoringfolgen dem dokumentierten Netz-/Secret-/Traefik-Modell; der zentrale Monitoring-Stack buendelt Prometheus, Loki, Promtail, Grafana und InfluxDB 3 Core.
Description
Languages
Shell
68%
PowerShell
25.7%
Python
5.6%
JavaScript
0.4%
Dockerfile
0.3%