
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像包含 Mailman 3 的 Web 管理界面(Postorius)和邮件归档器(Hyperkitty),是 Mailman 3 套件的核心组件之一。镜像基于 GitLab 仓库 的最新源码构建。目前镜像仅提供 latest 版本,未来将区分 latest(开发版)和 stable(稳定版),计划在 Mailman Suite 3.1 版本发布后实现版本分离。
INSTALLED_APPS)以满足定制需求。本镜像适用于需要部署完整 Mailman 3 套件的场景,尤其适合:
必须配置的环境变量
以下参数必须在部署前设置,无默认值或默认值无法满足生产需求:
| 环境变量 | 描述 | 默认值 |
|---|---|---|
SERVE_FROM_DOMAIN | Django 服务域名,将添加到 ALLOWED_HOSTS,同时替换默认 SITE(SITE_ID=1) | 未设置 |
HYPERKITTY_API_KEY | Hyperkitty 归档器 API 密钥,需与 Mailman Core 配置的密钥完全一致 | 未设置 |
MAILMAN_ADMIN_USER | 默认管理员用户名,用于创建初始管理员账户 | 未设置 |
MAILMAN_ADMIN_EMAIL | 默认管理员***,用于创建初始管理员账户 | 未设置 |
SECRET_KEY | Django 密钥,用于 cookie 签名、会话加密等安全功能 | 未设置 |
可选配置的环境变量
以下参数已设置合理默认值,仅在需要自定义时修改:
| 环境变量 | 描述 | 默认值 |
|---|---|---|
DATABASE_URL | Django 数据库连接 URL,格式为 driver://user:password@host:port/dbname | sqlite:///opt/mailman-web-data/mailmanweb.db(默认 SQLite 数据库) |
MAILMAN_REST_URL | Mailman Core REST API 地址 | http://mailman-core:8001 |
MAILMAN_REST_USER | Mailman Core REST API 用户名 | restadmin |
MAILMAN_REST_PASSWORD | Mailman Core REST API 密码 | restpass |
MAILMAN_HOSTNAME | Mailman Core 发送邮件到 Hyperkitty 的容器 IP | mailman-core(默认与 Core 容器名关联) |
SMTP_HOST | 发送邮件的 SMTP 服务器地址 | 容器网关 IP(通过 ip route 自动获取) |
SMTP_PORT | SMTP 服务器端口 | 25 |
SMTP_HOST_USER | SMTP 认证用户名(如需要) | 空字符串(默认不启用认证) |
SMTP_HOST_PASSWORD | SMTP 认证密码(如需要) | 空字符串 |
SMTP_USE_TLS | 是否启用 SMTP TLS 加密 | False(默认不启用) |
DJANGO_LOG_URL | Django 日志文件路径 | /opt/mailman-web-data/logs/mailmanweb.log |
DJANGO_ALLOWED_HOSTS | Django ALLOWED_HOSTS 额外条目(独立于 SERVE_FROM_DOMAIN) | 未设置(默认仅包含 SERVE_FROM_DOMAIN) |
POSTORIUS_TEMPLATE_BASE_URL | Mailman Core 访问 Web 容器模板的基础 URL | http://mailman-web:8000(默认允许 Core 从 Web 容器获取模板) |
MAILMAN_WEB_SOCIAL_AUTH | 社交登录提供商列表(默认包含多个提供商) | 默认值参考 settings.py,覆盖可禁用社交登录 |
官方推荐使用 https://github.com/maxking/docker-mailman/ 提供的 docker-compose.yaml 进行部署,该配置已集成 Mailman Core、数据库(PostgreSQL)、Web 容器及 Nginx 反向代理。
Docker Compose 配置示例
以下为简化版 docker-compose.yaml(完整配置请参考 https://github.com/maxking/docker-mailman/blob/master/docker-compose.yaml%EF%BC%89%EF%BC%9A
yamlversion: '3' services: mailman-web: image: maxking/mailman-web:latest container_name: mailman-web depends_on: - mailman-core - db environment: # 必须配置的环境变量 - SERVE_FROM_DOMAIN=lists.example.com # 替换为实际域名 - HYPERKITTY_API_KEY=your-hyperkitty-api-key # 与 mailman-core 保持一致 - MAILMAN_ADMIN_USER=admin - MAILMAN_ADMIN_EMAIL=admin@example.com - SECRET_KEY=your-django-secret-key # 建议使用随机字符串 # 可选配置的环境变量(示例) - DATABASE_URL=postgres://mailman:mailmanpass@db:5432/mailmandb - MAILMAN_REST_URL=http://mailman-core:8001 - SMTP_HOST=smtp.example.com - SMTP_PORT=587 - SMTP_USE_TLS=True - SMTP_HOST_USER=smtp-user@example.com - SMTP_HOST_PASSWORD=smtp-password volumes: - mailman-web-data:/opt/mailman-web-data ports: - "8000:8000" mailman-core: image: maxking/mailman-core:latest container_name: mailman-core depends_on: - db environment: - HYPERKITTY_API_KEY=your-hyperkitty-api-key # 与 mailman-web 保持一致 # 其他 mailman-core 环境变量... volumes: - mailman-core-data:/opt/mailman/core - mailman-core-logs:/opt/mailman/logs db: image: postgres:13 container_name: mailman-db environment: - POSTGRES_USER=mailman - POSTGRES_PASSWORD=mailmanpass - POSTGRES_DB=mailmandb volumes: - mailman-db-data:/var/lib/postgresql/data volumes: mailman-web-data: mailman-core-data: mailman-core-logs: mailman-db-data:
若需快速测试,可使用 docker run 命令启动(生产环境建议使用 Docker Compose):
bashdocker run -d \ --name mailman-web \ -p 8000:8000 \ -e SERVE_FROM_DOMAIN=lists.example.com \ -e HYPERKITTY_API_KEY=your-api-key \ -e MAILMAN_ADMIN_USER=admin \ -e MAILMAN_ADMIN_EMAIL=admin@example.com \ -e SECRET_KEY=your-secret-key \ -e DATABASE_URL=sqlite:///opt/mailman-web-data/mailmanweb.db \ -v mailman-web-data:/opt/mailman-web-data \ maxking/mailman-web:latest
创建 Django 超级用户
容器启动后,需执行以下命令创建管理员账户(用于登录 Django 管理后台):
bashdocker exec -it mailman-web python manage.py createsuperuser
配置反向代理
需通过 Nginx 等 Web 服务器反向代理容器的 8000 端口,以支持 HTTPS 和域名访问。官方仓库提供 https://github.com/maxking/docker-mailman/%E3%80%82
SSL 证书配置
建议通过 Let's Encrypt 获取免费 SSL 证书,并在 Nginx 中配置 HTTPS(因 Django 配置默认启用 USE_SSL=True)。
容器数据通过卷 mailman-web-data 持久化,包含数据库文件、日志、静态资源等,需确保该卷在升级或重启时保留。
HYPERKITTY_API_KEY 必须在 mailman-web 和 mailman-core 容器中设置为相同值,否则无法正常归档邮件。docker-compose.yaml 配置)。SECRET_KEY 应使用随机高强度字符串,避免泄露;敏感信息(如 SMTP 密码)建议通过环境变量注入,而非硬编码在配置文件中。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务