Kritische Backup-Lücke geschlossen
Kritische Backup-Lücke geschlossen: Email-Daten jetzt sicher
🚨 Der Schock: Alle Emails OHNE Backup!
Bei der Analyse unseres Backup-Systems entdeckten wir etwas Erschreckendes:
Mailcow, unser kompletter Email-Server mit Jahren an Kommunikation, wurde NICHT gesichert!
Von 58 produktiven Docker Volumes waren nur 13 gesichert (22%). Der Email-Server mit allen Mails, Konten und Verschlüsselungskeys hatte kein Backup.
💀 Was wäre bei einem Server-Ausfall passiert?
- 💀 Alle Emails VERLOREN – Jahre an Geschäftskommunikation
- 💀 Email-Konten VERLOREN – Accounts, Aliase, Filter
- 💀 Verschlüsselungskeys VERLOREN – verschlüsselte Emails permanent unlesbar
- 💀 Wiederaufbau: Wochen, Datenverlust: MASSIV
🔴 KRITISCH
⚡ Die schnelle Lösung: 5 Minuten zum Erfolg
Wir erweiterten unser automatisches Backup-System um die fehlenden Volumes:
✨ Hinzugefügt: 9 kritische Volumes
📧 Mailcow Email Server (6 Volumes)
mailcowdockerized_vmail-vol-1– Email-Daten (8 GB Maildir)mailcowdockerized_mysql-vol-1– MariaDB Datenbankmailcowdockerized_crypt-vol-1– Verschlüsselungskeysmailcowdockerized_redis-vol-1– Cache & Sessionsmailcowdockerized_rspamd-vol-1– Spam-Filtermailcowdockerized_postfix-vol-1– Email-Queue
📊 Monitoring Stack (3 Volumes)
prometheus_data– Metriken & TSDB (2 GB)grafana_data– Dashboards & Konfigurationalertmanager_data– Alert-Regeln
🚀 Deployment in 5 Minuten
# 1. Konfiguration hochladen
scp docker-compose-traefik.yml root@ssh2.matzka.cloud:/opt/docker/compose/
# 2. Backup Container neu starten
docker compose -f docker-compose-traefik.yml up -d backup
# 3. Test-Backup durchführen
docker exec backup backup
✅ Backup erfolgreich, Größe: 1.4 GB → 2.0 GB (+600 MB)
🔍 Verifikation: Email-Daten im Backup
# Backup-Inhalt prüfen
tar -tzf backup-20260101-094824.tar.gz | grep mailcow-vmail
Gefunden:
/backup/mailcow-vmail/matzka.cloud/alerts/Maildir/.Sent/
/backup/mailcow-vmail/matzka.cloud/admin/Maildir/cur/
/backup/mailcow-mysql/ibdata1
/backup/mailcow-crypt/ecprivkey.pem
- ✅ Email-Accounts gefunden
- ✅ Maildir-Struktur intakt
- ✅ Datenbank gesichert
- ✅ Verschlüsselungskeys gesichert
📊 Disaster Recovery: Vorher vs. Nachher
| Kriterium | ⚠️ VOR der Extension | ✅ NACH der Extension |
|---|---|---|
| Status | 🔴 KATASTROPHAL | 🟢 WIEDERHERSTELLBAR |
| Emails | ❌ VERLOREN (permanent) | ✅ WIEDERHERSTELLBAR (max. 24h Verlust) |
| Verschlüsselte Mails | ❌ PERMANENT VERLOREN | ✅ LESBAR (Keys gesichert) |
| Wiederaufbau | ⏱️ 2-3 Wochen | ⏱️ 4-8 Stunden |
| Business Impact | 💀 MASSIV | ✅ Minimal |
| Recovery Time | Wochen | 8 Stunden |
| Datenverlust | Permanent | Max. 24h (letztes Backup) |
📦 Backup-Coverage im Überblick
Jetzt gesichert: 21 Volumes
🗄️ PostgreSQL Datenbanken (4)
Nextcloud, Authentik, Directus, n8n
💾 Redis Caches (1)
Authentik Sessions
📁 Application Data (7)
Nextcloud Files, n8n Workflows, Qdrant AI, Directus Media
📧 Mailcow Email Server (6) NEU
Email-Daten, Database, Encryption Keys, Cache, Spam-Filter, Queue
📊 Monitoring Stack (3) NEU
Prometheus Metriken, Grafana Dashboards, Alert-Regeln
⏰ Automatischer Zeitplan
| Tägliches Backup | 03:00 UTC |
|---|---|
| Retention | 30 Tage |
| Location | /opt/docker/backups/ |
Backup 03:00 → Update 04:00 (Sonntag) = 1 Stunde Abstand ✅
💡 Die wichtigsten Erkenntnisse
- ✅ Regelmäßige Backup-Audits sind KRITISCH
Einmal pro Quartal alle Volumes prüfen - ✅ Namenskonventionen beachten
Mailcow nutztmailcowdockerized_*statt Standard-Namen - ✅ Backup-Größe als Metrik
Plötzlicher Anstieg = neue Daten gesichert
Plötzlicher Abfall = Volumes fehlen - ✅ Test-Restores durchführen
Quartalsweise automatisierte Restore-Tests
💰 Kosten
Monatliche Speichernutzung: 30 Backups × 2.0 GB = 60 GB
Hetzner Storage Box 100GB: €3.20/Monat
€3.20/Monat für vollständigen Disaster Recovery Schutz
🎯 Fazit
Die Entdeckung der kritischen Backup-Lücke war ein Weckruf. Ein Server-Ausfall hätte Jahre an Email-Kommunikation unwiederbringlich vernichtet.
| Metrik | Verbesserung |
|---|---|
| Disaster Recovery Risiko | KRITISCH → MINIMAL 🟢 |
| Recovery Time | Wochen → Stunden ⚡ |
| Datenverlust | PERMANENT → Max. 24h 📉 |
| Kosten | €3.20/Monat 💰 |
Der wichtigste Punkt: Ein Backup ist wertlos, wenn nicht getestet. Wir führen jetzt quartalsweise Restore-Drills durch.
Code & Dokumentation
📂 github.com/reinmatz/matzka-cloud