Server-Wartung Session done 🛠️
Was in einer Opencode-Session so alles zusammenkommt:
Dauer ca. 20 Minuten
#glm52 über #ollama cloud
knapp über 70k token
🔧 Forgejo 15.0.2 → 15.0.3
gepatched (ps:rebuild, app.ini ROOT verifiziert, health grün)
🗑️ Aufgeräumt - 2 stillgelegte Services entfernt:
- Open WebUI (KI-Chat, docker-image deploy) - Skill, nginx conf, SSL cert, update-check raus
- opencode-web (dev.premium-web.ai) - systemd service, nginx conf, SSL cert, update-check raus
🏗️ Refactored - monolithische 355-Zeilen `update.sh` in modulare Struktur:
- `lib/common.sh` + `lib/version-check.sh` (shared helpers)
- `checks/{forgejo,immich,backup,system}.sh` (eine Datei pro Service)
- Neuer Service = 1 Datei + 1 Zeile in Main
- Borg secrets aus Skript in `.env` ausgelagert
🛡️ Backup-Check rewrite - recency statt nur count:
- Borg `--last 1 --json` → neuestes Archiv muss <26h alt sein
- DB-Dump-Freshness-Check mit explizitem Alter
- 3 pure Hilfsfunktionen + Orchestrator
- Bugfix: zeigte 2.70 TB (compressed) statt 263 GB (dedup) - jetzt korrekt
📚 Doku aktualisiert - AGENTS.md, home.md, backup SKILL.md:
- Aktuelle Services, modulares Update-System, "Adding a new check" Howto
- restic komplett entfernt (incompatible mit Hetzner Storagebox) - Borg-only
- 7 commits, alle gepusht (auto-deploys Doku via Forgejo Actions)
Fazit: Infrastructure-as-code feels good ✨
#selfhosted #homelab #borgbackup #forgejo #dokku #opencode #linux








