mailcow.mailcow
mailcow: dockerized - Ansible 角色 🐮 + 🐋 = 💕
这个角色将设置一个 mailcow dockerized 邮件服务器。
前提条件
- 一台正在运行的 Ubuntu/Debian 主机(目前不支持/未测试其他发行版)
- 需要 Docker Compose v2!
需求
需求 | 描述 |
---|---|
docker ce | 主机上必须安装 Docker |
docker-compose | 需要 docker-compose |
注意事项
此角色默认使用 inventory_hostname
作为 mailcow 主机名,这意味着您必须使用完整的合格域名作为您的清单主机名,例如 mail.mailcow.tld
,或者将 mailcow__hostname
设置为正确的 FQDN。
变量
名称 | 目的 | 默认值 | 备注 |
---|---|---|---|
mailcow__hostname |
设置 MAILCOW_HOSTNAME | inventory_hostname |
必须是完整的合格域名 |
mailcow__install_path |
设置 mailcow-dockerized 仓库将被克隆到的路径 | /opt/mailcow-dockerized |
|
mailcow__git_version |
检出 mailcow 的特定版本 | master |
|
mailcow__timezone |
在配置生成期间设置 mailcow 运行的时区 | 未设置 | 必须设置 |
mailcow__docker_compose_project_name |
将 docker-compose 项目名称设置为用户定义的字符串 | mailcowdockerized |
|
mailcow__theme |
在 vars.local.inc.php 中设置默认 mailcow 主题 | lumen |
|
mailcow__config_http_port |
设置 mailcow.conf 中的 HTTP_PORT | 80 |
|
mailcow__config_http_bind |
设置 mailcow.conf 中的 HTTP_BIND | none |
|
mailcow__config_https_port |
设置 mailcow.conf 中的 HTTPS_PORT | 443 |
|
mailcow__config_https_bind |
设置 mailcow.conf 中的 HTTPS_BIND | none |
|
mailcow__config_acl_anyone |
设置 ACL_ANYONE | disallow | |
mailcow__config_maildir_gc_time |
设置 mailcow.conf 中的 MAILDIR_GC_TIME | 1440 |
|
mailcow__config_additional_san |
设置 mailcow.conf 中的 ADDITIONAL_SAN | 需要为列表 | |
mailcow__config_additional_server_names |
设置 mailcow.conf 中的 ADDITIONAL_SERVER_NAMES | 需要为列表 | |
mailcow__config_skip_lets_encrypt |
设置 mailcow.conf 中的 SKIP_LETS_ENCRYPT | ||
mailcow__config_enable_ssl_sni |
设置 mailcow.conf 中的 ENABLE_SSL_SNI | ||
mailcow__config_skip_ip_check |
设置 mailcow.conf 中的 SKIP_IP_CHECK | ||
mailcow__config_skip_http_verification |
设置 mailcow.conf 中的 SKIP_HTTP_VERIFICATION | n |
|
mailcow__config_skip_clamd |
设置 mailcow.conf 中的 SKIP_CLAMD | n |
|
mailcow__config_skip_solr |
设置 mailcow.conf 中的 SKIP_SOLR | n |
|
mailcow__config_solr_heap |
设置 mailcow.conf 中的 SOLR_HEAP | 1024 |
|
mailcow__config_skip_sogo |
设置 mailcow.conf 中的 SKIP_SOGO | n |
|
mailcow__config_allow_admin_email_login |
设置 mailcow.conf 中的 ALLOW_ADMIN_EMAIL_LOGIN | n |
|
mailcow__config_use_watchdog |
设置 mailcow.conf 中的 USE_WATCHDOG | n |
|
mailcow__config_watchdog_notify_email |
设置 mailcow.conf 中的 WATCHDOG_NOTIFY_EMAIL | ||
mailcow__config_watchdog_notify_ban |
设置 mailcow.conf 中的 WATCHDOG_NOTIFY_BAN | y |
|
mailcow__config_watchdog_subject |
设置 mailcow.conf 中的 WATCHDOG_SUBJECT | Watchdog ALERT |
|
mailcow__config_log_lines |
设置 mailcow.conf 中的 LOG_LINES | 9999 |
|
mailcow__config_sogo_expire_session |
设置 mailcow.conf 中的 SOGO_EXPIRE_SESSION | 480 |
|
mailcow__install_updates |
如果 yes ,mailcow ansible 角色还将更新现有安装 |
yes |
|
mailcow__redirect_http_to_https |
如果 yes ,所有通过 HTTP 的请求将被重定向到 HTTPS |
no |
详见 https://mailcow.github.io/mailcow-dockerized-docs/u_e-80_to_443/ |
mailcow__config_acme_contact |
设置 mailcow.conf 中的 ACME_CONTACT | ||
mailcow__rspamd_clamd_servers |
配置 rspamd 使用的 clamd 服务器 | clamd:3310 |
|
mailcow__compose_command |
配置用于 compose 的命令 | docker compose |
对于独立版本的 compose,请设置为 docker-compose |
使用方式
最小的剧本示例:
---
- name: 安装 Python3
hosts: all
become: true
gather_facts: false
roles:
- { role: raw,0.0, vars: {command: 'apt-get install -y python3 python3-pip'} }
- name: 主剧本
hosts: all
become: true
gather_facts: true
vars:
mailcow__timezone: Europe/Berlin
roles:
- Ansible-Roles.docker-ce
- Ansible-Roles.docker-compose
- Ansible-Roles.mailcow