ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

mailcow: dockerized 部署指南:4 条命令跑通完整邮件服务

mailcow: dockerized 部署指南:4 条命令跑通完整邮件服务 mailcow: dockerized 部署指南4 条命令跑通完整邮件服务【免费下载链接】mailcow-dockerizedmailcow: dockerized - 项目地址: https://gitcode.com/GitHub_Trending/ma/mailcow-dockerized在一台干净的 Linux 服务器上进行克隆、生成配置、拉起容器mailcow: dockerized 就能以一组 Docker 容器的形态提供完整邮件收发能力Postfix 负责投递Dovecot 负责 IMAP 存储Rspamd 负责垃圾与病毒过滤全部由一个 Web 界面统一配置。它适合想自建邮件服务、又不想逐个手工编译安装组件的个人站长和中小团队。它解决什么问题适合谁mailcow 把一套邮件系统需要的十几个组件打包进 docker-compose.yml每个组件独立成容器版本组合由上游统一维护。对你来说它解决的是三件麻烦事组件依赖与版本兼容不用自己处理 Postfix、Dovecot、Rspamd 之间的升级顺序容器镜像版本由 compose 文件锁定。配置分发所有服务的配置文件集中在data/conf/目录改动后重启对应容器即可生效。运维入口统一域名、邮箱、配额、垃圾过滤规则都在同一个 Web 界面操作不需要记住每个组件的命令行。如果服务器内存低于 2.5 GiB注意脚本会主动建议关闭 ClamAV 病毒扫描避免内存耗尽这一点在 generate_config.sh 里有明确判断。部署前需要确认什么部署卡住大多源于环境不达标先花两分钟对照下面清单操作系统为 Linux已安装 Docker 且版本不低于 24generate_config.sh会硬性检查低于 24 直接退出。已安装 Docker Compose 插件或独立版docker-compose脚本会自动探测并使用其中一种。内存至少 4 GiB 比较稳妥低于 2.5 GiB 时 ClamAV 会被建议禁用。你有一个能解析的域名并计划给 mailcow 分配一个完整限定主机名FQDN形如 mail.example.com脚本要求必须带子域裸域只有警告提示。服务器可访问公网容器镜像需要在线拉取。验证环境就绪只需一条命令运行docker version确认 Client 与 Server 版本均大于等于 24且 Compose 插件存在。上手部署拉代码、生成配置、拉起容器拉取代码把仓库克隆到服务器进入目录。这是后文所有脚本的执行位置。git clone https://gitcode.com/GitHub_Trending/ma/mailcow-dockerized cd mailcow-dockerized预期结果目录下出现generate_config.sh、docker-compose.yml、update.sh等文件。脚本还会让你选择使用哪个分支master 是稳定版nightly 是测试版生产环境选 master 即可。生成配置generate_config.sh依赖一个.env符号链接指向mailcow.conf先建链接再运行脚本ln -s mailcow.conf .env ./generate_config.sh预期结果脚本依次询问主机名FQDN、时区、是否禁用 ClamAV、使用哪个分支最后生成权限为 600 的mailcow.conf文件。数据库密码、Redis 密码都会随机生成并写入其中无需手动编辑。若看到 is not a FQDN 报错说明主机名填成了裸域重新运行脚本修正即可。启动整组容器docker compose up -d预期结果首次运行会拉取全部镜像耗时取决于带宽随后postfix-mailcow、dovecot-mailcow、nginx-mailcow、mysql-mailcow、rspamd-mailcow、watchdog-mailcow等一批容器逐个进入 running 状态。启动后如何验证部署成功三个可检查的信号全部满足才算部署完成docker compose ps输出中没有 exited 或 restarting 状态的容器核心服务都在 running。浏览器访问https://你的主机名出现登录页。此时用默认管理员账号admin、密码moohoo可以登录该默认值写在 generate_config.sh 的配置模板注释里登录后立即改掉它。等待几分钟后再看一次容器状态仍全部 running说明 watchdog 没有反复拉起崩溃的服务。另外可以在管理界面的系统页查看各组件版本确认与 docker-compose.yml 中锁定的镜像版本一致。三个最值得先用起来的功能Web 管理界面。场景给新同事开邮箱、加新域名。入口登录后左侧的域名与邮箱管理界面代码位于 data/web/admin/。效果建域名时系统会列出需要配置的 DNS 记录建邮箱时直接设置配额全程无命令行。Rspamd 垃圾过滤与隔离区。场景确认某封被拦邮件是不是误杀。入口管理界面的隔离区页面规则配置存放在 data/conf/rspamd/。效果进入隔离区的邮件可在界面查看完整头信息一键标记放行或拉黑调整后的规则立即作用于新邮件。内置备份恢复脚本。场景升级前或迁移前留后路。入口helper-scripts/backup_and_restore.sh。效果运行./helper-scripts/backup_and_restore.sh backup all /backup/path后vmail 邮件数据、数据库、Redis、Rspamd、Postfix 会被打包成带时间戳的 zstd 归档恢复时按数据集选择支持只恢复邮件目录而不停库。卡住了怎么办按症状排查症状一generate_config.sh 提示.env符号链接不指向 mailcow.conf。运行ls -l .env mailcow.conf检查链接是否存在修复方向必须在 mailcow 安装目录内先执行ln -s mailcow.conf .env且确认没有把.env当成普通文本文件编辑过。症状二个别容器反复重启watchdog 不断报警。先运行docker compose ps锁定问题容器再用docker compose logs --tail50加容器名查看日志修复方向常见原因是内存不足导致 ClamAV 进程被 OOM 杀掉把mailcow.conf中SKIP_CLAMD改为y后运行docker compose up -d重建IPv6 配置错误也会引发类似问题可在 compose 文件里关闭 IPv6。症状三update.sh 更新停在合并代码或报错退出。运行git status查看本地改动修复方向更新前务必备份脚本本身会在合并前保存 diff如果只想清理过期镜像单独运行./update.sh --gc报错后按脚本提示先docker compose up -d恢复原状态再排查。跑起来之后按频率做最小维护首次上线当天改掉默认管理员密码执行一次./helper-scripts/backup_and_restore.sh backup all建立首个恢复点在mailcow.conf里给 watchdog 配置通知邮箱让容器异常时能收到邮件。每周定时备份一次把备份命令加入 crontab运行docker compose ps扫一遍容器状态用df -h确认邮件数据所在分区未接近写满。每月先备份再运行./update.sh拉取稳定版更新脚本会合并代码、拉取新镜像并自动重启同时确认 ACME 容器已为新域名自动签发证书管理界面里查看证书到期时间即可。mailcow 的设计把装得起来这件事压到了最小成本剩下的精力可以放在域名、DNS 与日常备份上。想继续深入可以从 generate_config.sh 读懂全部配置项或从 helper-scripts/mailcow-reset-admin.sh 这类运维脚本入手它们都是可直接运行的实现。【免费下载链接】mailcow-dockerizedmailcow: dockerized - 项目地址: https://gitcode.com/GitHub_Trending/ma/mailcow-dockerized创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表