Micha
43727151df
Refresh final audit live status
2026-05-25 07:34:08 +02:00
Micha
ab68900216
Complete Disk1 phase 2 migration
2026-05-25 06:13:50 +02:00
Micha
8e400fb3c3
Finalize homelab audit end state
2026-05-23 11:29:08 +02:00
Micha
cd650b19ac
Close Gitea signup, dedup posture-check alerts, extend Borg scope
...
Operational hardening across several services after live incident
analysis between 2026-05-18 and 2026-05-20:
- Gitea: disable public registration and OpenID signup/signin to
stop the external POST / 5xx bursts that triggered availability
alerts. New repo-wide policy requires every productive
Micha/homelab-infra Komodo stack to ship with an active
Gitea->Komodo webhook on the current stack ID (documented in
CLAUDE.md, AI_CONTEXT.md, WORKFLOW.md).
- posture-check: extract the Disk1 fstype check into its own
function so the documented Disk1 NTFS exception no longer raises
ntfy warnings, skip POSIX inode checks on NTFS, and dedup ntfy
alerts via a fingerprint state file with ALERT_REPEAT_SECONDS
(default 24h). Repeat-spam on the same cause now suppressed.
- docker-critical-events: parse the event JSON for container name,
action, exit code and signal; drop `die exit=0` events (clean
stops); ship a structured ntfy message instead of the raw event
line.
- Borg UI: mount /mnt/user/services into the backup container as
/local/services:ro and include homelab-infra, stacks and
posture-check in all-important-sources.txt. RESTORE_MATRIX and
DISASTER_RECOVERY updated accordingly.
- Unraid user scripts: document the new
homelab-operations-report-daily cron job and the SMTP password
file it expects on the host.
- MIGRATION_LOG: capture the four live events from this window -
Gitea 5xx burst + signup closure, Komodo webhook reconciliation,
posture-check host-version verification, Borg scope extension,
and Traefik 5xx alert detuning.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-23 11:05:35 +02:00
Micha
59bec9ac77
Fix Glance live widget data sources
2026-05-18 09:35:53 +02:00
Micha
9f86da708a
Add Glance live network widgets
2026-05-18 08:31:57 +02:00
Micha
d6170211c4
Refine Glance network widgets
2026-05-18 08:13:13 +02:00
Micha
fb681086f3
Restyle Glance dashboard layout
2026-05-18 08:03:59 +02:00
Micha
5b101f3b3d
Keep only verified Glance community widget
2026-05-17 18:20:56 +02:00
Micha
2dd5590a2a
Polish Glance community widgets
2026-05-17 18:16:05 +02:00
Micha
175cd6951f
Add Glance community homelab widgets
2026-05-17 18:07:57 +02:00
Micha
aeb7573b03
Remove noisy Glance dashboard widgets
2026-05-17 17:08:10 +02:00
Micha
215f44b962
Fix Glance monitor health checks
2026-05-17 17:05:23 +02:00
Micha
c3c8060ddf
Add Glance homelab dashboard stack
2026-05-17 16:51:43 +02:00
Micha
b7dfdad621
Consolidate monitoring target stack
2026-05-17 10:41:29 +02:00
Micha
878ad2d5f1
Harden backup and posture checks
2026-05-16 13:04:22 +02:00
Micha
2cc39c73f6
Add validated Paperless restore test pattern
2026-05-07 11:01:27 +02:00
Micha
d351b1cac8
Add validated Gitea restore test pattern
2026-05-07 10:00:58 +02:00
Micha
df4d335907
Document validated Vaultwarden restore pattern
2026-05-07 09:39:29 +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
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
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
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
bbdf2ffb60
updates
...
Repo sauber machen
2026-04-15 13:40:03 +02:00
Micha
96984ca0de
Finish merge and update borg-ui backup mounts
2026-04-12 17:49:44 +02: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
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