coaxial.mailcow
Rola mailcow
Ten playbook skonfiguruje serwer pocztowy mailcow oraz opcjonalne, godzinne kopie zapasowe borg (patrz zmienne, aby wyłączyć)
Kopie zapasowe są zapisywane do /var/backup
i usuwane, gdy są przetwarzane przez borg.
Zachowywane są ostatnie 24 godzinne, 7 dziennych, 4 tygodniowe, 6 miesięcznych i 1 roczna kopia zapasowa.
Minimalna konfiguracja dla hosta mailcow to 1 GHz CPU, 1 GB RAM, 5 GB dysku. Zalecane jest 1,5 GB RAM oraz swap, jeśli clamd jest włączone. Zaplanuj dodatkowe miejsce na dysku na tworzenie godzinnych kopii zapasowych oraz opcjonalny plik swap (1x RAM).
Wymagania wstępne
- Działający host z systemem Ubuntu (inne dystrybucje na razie nie są wspierane)
- Docker
- Repozytorium kopii zapasowych borg, jeśli kopie zapasowe są włączone (patrz https://borgbackup.readthedocs.org/en/latest/quickstart.html)
- Klucze SSH i hasło pasujące do repozytorium borg
Zmienne
nazwa | cel | wartość domyślna | uwaga |
---|---|---|---|
mailcow__hostname |
ustaw MAILCOW_HOSTNAME w mailcow.conf (patrz https://mailcow.github.io/mailcow-dockerized-docs/install/) |
nie ustawione | musi być ustawione |
mailcow__additional_san |
ustaw ADDITIONAL_SAN w mailcow.conf , aby umożliwić dodatkowe domeny (patrz https://mailcow.github.io/mailcow-dockerized-docs/firststeps-ssl/#additional-domain-names) |
nieokreślone, opcjonalne | wartości oddzielone przecinkami: lala.example.com,yay.example.org (nie powtarzaj mailcow__hostname ) |
mailcow__skip_known_hosts |
czy używać niestandardowego pliku known_hosts do kopii zapasowych borgmatic |
false |
true lub false , pozwala kontenerowi borgmatic połączyć się z zdalnym repozytorium borg bez pytania o akceptację klucza |
mailcow__dbpass |
ustaw dbpass w mailcow.conf (patrz https://mailcow.github.io/mailcow-dockerized-docs/install/) |
nie ustawione | musi być ustawione |
mailcow__dbroot |
ustaw dbroot w mailcow.conf (patrz https://mailcow.github.io/mailcow-dockerized-docs/install/) |
nie ustawione | musi być ustawione |
mailcow__http_port |
ustaw HTTP_PORT w mailcow.conf (patrz https://mailcow.github.io/mailcow-dockerized-docs/install/) |
80 |
|
mailcow__http_bind |
ustaw HTTP_BIND w mailcow.conf (patrz https://mailcow.github.io/mailcow-dockerized-docs/install/) |
0.0.0.0 |
|
mailcow__https_port |
ustaw HTTPS_PORT w mailcow.conf (patrz https://mailcow.github.io/mailcow-dockerized-docs/install/) |
443 |
|
mailcow__https_bind |
ustaw HTTPS_BIND w mailcow.conf (patrz https://mailcow.github.io/mailcow-dockerized-docs/install/) |
0.0.0.0 |
|
mailcow__tz |
ustaw TZ w mailcow.conf |
UTC |
lista możliwych wartości |
mailcow__skip_le |
ustaw SKIP_LETS_ENCRYPT w mailcow.conf |
n |
y lub n |
mailcow__skip_clamd |
ustaw SKIP_CLAMD w mailcow.conf |
n |
y lub n |
mailcow__ssh_key_name |
nazwa pliku dla kluczy ssh używanych z borg (czyli, jeśli klucze nazywają się mykey_rsa i mykey_rsa.pub , ta zmienna powinna być ustawiona na mykey_rsa ) |
borg_ssh_key |
|
mailcow__borg_repo_host |
wskaź gdzie jest hostowane repozytorium borg (czyli część przed : w URL repozytorium borg) |
nie ustawione | musi być ustawione (czyli [email protected] ) |
mailcow__borg_repo_name |
nazwa repozytorium borg, tj. część po : i przed :: w URL repozytorium borg |
mailcow |
czyli myrepo z [email protected]:myrepo::backupname |
mailcow__ntp_servers |
nadpisz domyślne serwery ntp dla synchronizacji czasu na hoście dockera. | 0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 3.pool.ntp.org |
musi być ciągiem oddzielonych spacjami nazw hostów/FQDN/IP |
mailcow__enable_swap |
użyj pliku swap (zalecane dla hostów z mniej niż 3 GB RAM) | true |
utworzy plik swap w /swapfile, który ma taką samą wielkość jak ilość RAM na hoście |
mailcow__enable_backups |
włącz godzinne kopie zapasowe do repozytorium borg | true |
należy ustawić na true lub false |
mailcow__git_version |
pobierz określoną wersję mailcow | master |
dowolny commit, nazwa gałęzi lub tag z repozytorium git mailcow |
Pliki
W katalogu files/
:
nazwa | cel | uwaga |
---|---|---|
borg_ssh_key{,.pub} |
klucze ssh do łączenia się z zdalnym repozytorium borg (ustaw mailcow__ssh_key_name , jeśli nie używasz domyślnej nazwy). |
używane tylko, jeśli mailcow__enable_backups jest ustawione na true |
passphrase |
hasło do zdalnego repozytorium borg | tylko jeśli mailcow__enable_backups |
known_hosts |
niestandardowy plik known_hosts dla kontenera borgmatic, aby uniknąć błędów z nieznanym kluczem | patrz zmienna mailcow__skip_known_hosts powyżej. Aby uzyskać aktualny klucz dla swojego serwera, uruchom ssh-keyscan 93.184.216.34 . Używane tylko, jeśli mailcow__enable_backups jest true |
Kopie zapasowe
Jeśli mailcow__enable_backups
jest ustawione, kopie zapasowe będą generowane co godzinę, na pełną godzinę, za pomocą skryptu kopii zapasowej mailcow.
Kontener docker-borgmatic wyśle kopię zapasową do określonego repozytorium borg co godzinę o 30 po godzinie i posprząta katalog kopii zapasowej po tym. W przypadku zdalnych repozytoriów borg, rsync.net jest całkiem dobry.
Użycie
Minimalny 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 # bootstrap python na czystym Ubuntu/Debian
- coaxial.mailcow
ansible-galaxy install coaxial.mailcow