coaxial.mailcow

mailcow 角色

构建状态

此剧本会设置一个 mailcow 邮件服务器和每小时的 borg 备份(可选,查看变量以禁用) 备份会保存到 /var/backup,并在由 borg 处理后被移除。 保留最近的 24 个每小时备份、7 个每日备份、4 个每周备份、6 个每月备份和 1 个每年备份。

mailcow 主机的最低配置为 1GHz CPU、1GB RAM、5GB 硬盘。推荐配置为 1.5GB RAM + 交换空间(如果启用了 clamd)。计划额外的存储空间用于生成每小时的备份,以及可选的交换文件(1倍 RAM)。

先决条件

变量

名称 目的 默认值 注意
mailcow__hostname 设置 mailcow.conf 中的 MAILCOW_HOSTNAME(参考 https://mailcow.github.io/mailcow-dockerized-docs/install/) 未设置 必须设置
mailcow__additional_san 设置 mailcow.conf 中的 ADDITIONAL_SAN 以允许额外域名(参考 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 truefalse,允许 borgmatic 容器在不提示接受密钥的情况下连接到远程 borg 库
mailcow__dbpass 设置 mailcow.conf 中的 dbpass(参考 https://mailcow.github.io/mailcow-dockerized-docs/install/) 未设置 必须设置
mailcow__dbroot 设置 mailcow.conf 中的 dbroot(参考 https://mailcow.github.io/mailcow-dockerized-docs/install/) 未设置 必须设置
mailcow__http_port 设置 mailcow.conf 中的 HTTP_PORT(参考 https://mailcow.github.io/mailcow-dockerized-docs/install/) 80
mailcow__http_bind 设置 mailcow.conf 中的 HTTP_BIND(参考 https://mailcow.github.io/mailcow-dockerized-docs/install/) 0.0.0.0
mailcow__https_port 设置 mailcow.conf 中的 HTTPS_PORT(参考 https://mailcow.github.io/mailcow-dockerized-docs/install/) 443
mailcow__https_bind 设置 mailcow.conf 中的 HTTPS_BIND(参考 https://mailcow.github.io/mailcow-dockerized-docs/install/) 0.0.0.0
mailcow__tz 设置 mailcow.conf 中的 TZ UTC 可能值列表
mailcow__skip_le 设置 mailcow.conf 中的 SKIP_LETS_ENCRYPT n yn
mailcow__skip_clamd 设置 mailcow.conf 中的 SKIP_CLAMD n yn
mailcow__ssh_key_name 要用于 borg 的 ssh 密钥文件名(例如,如果密钥命名为 mykey_rsamykey_rsa.pub,则此变量应设置为 mykey_rsa borg_ssh_key
mailcow__borg_repo_host 指定 borg 库所在的主机(例如 borg 库 URL 中 : 前的部分) 未设置 必须设置(例如 [email protected]
mailcow__borg_repo_name borg 库的名称,即 borg 库 URL 中 ::: 之间的部分 mailcow 例如 [email protected]:myrepo::backupname 中的 myrepo
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 使用交换文件(建议在 RAM 小于 3GB 的主机上使用) true 将在 /swapfile 创建一个与主机上的 RAM 大小相同的交换文件
mailcow__enable_backups 启用每小时备份到 borg 库 true 设置为 truefalse
mailcow__git_version 检出某个特定版本的 mailcow master mailcow git 库中的任何提交、分支名称或标签

文件

files/ 目录中:

名称 目的 注意
borg_ssh_key{,.pub} 连接到远程 borg 库的 ssh 密钥(如果不使用默认名称,请设置 mailcow__ssh_key_name)。 仅在 mailcow__enable_backups 设置为 true 时使用
passphrase 远程 borg 库的密码短语 仅在 mailcow__enable_backups 设置时使用
known_hosts 用于 borgmatic 容器的自定义 known_hosts 文件,以避免未知密钥错误 参考上面的 mailcow__skip_known_hosts 变量。要获取您服务器的最新密钥,运行 ssh-keyscan 93.184.216.34。仅在 mailcow__enable_backups 设置为 true 时使用

备份

如果 mailcow__enable_backups 设置为 true,将每小时整点使用 mailcow 备份脚本 生成备份。

docker-borgmatic 容器将在每小时的第 30 分钟将备份发送到指定的 borg 库,并在此之后清理备份目录。对于远程 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  # 在裸装的 Ubuntu/Debian 上引导 python
    - coaxial.mailcow
关于项目

Mailcow in Docker containers + hourly backups with borg

安装
ansible-galaxy install coaxial.mailcow
许可证
Unknown
下载
82
拥有者