HOMELAB_ARCHITECTURE_MASTER_V2.md aktualisiert

This commit is contained in:
2026-03-25 19:15:41 +00:00
parent 73137b78d9
commit c3c6c3359d
+84
View File
@@ -548,6 +548,90 @@ Damit ist sofort klar:
- welche Ausnahmen bewusst dokumentiert sind
---
## ⚠️ Erweiterte Learnings (Portainer + GitOps)
### Secrets in Portainer Git-Stacks
Bei Deployments über Portainer mit Git-Repositories gilt:
* Host-Pfade in `env_file` (z. B. `/mnt/...`) sind **nicht verfügbar**
* Portainer-Container hat keinen Zugriff auf diese Pfade
#### Konsequenz
* `env_file` ist für Secrets ungeeignet in diesem Setup
#### Standardlösung
* Verwendung von **Portainer Environment Variables**
* Compose nutzt Variablen:
* `POSTGRES_PASSWORD: ${VARIABLE_NAME}`
👉 Ergebnis:
* keine Secrets im Git
* funktionierender Git-Deployment-Flow
---
### Umgang mit `_FILE` Variablen
Nicht alle Container unterstützen `_FILE`-basierte Secrets.
#### Übersicht
* Vaultwarden → unterstützt `_FILE`
* PostgreSQL → unterstützt `_FILE`
* Mealie → unterstützt `_FILE` **nicht**
#### Regel
* Wenn `_FILE` nicht unterstützt wird:
→ Nutzung von Environment Variables über Portainer
---
### Netzwerk-Standard für Apps mit Datenbanken
#### Architektur-Regel
* App → `frontend_net` + internes Netzwerk
* Datenbank → nur internes Netzwerk (`internal: true`)
#### Beispiel (Mealie)
* `mealie``frontend_net` + `mealie_internal`
* `mealie-postgres` → nur `mealie_internal`
👉 Vorteil:
* Datenbank vollständig isoliert
* keine externe Erreichbarkeit möglich
---
### Migrations-Standard für kritische Services
Bei Änderungen an Datenbanken oder Core-Services:
#### Vorgehen
1. Backup erstellen (`pg_dumpall`)
2. aktuellen Zustand sichern (`docker inspect`)
3. neue Compose in Git definieren
4. Container stoppen & entfernen
5. neuen Stack deployen
6. Funktion prüfen (Logs + abhängige Services)
#### Grundsatz
* Daten liegen im Volume → bleiben erhalten
* Container sind austauschbar
👉 Ziel:
* risikoarme Migration ohne Datenverlust
## Schlussformel