Commit Graph

50 Commits

Author SHA1 Message Date
Micha bdef0afcb9 Add AI handoff summary 2026-05-06 19:07:45 +02:00
Micha e0e12f1173 Document stale Komodo webhook cleanup 2026-05-06 18:55:56 +02:00
Micha 403b5fa77c Clarify Komodo webhook secret handling 2026-05-06 18:53:47 +02:00
Micha 9b4d37ca81 Split Komodo webhook secret 2026-05-06 18:50:14 +02:00
Micha 014e51fd67 Configure Authelia GMX SMTP notifier 2026-05-06 18:41:24 +02:00
Micha f94a55e093 Protect mail archiver and document Hermes restore 2026-05-06 18:23:01 +02:00
Micha bdba76cebc Clean up compose metadata and placeholders 2026-05-05 20:16:48 +02:00
Micha 78b9a6e362 Pin versioned app image digests 2026-05-05 20:13:49 +02:00
Micha 374a3198ed Document ops exceptions and Hermes route 2026-05-05 19:42:42 +02:00
Micha 986d8dd3f5 Pin stateful service image digests 2026-05-05 19:33:28 +02:00
Micha d6e686ae80 Document Authelia host ACL merge 2026-05-04 20:27:07 +02:00
Micha b1fbb310fb Document Komodo self-stack drift recovery 2026-05-04 20:21:23 +02:00
Micha f858da484b Clarify Authelia config source and ACLs
Clarify Authelia config source and ACLs
2026-05-04 19:57:45 +02:00
Micha 197454931f Ignore local env files and template Hermes stack env
Ignore local env files and template Hermes stack env
2026-05-04 19:54:28 +02:00
Micha bcb2bf81a8 Document Authelia without Redis session backend
Document Authelia without Redis session backend
2026-05-04 19:51:44 +02:00
Micha b45c406975 Claude ready
Claude ready
2026-05-04 15:42:48 +02:00
Micha 821fe99807 Document GitOps drift recovery and InfluxDB LAN access 2026-05-04 15:23:49 +02:00
Micha 2f7b1a0aa2 Prepare Home Assistant weather export to InfluxDB
Prepare Home Assistant weather export to InfluxDB
2026-05-04 13:29:06 +02:00
Micha fe13609292 Prepare Komodo v2 upgrade 2026-05-04 10:10:10 +02:00
Micha 0780d1eae1 Use host path for Grafana provisioning
Use host path for Grafana provisioning
2026-04-30 11:41:14 +02:00
Micha c736aadf1e Use file secret for Grafana InfluxDB token
Use file secret for Grafana InfluxDB token
2026-04-30 11:27:06 +02:00
Micha 8a43914d05 Prepare BentoPDF and Grafana InfluxDB stacks
Prepare BentoPDF and Grafana InfluxDB stacks
2026-04-30 10:29:53 +02:00
Micha fc38fb2ab6 hermes installation
hermes
2026-04-20 19:10:28 +02:00
Micha fbdb017c08 Add Nextcloud and Stirling PDF with repo-aligned networking and docs
Add Nextcloud and Stirling PDF with repo-aligned networking and docs
2026-04-19 20:16:13 +02:00
Micha 054e674d55 update
update
2026-04-19 18:42:56 +02:00
Micha f7927b95f4 update
update
2026-04-19 14:38:58 +02:00
Micha 57ddb56ec9 repair
repair
2026-04-19 10:18:12 +02:00
Micha 0648201f79 gpt repair
gpt repair
2026-04-19 10:07:12 +02:00
Micha fc2793f2b8 korrektur
korrektur
2026-04-19 09:58:50 +02:00
Micha 317c56b8de recovery
recovery plan
2026-04-18 10:05:53 +02:00
Micha 0e68ce489f Erklärung Paperless
Paperless Erklärung
2026-04-17 13:15:20 +02:00
Micha 85a8d0c2f2 Protect Traefik dashboard with Authelia
Protect Traefik dashboard with Authelia
2026-04-17 13:11:43 +02:00
Micha 718305cb98 Update Doku
Update Docu
2026-04-17 11:29:38 +02:00
Micha 96d9015867 Harden code-server and move Redis password to secret file
Harden code-server and move Redis password to secret file
2026-04-17 07:56:29 +02:00
Micha bbdf2ffb60 updates
Repo sauber machen
2026-04-15 13:40:03 +02:00
Micha d362a9ab4c Aktualisierung
Aktualisierung meiner Doku
2026-04-15 12:21:02 +02:00
Micha 96984ca0de Finish merge and update borg-ui backup mounts 2026-04-12 17:49:44 +02:00
Micha 88c07e7d66 docs/WORKFLOW.md aktualisiert 2026-03-30 08:53:45 +00:00
Micha 430d2e3919 docs/WORKFLOW.md aktualisiert 2026-03-28 19:47:07 +00:00
Micha aa308bdf73 docs/SECRETS_MAP.md aktualisiert 2026-03-28 19:46:15 +00:00
Micha 40b0734d0d docs/ROLLBACK.md aktualisiert 2026-03-28 19:45:47 +00:00
Micha 681ea211ce docs/MIGRATION_LOG.md aktualisiert 2026-03-28 19:45:17 +00:00
Micha 73137b78d9 Migration Log – 2026-03-25
# 🗓️ Migration Log – 2026-03-25

## 🔧 Ziel der Session

* Bereinigung und Härtung der bestehenden Container-Architektur
* Umstellung auf Git-basierte Stacks (Gitea + Portainer)
* Entfernung unnötiger Angriffsflächen (Ports, bridge-Netzwerke)

---

## 🔐 Vaultwarden – Finalisierung

### Änderungen

* Migration auf `frontend_net`
* Entfernung von Host-Port
* Integration über Traefik (`vault.kaleschke.info`)
* Nutzung von `ADMIN_TOKEN_FILE` statt Klartext
* Entfernung alter `config.json`

### Ergebnis

* sauberer, sicherer Betrieb
* keine Secrets im Klartext
* reproduzierbar über Git

---

## 🗄️ PostgreSQL (postgresql17) – Migration

### Ausgangszustand

* lief als Einzelcontainer
* im `bridge` Netzwerk
* Port `5432` öffentlich
* Passwort im Klartext sichtbar

### Änderungen

* Migration in Git-Stack (`infra/postgresql17`)
* Entfernung von Port-Binding (`5432`)
* nur noch im `backend_net`
* Einführung von Secret-Datei (`POSTGRES_PASSWORD_FILE`)
* Restart-Policy auf `unless-stopped`

### Vorgehen

1. Backup via `pg_dumpall`
2. Zustand via `docker inspect` gesichert
3. Container gestoppt & entfernt
4. neuer Stack über Gitea deployed
5. Funktion geprüft (DB + abhängige Services)

### Ergebnis

* Daten unverändert erhalten
* kein externer Zugriff mehr möglich
* zentrale DB für:

  * mail-archiver
  * paperless-ngx

---

## 🍽️ Mealie – Neuaufbau

### Ausgangszustand

* Zugriff über Port `9935`
* DB im `frontend_net`
* Klartext-Passwort in Compose
* kein Traefik

### Änderungen

#### Architektur

* Einführung von `mealie_internal` Netzwerk
* `mealie-postgres` nur noch intern erreichbar
* `mealie` in:

  * `frontend_net` (Traefik)
  * `mealie_internal` (DB)

#### Zugriff

* Entfernung von Port `9935`
* Integration über Traefik (`mealie.kaleschke.info`)

#### Secrets

* Entfernung von Klartext-Passwort aus Compose
* Nutzung von Portainer Environment Variable:

  * `MEALIE_DB_PASSWORD`

### Besonderheit

* `env_file` mit Host-Pfad funktionierte nicht
* Ursache: Portainer Git-Stacks haben keinen Zugriff auf `/mnt/...`

### Lösung

* Secrets über Portainer UI verwaltet
* Compose nutzt `${MEALIE_DB_PASSWORD}`

### Ergebnis

* saubere Trennung von App und DB
* keine offenen Ports
* Git-Repo ohne Secrets

---

## 🔁 DIUN

### Änderungen

* Integration ins `frontend_net`
* Nutzung von Container-Namen für Gotify

---

## ⚠️ Wichtige Learnings

### Portainer + Git + env_file

* Host-Pfade (`/mnt/...`) sind nicht erreichbar
* `env_file` daher ungeeignet

👉 Lösung:

* Nutzung von Portainer Environment Variables

---

### `_FILE` Support ist nicht universell

* Vaultwarden → unterstützt `_FILE`
* PostgreSQL → unterstützt `_FILE`
* Mealie → unterstützt `_FILE` **nicht**

---

### Migration ohne Risiko

* Daten liegen immer im Volume
* Container können jederzeit neu gebaut werden
* Backup + Inspect vor Änderung ist Pflicht

---

## 🏁 Fazit

Alle kritischen Services wurden erfolgreich:

* abgesichert
* strukturiert
* in Git überführt

👉 System ist jetzt:

* reproduzierbar
* deutlich sicherer
* architektonisch sauber
2026-03-25 19:13:35 +00:00
Micha 5027422629 docs/MIGRATION_LOG.md aktualisiert 2026-03-25 19:07:03 +00:00
Micha a9f5496c12 docs/WORKFLOW.md hinzugefügt
Add GitOps workflow and no-drift rules
2026-03-23 18:41:08 +00:00
Micha acabbd68a0 docs/MIGRATION_LOG.md aktualisiert
### Vaultwarden – Details

- Migration auf GitOps (Gitea + Portainer) erfolgreich
- Direkter Host-Port (4743) entfernt
- Traefik Routing via Docker Labels
- ADMIN_TOKEN von ENV auf File-Secret umgestellt
- Konflikt mit alter Traefik File-Config behoben (vaultwarden.yml deaktiviert)
2026-03-23 18:35:36 +00:00
Micha 312d9874d9 docs/ROLLBACK.md aktualisiert 2026-03-23 17:08:53 +00:00
Micha 84ddf04b3d docs/SECRETS_MAP.md aktualisiert 2026-03-23 17:05:43 +00:00
Micha 7a7df8f12c docs/MIGRATION_LOG.md aktualisiert 2026-03-23 17:04:23 +00:00
Micha 69477e512b Add full homelab structure 2026-03-23 17:54:57 +01:00