Mailcow Backup- & Wiederherstellungsstrategie

Diese Seite dokumentiert die vollständige Backup- und Wiederherstellungsstrategie für den Mailserver (Mailcow) sowie die externe Sicherung auf TrueNAS.

Ziel der Backup-Strategie

  • Tägliche automatische Backups
  • Kurzzeit-Backup auf dem VPS
  • Langzeit-Archivierung auf TrueNAS
  • Schnelle Wiederherstellung im Notfall

Systemübersicht

Backup-Architektur

VPS (Mailcow Server)

  • Erzeugt täglich ein vollständiges Mailcow-Backup
  • Speichert Backups lokal
  • Bewahrt Backups für 7 Tage auf

TrueNAS

  • Holt Backups per Rsync (Pull-Prinzip)
  • Speichert Backups langfristig
  • Nutzt ZFS Snapshots für Versionierung

VPS-Backup

Speicherort der Backups

/opt/mailcow-dockerized/backups

Automatischer Backup-Job (Cron)

30 2 * * * cd /opt/mailcow-dockerized && printf "/opt/mailcow-dockerized/backups\n" | ./helper-scripts/backup_and_restore.sh backup all --yes >> /var/log/mailcow-backup.log 2>&1

Funktion des Jobs

  • Start täglich um 02:30 Uhr
  • Erstellt ein vollständiges Mailcow-Backup
  • Protokolliert in:
/var/log/mailcow-backup.log

VPS-Rotation (Aufbewahrung 7 Tage)

Automatisches Löschen alter Backups

0 3 * * * find /opt/mailcow-dockerized/backups/ -maxdepth 1 -type d -name "mailcow-*" -mtime +7 -exec rm -rf {} \; >> /var/log/mailcow-rotation.log 2>&1

Funktion des Jobs

  • Start täglich um 03:00 Uhr
  • Löscht Backup-Ordner älter als 7 Tage
  • Protokolliert in:
/var/log/mailcow-rotation.log

TrueNAS – Rsync Pull

Quelle

mailcowbackup@VPS:/opt/mailcow-dockerized/backups/

Ziel-Dataset

Data/Hosting-Backups/Mailcow

Eigenschaften

  • Läuft täglich nach dem VPS-Backup
  • Holt neue Backup-Ordner vom VPS
  • Option „Delete“ ist deaktiviert
    → Alte Backups bleiben erhalten

Snapshot-Strategie auf TrueNAS

Dataset

Data/Hosting-Backups/Mailcow

Daily Snapshots

  • Ausführung: täglich um 04:00 Uhr
  • Aufbewahrung: 30 Tage

Weekly Snapshots

  • Ausführung: jeden Sonntag um 05:00 Uhr
  • Aufbewahrung: 12 Wochen

Monthly Snapshots

  • Ausführung: am 1. des Monats um 06:00 Uhr
  • Aufbewahrung: 12 Monate

Ziel

Langfristige Archivierung mit Wiederherstellungsmöglichkeit bis zu einem Jahr.


Manuelles Backup auf dem VPS

Falls sofort ein Backup benötigt wird:

cd /opt/mailcow-dockerized
printf "/opt/mailcow-dockerized/backups\n" | ./helper-scripts/backup_and_restore.sh backup all --yes

Kontrolle

ls -l /opt/mailcow-dockerized/backups

Manuelles Restore auf dem VPS

Achtung: Ein Restore überschreibt bestehende Daten.


Schritt 1 – Mailcow stoppen

cd /opt/mailcow-dockerized
docker compose down

Schritt 2 – Restore starten

./helper-scripts/backup_and_restore.sh restore all

Backup-Ordner auswählen.


Schritt 3 – Mailcow neu starten

docker compose up -d

Restore von TrueNAS (Bei Totalverlust des VPS)

Schritt 1 – Neuen VPS aufsetzen

  • Betriebssystem installieren
  • Mailcow frisch installieren

Schritt 2 – Backup vom TrueNAS zurückkopieren

Beispiel:

rsync -av truenas:/mnt/Data/Hosting-Backups/Mailcow/ /opt/mailcow-dockerized/backups/

Schritt 3 – Restore durchführen

Restore wie oben beschrieben ausführen.


Snapshot-Wiederherstellung auf TrueNAS

Wiederherstellung über GUI

Storage → Snapshots → Rollback

Wiederherstellung per CLI

zfs rollback Data/Hosting-Backups/Mailcow@snapshot-name

Testprotokoll

Letzter Backup-Test durchgeführt am: __________
Letzter Restore-Test durchgeführt am: __________


Notfallplan

VPS nicht erreichbar

  1. Neuen VPS aufsetzen
  2. Mailcow installieren
  3. Backup vom TrueNAS zurückholen
  4. Restore durchführen
  5. DNS prüfen
  6. Mailzustellung testen

Zusammenfassung der Strategie

Die Backup-Architektur basiert auf drei Ebenen:

  1. Tägliches Vollbackup auf dem VPS
  2. 7-Tage-Rotation lokal
  3. Langzeitarchivierung auf TrueNAS mit ZFS-Snapshots

Dadurch wird sichergestellt:

  • Schnelle Wiederherstellung bei kleinen Fehlern
  • Absicherung gegen Serverausfall
  • Langfristige Archivierung
  • Schutz vor versehentlichem Löschen

Ähnliche Posts