mailcow

Роль mailcow

Статус сборки

Этот плейбук настроит почтовый сервер mailcow и ежечасные резервные копии с помощью borg (необязательно, см. Переменные для отключения). Резервные копии сохраняются в /var/backup и удаляются после обработки borg. Хранятся последние 24 часовые, 7 ежедневных, 4 еженедельных, 6 ежемесячных и 1 годовая резервные копии.

Минимальная конфигурация для хоста mailcow — 1 ГГц ЦП, 1 ГБ ОЗУ, 5 ГБ дискового пространства. Рекомендуется 1,5 ГБ ОЗУ + swap, если включен clamd. Запланируйте дополнительное место для хранения для создания часовой резервной копии и для необязательного файла подкачки (в 1 раз больше ОЗУ).

Предварительные требования

  • Запущенный хост с Ubuntu (другие дистрибутивы пока не поддерживаются)
  • Docker
  • Репозиторий резервных копий borg, если резервные копии включены (см. https://borgbackup.readthedocs.org/en/latest/quickstart.html)
  • SSH-ключи и фраза-пароль, соответствующие репозиторию borg

Переменные

название назначение значение по умолчанию заметка
mailcow__hostname установить MAILCOW_HOSTNAME в mailcow.conf (см. https://mailcow.github.io/mailcow-dockerized-docs/install/) не установлено должно быть установлено
mailcow__additional_san установить ADDITIONAL_SAN в mailcow.conf для разрешения дополнительных доменов (см. https://mailcow.github.io/mailcow-dockerized-docs/firststeps-ssl/#additional-domain-names) не определено, необязательно значения через запятую: lala.example.com,yay.example.org (не повторяйте mailcow__hostname)
mailcow__skip_known_hosts использовать ли пользовательский файл known_hosts для резервных копий borgmatic false true или false, позволяет контейнеру borgmatic подключаться к удаленному репозиторию borg без запроса на подтверждение ключа
mailcow__dbpass установить dbpass в mailcow.conf (см. https://mailcow.github.io/mailcow-dockerized-docs/install/) не установлено должно быть установлено
mailcow__dbroot установить dbroot в mailcow.conf (см. https://mailcow.github.io/mailcow-dockerized-docs/install/) не установлено должно быть установлено
mailcow__http_port установить HTTP_PORT в mailcow.conf (см. https://mailcow.github.io/mailcow-dockerized-docs/install/) 80
mailcow__http_bind установить HTTP_BIND в mailcow.conf (см. https://mailcow.github.io/mailcow-dockerized-docs/install/) 0.0.0.0
mailcow__https_port установить HTTPS_PORT в mailcow.conf (см. https://mailcow.github.io/mailcow-dockerized-docs/install/) 443
mailcow__https_bind установить HTTPS_BIND в mailcow.conf (см. https://mailcow.github.io/mailcow-dockerized-docs/install/) 0.0.0.0
mailcow__tz установить TZ в mailcow.conf UTC список возможных значений
mailcow__skip_le установить SKIP_LETS_ENCRYPT в mailcow.conf n y или n
mailcow__skip_clamd установить SKIP_CLAMD в mailcow.conf n y или n
mailcow__ssh_key_name имя файла для SSH-ключей, используемых с borg (например, если ключи называются mykey_rsa и mykey_rsa.pub, эта переменная должна быть установлена на mykey_rsa) borg_ssh_key
mailcow__borg_repo_host указать, где размещен репозиторий borg (т.е. часть до : в URL репозитория borg) не установлено должно быть установлено (т.е. [email protected])
mailcow__borg_repo_name имя репозитория borg, т.е. часть после : и перед :: в URL репозитория borg mailcow т.е. myrepo из [email protected]:myrepo::backupname
mailcow__ntp_servers переопределить стандартные NTP-серверы для синхронизации времени на хосте Docker. 0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 3.pool.ntp.org должно быть строкой с именами хостов/FQDN/IP, разделенными пробелами
mailcow__enable_swap использовать файл подкачки (рекомендуется для хостов с менее чем 3 ГБ ОЗУ) true создаст файл подкачки в /swapfile, равный количеству ОЗУ на хосте
mailcow__enable_backups включить часовые резервные копии в репозитории borg true установите на true или false
mailcow__git_version проверить конкретную версию mailcow master любой коммит, имя ветки или тег из репозитория git mailcow

Файлы

В директории files/:

название назначение заметка
borg_ssh_key{,.pub} SSH-ключи для подключения к удаленному репозиторию borg (установите mailcow__ssh_key_name, если не используете имя по умолчанию). используется только если mailcow__enable_backups установлено в true
passphrase фраза-пароль для удаленного репозитория borg только если mailcow__enable_backups
known_hosts пользовательский файл known_hosts для контейнера borgmatic, чтобы избежать ошибок с неизвестным ключом см. переменную mailcow__skip_known_hosts выше. Чтобы получить актуальный ключ для вашего сервера, выполните ssh-keyscan 93.184.216.34. Используется только если mailcow__enable_backups установлено в true

Резервные копии

Если mailcow__enable_backups установлено, резервные копии будут создаваться каждый час в начале часа с помощью скрипта резервного копирования mailcow.

Контейнер docker-borgmatic будет отправлять резервную копию в указанный репозиторий borg каждый час в 30 минут и очищать каталог резервных копий после этого. Для удаленных репозиториев borg rsync.net подходит довольно хорошо.

Использование

Минимальный плейбук:

---
- 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 на чистый Ubuntu/Debian
    - coaxial.mailcow
О проекте

Mailcow in Docker containers + hourly backups with borg

Установить
ansible-galaxy install coaxial/ansible-role-mailcow
Лицензия
Unknown
Загрузки
70
Владелец