Aktualisierung
Aktualisierung meiner Doku
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
> **Single Source of Truth** für Docker-Netzwerkarchitektur, Sicherheitsregeln, Zielbild und Migration des Kallilabcore-Homelabs.
|
||||
> **Arbeitsregel für KI-Assistenten:** Dieses Dokument immer zuerst lesen, bevor Fragen zu Containern, Netzwerken, Traefik, Tailscale, Migration oder Security beantwortet werden.
|
||||
|
||||
**Stand:** 2026-03-29 | **Aktueller Sprint:** 7 (Authelia SSO/2FA) — Sprints 1–6 abgeschlossen
|
||||
**Stand:** 2026-04-15 | **Aktueller Schwerpunkt:** GitOps / Borg / Workflow-Konsolidierung
|
||||
|
||||
---
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
| TLS | Let's Encrypt via Cloudflare DNS Challenge |
|
||||
| Certresolver | `le` |
|
||||
| Compose-Standard | Komodo (GitOps, Stack aus Gitea) |
|
||||
| Legacy | Portainer CE (in Ablösung durch Komodo, Sprint 5) |
|
||||
| Legacy | Portainer CE entfernt; Komodo ist alleiniger Stack-Manager |
|
||||
| Homelab-Compose-Pfad | `/mnt/user/services/homelab/` |
|
||||
| Secrets-Pfad | `/mnt/user/appdata/secrets/` |
|
||||
| Grundsatz | Keine neuen Dockerman-Einzelcontainer |
|
||||
@@ -66,7 +66,7 @@ Komodo, filebrowser, scrutiny, UptimeKuma, code-server, Traefik-Dashboard, backr
|
||||
Alle produktiven Container werden als Compose verwaltet. Bestehende Dockerman-/Ad-hoc-Container werden schrittweise migriert.
|
||||
|
||||
### P6 — Secrets nie im Klartext
|
||||
Passwörter, Tokens und API-Keys gehören in Secret-Dateien unter `/mnt/user/appdata/secrets/` oder als Komodo/Portainer Environment Variables mit `${VARIABLE}` in der Compose.
|
||||
Passwörter, Tokens und API-Keys gehören in Secret-Dateien unter `/mnt/user/appdata/secrets/` oder als Komodo Stack Environment Variables mit `${VARIABLE}` in der Compose.
|
||||
|
||||
### P7 — `restart: unless-stopped` ist Pflichtstandard
|
||||
Jeder produktive Container nutzt `restart: unless-stopped`, außer eine Ausnahme ist dokumentiert.
|
||||
@@ -74,7 +74,7 @@ Jeder produktive Container nutzt `restart: unless-stopped`, außer eine Ausnahme
|
||||
### P8 — Least Privilege
|
||||
- `security_opt: ["no-new-privileges:true"]` standardmäßig ergänzen
|
||||
- `privileged: true` nur mit dokumentierter Begründung
|
||||
- Docker-Socket standardmäßig vorsichtig behandeln; **Komodo/PortainerCE sind dokumentierte Ausnahmen**
|
||||
- Docker-Socket standardmäßig vorsichtig behandeln; **Komodo ist dokumentierte Ausnahme**
|
||||
|
||||
---
|
||||
|
||||
@@ -166,7 +166,7 @@ Wenn ein Dienst im `frontend_net` hängt, heißt das **nicht automatisch öffent
|
||||
1. Keine produktiven Dienste im Docker-Default-`bridge`
|
||||
2. Keine direkten Host-Ports für Web-UIs außer dokumentierte Ausnahmen
|
||||
3. `restart: unless-stopped` als Standard
|
||||
4. Secrets als Datei / `_FILE` oder Komodo/Portainer Environment Variables mit `${VAR}`
|
||||
4. Secrets als Datei / `_FILE` oder Komodo Stack Environment Variables mit `${VAR}`
|
||||
5. `no-new-privileges:true` ergänzen, wo praktikabel
|
||||
6. `traefik.docker.network=frontend_net` immer explizit setzen
|
||||
7. Admin-Dienste immer mit `dashboard-auth@file,secure-headers@file`
|
||||
@@ -262,7 +262,7 @@ Legende Status:
|
||||
|---|---|---|---|---|---|
|
||||
| `komodo` | ✅ | `frontend_net` | Traefik + Middleware | primärer GitOps-Stack-Manager | — |
|
||||
| `code-server` | ✅ | `frontend_net` | Traefik + Middleware | `PASSWORD_FILE` aktiv | — |
|
||||
| `PortainerCE` | ⚠️ Legacy | `frontend_net` | Traefik + Middleware | wird durch Komodo abgelöst | abschalten Sprint 5 |
|
||||
| `PortainerCE` | ❌ entfernt | - | - | 2026-03-29 abgeschaltet | historisch; nicht mehr deployen |
|
||||
| `filebrowser` | ✅ | `frontend_net` | Traefik + Middleware | aktiv via `files.kaleschke.info` | Mounts einschränken (Block F) |
|
||||
| `borg-ui` | 🔄 | `frontend_net` | Traefik + Middleware | Git-Stack für Borg/BorgBase-Backups; Borg UI bündelt Borg-CLI im Container | BorgBase-SSH-Key hinterlegen, erstes Repo initialisieren, Quell-Mounts bei Bedarf gezielt erweitern |
|
||||
| `mail-archiver` | ✅ | `frontend_net`, `backend_net` | intern | IMAP-Abruf + DB-Zugang, kein öffentlicher Zugang | — |
|
||||
@@ -281,7 +281,7 @@ Legende Status:
|
||||
| Container | Status | Ziel |
|
||||
|---|---|---|
|
||||
| `Plex-Media-Server` | ⏳ Dockerman | Compose-Migration, `host`-Netz bleibt (Discovery) |
|
||||
| `PortainerCE` | ⚠️ Legacy | abschalten nach vollständiger Komodo-Übernahme |
|
||||
| `PortainerCE` | ✅ abgeschlossen | 2026-03-29 abgeschaltet |
|
||||
|
||||
### 7.8 Entfernte Container
|
||||
|
||||
@@ -300,6 +300,7 @@ Legende Status:
|
||||
| `netalertx` | 2026-03-28 | nicht mehr aktiv |
|
||||
| `luckyBackup` | 2026-03-28 | nicht mehr aktiv; Backup via backrest |
|
||||
| `Stash` | 2026-03-28 | nicht mehr aktiv |
|
||||
| `PortainerCE` | 2026-03-29 | abgeschaltet; Komodo ist alleiniger Stack-Manager |
|
||||
|
||||
---
|
||||
|
||||
@@ -444,7 +445,6 @@ labels:
|
||||
| `scrutiny` | `privileged: true` | SMART-Datenzugriff auf Laufwerke |
|
||||
| `beszel-agent` | `host` | direkter Host-Zugriff für System-Monitoring nötig |
|
||||
| `Komodo` | Docker-Socket Zugriff | Stack-Deployments benötigen Socket |
|
||||
| `PortainerCE` | Docker-Socket | Legacy-UI; wird durch Komodo abgelöst |
|
||||
| `gitea` | SSH-Port 222 direkt gebunden | Git-SSH-Zugang; kein HTTP-Proxy für SSH möglich |
|
||||
| `ddns-updater` | bleibt in `frontend_net` statt `backend_net` | braucht Cloudflare-API-Zugang; `backend_net` ist `internal: true` |
|
||||
| `mail-archiver` | `frontend_net` + `backend_net` | braucht Internetzugang für IMAP-Abruf (GMX, Gmail) und DB-Zugang |
|
||||
@@ -479,10 +479,18 @@ Dieses Projekt wird **blockweise** umgesetzt, nicht wild containerweise.
|
||||
7. erst dann nächster Schritt
|
||||
|
||||
### 11.4 Source-of-Truth-Hierarchie
|
||||
1. **Dieses Dokument**
|
||||
2. Compose-Dateien im Git-Repo
|
||||
3. operative Checklisten
|
||||
4. ad-hoc Notizen / Chat
|
||||
1. **Gitea Online (origin/master)**
|
||||
2. lokaler Clone / GitHub Desktop
|
||||
3. Compose-Dateien im Git-Repo
|
||||
4. Komodo als Deploy-Consumer
|
||||
5. operative Checklisten und Notizen
|
||||
|
||||
### 11.5 Operativer Git-Workflow
|
||||
- Gitea Online ist der verbindliche Sollzustand.
|
||||
- Lokal wird standardmäßig über GitHub Desktop gearbeitet.
|
||||
- Komodo deployt aus Gitea und ist kein Bearbeitungsort.
|
||||
- Webhooks sind aktiv: Ein Push kann unmittelbar einen Komodo-Deploy auslösen.
|
||||
- Wenn online in Gitea editiert wurde, muss vor der nächsten lokalen Änderung zuerst Fetch origin und danach Pull origin erfolgen.
|
||||
|
||||
---
|
||||
|
||||
@@ -518,9 +526,9 @@ Komodo ist nun der primäre GitOps-Stack-Manager:
|
||||
- **Komodo Core** läuft als Docker-Stack (`ops/komodo/docker-compose.yml`)
|
||||
- **Komodo Periphery** läuft auf dem Unraid-Host für direktes Server-Management
|
||||
- Stacks werden via Gitea synchronisiert und über Komodo deployed
|
||||
- Portainer CE läuft noch als Legacy-UI und wird in Sprint 5 abgeschaltet
|
||||
- Portainer CE ist abgeschaltet; Komodo ist der alleinige aktive Stack-Manager
|
||||
|
||||
**Vorteil gegenüber Portainer:** Sauberer GitOps-Flow ohne Web-Editor; alle Stack-Änderungen laufen über Git.
|
||||
**Betriebsregel:** Alle Stack-Änderungen laufen über Git; Komodo konsumiert nur den Stand aus Gitea.
|
||||
|
||||
### AdGuard Home — Ablösung von Pi-hole (2026-03-28)
|
||||
`binhex-official-pihole` wurde entfernt und durch `AdGuard Home` + `unbound` ersetzt:
|
||||
|
||||
Reference in New Issue
Block a user