coaxial.mailcow
mailcow
Rolle
Dieses Playbook richtet einen mailcow E-Mail-Server und stündliche Borg-Backups (optional, siehe Variablen zur Deaktivierung) ein. Backups werden in /var/backup
gespeichert und nach der Verarbeitung durch Borg gelöscht. Die letzten 24 stündlichen, 7 täglichen, 4 wöchentlichen, 6 monatlichen und 1 jährlichen Backups werden aufbewahrt.
Die Mindestkonfiguration für den mailcow-Host beträgt 1GHz CPU, 1GB RAM und 5GB Speicherplatz. Empfohlen wird 1.5GB RAM + Swap, wenn clamd aktiviert ist. Planen Sie zusätzlichen Speicherplatz für die Erstellung des stündlichen Backups und für die optionale Swap-Datei (1x den RAM).
Voraussetzungen
- Ein lauffähiger Ubuntu-Host (andere Distributionen werden derzeit nicht unterstützt)
- Docker
- Ein Borg-Backup-Repository, wenn Backups aktiviert sind (siehe https://borgbackup.readthedocs.org/en/latest/quickstart.html)
- SSH-Schlüssel und Passphrase, die zum Borg-Repo passen
Variablen
name | Zweck | Standardwert | Hinweis |
---|---|---|---|
mailcow__hostname |
Setzen Sie MAILCOW_HOSTNAME in mailcow.conf (siehe https://mailcow.github.io/mailcow-dockerized-docs/install/) |
nicht gesetzt | muss gesetzt werden |
mailcow__additional_san |
Setzen Sie ADDITIONAL_SAN in mailcow.conf , um zusätzliche Domains zuzulassen (siehe https://mailcow.github.io/mailcow-dockerized-docs/firststeps-ssl/#additional-domain-names) |
undefiniert, optional | durch Kommas getrennte Werte: lala.example.com,yay.example.org (wiederholen Sie nicht mailcow__hostname ) |
mailcow__skip_known_hosts |
Ob eine benutzerdefinierte known_hosts -Datei für die Borgmatic-Backups verwendet werden soll |
false |
true oder false , erlaubt dem Borgmatic-Container, sich ohne Aufforderung zum Akzeptieren des Schlüssels mit einem Remote-Borg-Repo zu verbinden |
mailcow__dbpass |
Setzen Sie dbpass in mailcow.conf (siehe https://mailcow.github.io/mailcow-dockerized-docs/install/) |
nicht gesetzt | muss gesetzt werden |
mailcow__dbroot |
Setzen Sie dbroot in mailcow.conf (siehe https://mailcow.github.io/mailcow-dockerized-docs/install/) |
nicht gesetzt | muss gesetzt werden |
mailcow__http_port |
Setzen Sie HTTP_PORT in mailcow.conf (siehe https://mailcow.github.io/mailcow-dockerized-docs/install/) |
80 |
|
mailcow__http_bind |
Setzen Sie HTTP_BIND in mailcow.conf (siehe https://mailcow.github.io/mailcow-dockerized-docs/install/) |
0.0.0.0 |
|
mailcow__https_port |
Setzen Sie HTTPS_PORT in mailcow.conf (siehe https://mailcow.github.io/mailcow-dockerized-docs/install/) |
443 |
|
mailcow__https_bind |
Setzen Sie HTTPS_BIND in mailcow.conf (siehe https://mailcow.github.io/mailcow-dockerized-docs/install/) |
0.0.0.0 |
|
mailcow__tz |
Setzen Sie TZ in mailcow.conf |
UTC |
Liste möglicher Werte |
mailcow__skip_le |
Setzen Sie SKIP_LETS_ENCRYPT in mailcow.conf |
n |
y oder n |
mailcow__skip_clamd |
Setzen Sie SKIP_CLAMD in mailcow.conf |
n |
y oder n |
mailcow__ssh_key_name |
Dateiname der SSH-Schlüssel, die mit Borg verwendet werden sollen (d.h. wenn die Schlüssel mykey_rsa und mykey_rsa.pub heißen, sollte diese Variable auf mykey_rsa gesetzt werden) |
borg_ssh_key |
|
mailcow__borg_repo_host |
Geben Sie an, wo das Borg-Repo gehostet wird (d.h. der Teil vor : in einer Borg-Repo-URL) |
nicht gesetzt | muss gesetzt werden (z.B. [email protected] ) |
mailcow__borg_repo_name |
Name für das Borg-Repo, d.h. der Teil nach : und vor :: in einer Borg-Repo-URL |
mailcow |
z.B. myrepo von [email protected]:myrepo::backupname |
mailcow__ntp_servers |
Überschreiben Sie die Standard-NTP-Server für die Zeit-Synchronisierung auf dem Docker-Host. | 0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 3.pool.ntp.org |
muss eine Zeichenkette aus durch Leerzeichen getrennten Hostnamen/FQDNs/IPs sein |
mailcow__enable_swap |
Verwenden Sie eine Swap-Datei (empfohlen für Hosts mit weniger als 3 GB RAM) | true |
erstellt eine Swap-Datei unter /swapfile, die die gleiche Größe wie der RAM auf dem Host hat |
mailcow__enable_backups |
Aktiviert stündliche Backups in einem Borg-Repository | true |
auf true oder false setzen |
mailcow__git_version |
Eine bestimmte Version von mailcow auschecken | master |
jeder Commit, Branch-Name oder Tag aus dem Mailcow-Git-Repo |
Dateien
Im Verzeichnis files/
:
name | Zweck | Hinweis |
---|---|---|
borg_ssh_key{,.pub} |
SSH-Schlüssel zum Verbinden mit dem Remote-Borg-Repo (setzen Sie mailcow__ssh_key_name , wenn Sie nicht den Standardnamen verwenden). |
Nur verwendet, wenn mailcow__enable_backups auf true gesetzt ist |
passphrase |
Passphrase für das Remote-Borg-Repo | Nur, wenn mailcow__enable_backups |
known_hosts |
Benutzerdefinierte known_hosts-Datei für den Borgmatic-Container, um unbekannte Schlüssel-Fehler zu vermeiden | siehe mailcow__skip_known_hosts -Variable oben. Um einen aktuellen Schlüssel für Ihren Server zu erhalten, führen Sie ssh-keyscan 93.184.216.34 aus. Nur verwendet, wenn mailcow__enable_backups auf true gesetzt ist |
Backups
Wenn mailcow__enable_backups
gesetzt ist, werden stündlich Backups zur vollen Stunde mit dem mailcow Backup-Skript erstellt.
Der docker-borgmatic Container sendet die Backups stündlich zur halben Stunde an das angegebene Borg-Repo und bereinigt anschließend das Backup-Verzeichnis. Für Remote-Borg-Repos ist rsync.net recht gut.
Verwendung
Minimales Playbook:
---
- hosts: all
become: true
gather_facts: false
vars:
mailcow__borg_repo_host: [email protected]
mailcow__hostname: test
mailcow__dbpass: test
mailcow__dbroot: test
rawpython__os_family: Debian
roles:
- coaxial.raw-python # Python auf barem Ubuntu/Debian einrichten
- coaxial.mailcow