Dieses Tutorial ist VALID.

Bitte lies Dir den Disclaimer durch, bevor Du eine Anleitung umsetzt...

Haftungsausschluss / Disclaimer

Mailcow installieren – der „dockerisierte“ Mailserver

Backup

Save early, safe often! (Al Lowe)

Das Backup der Mailcow funktioniert über unseren Server mittels eines Backup-Scripts.

Falls noch nicht vorhanden, legen wir uns ein Backup-Verzeichnis an (hier /var/backup):

mkdir /var/backup

Danach führen wir das Backup-Script von Mailcow aus:

BACKUP_LOCATION=/var/backup /opt/mailcow-dockerized/helper-scripts/backup_and_restore.sh backup all

Das Script legt los und erstellt unterhalb von /var/backup/ ein Verzeichnis mit dem Namen „mailcow-“ und dem aktuellen Datum. Darin werden alle Bestandteile der Mailcow einzeln gesichert. Vor allem der „Crypt“-Key ist wichtig, weil sämtliche Mails verschlüsselt abgelegt werden. Müssen wir umziehen, brauchen wir den Schlüssel, um die Mails damit zu entschlüsseln. Dann werden noch die Inhalte der Datenbank, die Einstellungen von Postfix, Redis, RSPAMd und zu guter Letzt natürlich alle unsere Mails gepackt und gesichert.

Entweder machen wir das regelmäßig manuell, oder per CRON-Eintrag.

Restore

Müssen wir etwas aus dem Backup wiederherstellen, rufen wir das „Backup“-Script mit dem Parameter „restore“ auf. Im Folgenden werden wir dann nach dem Verzeichnis der Sicherung gefragt, welches wir eingeben. Uns werden dann die verschiedenen Sicherungen angezeigt. Aus der Liste wählen wir diejenige aus, aus der wir etwas zurücksichern möchten. Nun fragt das Script, welche der sechs möglichen Dinge wir zurücksichern möchten. Nachdem wir uns hier auch für einen Punkt entschieden haben, legt das Script los und sichert die betreffenden Daten zurück…

/opt/mailcow-dockerized/helper-scripts/backup_and_restore.sh restore
Backup location (absolute path, starting with /): /var/backup
Using /var/backup as backup/restore location.

[ 1 ] - /var/backup/mailcow-2019-08-26-14-47-15/

Select a restore point: 1

[ 1 ] - Redis DB
[ 2 ] - Postfix data
[ 3 ] - Rspamd data
[ 4 ] - SQL DB
[ 5 ] - Crypt data
[ 6 ] - Mail directory (/var/vmail)

Select a dataset to restore: 6
Restoring vmail from /var/backup/mailcow-2019-08-26-14-47-15/...
b4d6e8ee5d45
9daef5a90da9
/vmail/
/vmail/shared-mailboxes.db
/vmail/raser.de/
/vmail/raser.de/schneller/
/vmail/raser.de/schneller/Maildir/
/vmail/raser.de/schneller/Maildir/dovecot-uidvalidity.5d63d33b
/vmail/raser.de/schneller/Maildir/dovecot.mailbox.log
/vmail/raser.de/schneller/Maildir/.Drafts/
/vmail/raser.de/schneller/Maildir/.Drafts/dovecot-uidlist
/vmail/raser.de/schneller/Maildir/.Drafts/cur/
...
/vmail/_garbage/
9daef5a90da9

In most cases it is not required to run a full resync, you can run the command printed below at any time after testing wether the restore process broke a mailbox:

docker exec 9daef5a90da9 doveadm force-resync -A '*'

Force a resync now? [y|N] y

Die Frage nach dem „Resync“ bejahen wir und kurz darauf ist der Server wieder einsatzbereit.

Update

Die Mailcow wird ungefähr im Monatsrhytmus mit Updates versorgt. Diese spielen wir auch über ein Script direkt auf dem Terminal des Servers ein.

Achtung! Bis jetzt hat das Script bei mir immer hervorragend funktioniert. Aber es kann natürlich nicht ausgeschlossen werden, dass ein Update auch mal den Server zerschießt. Bitte in jedem Fall vorher ein Update ziehen und – noch besser – per Netcup SCP einen Snapshot des Servers machen, bevor wir das Update ausführen!

Wir wechseln ins Verzeichnis von Mailcow und starten das Script:

cd /opt/mailcow-dockerized/
./update.sh

Hier folgen wir den Anweisungen, die sich im Endeffekt auf Drucken der „y“-Taste beschränken.

Sollte es ein neues Script geben, wird das heruntergeladen und wir müssen es erneut starten. Das wird uns aber auch mitgeteilt.

Am Ende des Updateprozesses löschen wir noch die alten Container-Images (per „y“).

Nun machen wir ein

docker ps -a

und schauen, ob *alle* Container laufen: Bei „Status“ *MUSS* „up xxx Zeit“ stehen. Nur, wenn alle Container laufen, führen wir den Vorschlag des Scrips aus und säubern die Docker-Installation via

docker system prune
### mit "y" bestätigen!

Danach ist der Server wieder im normalen Betrieb. Ich lass jetzt gerne noch eine Sicherung laufen, die ja nun mit den aktuellen Updates durchgeführt wird…

Anzeige *

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Verwendung
von Cookies

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung.

Scroll to Top