ARTICLE DETAIL

资讯详情

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

BillionMail 离线部署指南:内网环境 4 步跑起自建邮件营销服务器

BillionMail 离线部署指南:内网环境 4 步跑起自建邮件营销服务器 BillionMail 离线部署指南内网环境 4 步跑起自建邮件营销服务器【免费下载链接】BillionMailBillionMail gives you open-source MailServer, NewsLetter, Email Marketing — fully self-hosted, dev-friendly, and free from monthly fees. Join the discord: https://discord.gg/asfXzBUhZr项目地址: https://gitcode.com/GitHub_Trending/bi/BillionMail机房被物理隔离外网一个字节都出不来而邮件营销系统明天必须上线。BillionMail 这套开源邮件服务器 Newsletter 营销平台要在纯内网落地只能走离线部署镜像提前打包整体搬进去本地拉起。这篇笔记按 4 步流程把每个环节的坑都标出来了。 适用场景与前提30 秒对号入座不满足前提的项先补齐你的处境前提条件物理隔离的纯内网环境金融、政务目标机为 x86_64 或 aarch64 的 64 位 Linux带宽受限、多台机器部署同一套有一台能连外网的跳板机负责打包目标机没装 Docker离线包一起带上 Docker或提前装好25 / 80 / 443 端口已被占用启动前改 .env 里的端口映射在 LXC 容器里跑已开启嵌套选项否则建议换 VPS 或物理机内网域名无法被外网解析内部 DNS 或 /etc/hosts 能解析发信域名 主线流程备料 → 导入 → 点火 → 过堂备料这一步的目标在联网跳板机上产出一个可直接搬运的完整包。拉取仓库源码按 docker-compose.yml 声明拉齐全部 7 个镜像Postgres、Redis、Postfix、Dovecot、Rspamd、RoundCube、core镜像打包、源码同步到内网。cd /opt git clone https://gitcode.com/GitHub_Trending/bi/BillionMail cd BillionMail docker compose pull # 拉齐 compose 声明的全部镜像 docker save -o bm-images.tar $(docker compose config --images) # 镜像合并成一个包rsync -avz --progress /opt/BillionMail user10.0.0.8:/opt/ # 源码镜像搬进内网 sha256sum /opt/bm-images.tar # 两端各算一次校验和防拷贝截断最常见的坑是跳板机和目标机架构不一致amd64 对 arm64save 下来的镜像到目标机一个都用不了。先uname -m确认两边一样。导入这一步的目标镜像进目标机的 Docker配置文件就位。docker load -i bm-images.tar # 导入离线镜像包 docker images | grep billionmail # 核对 tag 与 compose 文件声明一致接着处理.envcp env_init .env后重点改三处——BILLIONMAIL_HOSTNAME发信域名、ADMIN_USERNAME / ADMIN_PASSWORD后台管理员凭据、被占用的端口映射。比在线跑 install.sh 少了自动装 Docker、自动配防火墙这些环节其余逻辑一致。最常见的坑是.env里的域名和内部 DNS 实际能解析的对不上。Postfix 的 myhostname 和 Rspamd 的 DKIM 签名都挂在这个值上错一个字母后面全白干。点火这一步的目标容器全部拉起端口放行后台可访问。cd /opt/BillionMail cp env_init .env # 生成环境配置并修改 docker compose up -d # 一次性拉起全部容器 docker compose ps # 全部应为 Up 状态防火墙手工放行22、80、443以及 25 / 465 / 587发信和 143 / 993收信。core 容器内置 fail2ban 做后台访问限流不用再单独装。最常见的坑是首启 1~2 分钟内 core 状态不是 Up 就急着重启。Postgres 第一次要初始化数据先docker compose logs core看它是不是在等数据库等够一分钟再下结论。过堂这一步的目标把登录、Webmail、发信全链路逐项验掉。检查项操作通过标准管理后台浏览器打开https://服务器IP/SafePath用 .env 凭据登录成功容器状态bash bm.sh status无反复重启的容器DNS 记录bash bm.sh show-recordA / MX / SPF / DKIM / DMARC 已配进内部 DNS测试发信后台建一封营销邮件发出收件正常打开与点击追踪有数据Webmail同域/roundcube/登录能收能发最常见的坑是拿/admin之类的固定路径试后台。管理入口是随机生成的SafePath只在.env里先抄下来再访问。 问题速查5 个高频故障现象现象原因处理容器反复重启.env 密码与旧数据卷对不上停容器清掉postgresql-data后重建25 端口被占系统原有邮件服务还在跑改.env的 SMTP_PORT 再重启容器后台打不开443 被占或入口路径猜错核对.env的 SafePath 与 HTTPS_PORT邮件一直卡在队列内网解析不了外部收件域名走内部 DNS 或配置内部中继 MX导入后提示镜像不存在架构或 tag 不一致对照 compose 文件在跳板机重新 save️ 加固与进阶上线前安全清单安全与运维加固.env的ADMIN_USERNAME / ADMIN_PASSWORD改成复杂凭据离线留一份备份防火墙只开 22、80、443 和必要的邮件端口默认拒绝其余postgresql-data、vmail-data、core-data三个目录纳入定期备份数据全在项目目录tar 一把即可内网 CA 证书申请下来后替换ssl/里的自签名证书每次升级镜像后把过堂一节完整重跑一遍进阶玩法中继发信量大时通过后台中继功能接多组 SMTP 中继账号按域分流相关逻辑见 core/internal/service/relay/。一机多实例改.env的IPV4_NETWORK网段并换项目目录可给不同业务域各跑一套。统一入口要挂在反向代理路径下参考 docs/REVERSE_PROXY.md。复盘5 个关键成功因素镜像版本与 compose 声明严格一致不临时换 tag端口冲突在点火前查完不留给运行时凭据、SafePath、域名三项启动前写进.env并存档验收走登录 → Webmail → 测试发信完整链路不只看容器绿备份方案在上线前就位而不是出事后补合规要求正把内网私有化邮件基础设施从小众需求推成敏感行业的标配配置自建邮件加营销这条路线会越来越常见。从装得上到跑得稳差的从来不是镜像是一套可复用的流程。【免费下载链接】BillionMailBillionMail gives you open-source MailServer, NewsLetter, Email Marketing — fully self-hosted, dev-friendly, and free from monthly fees. Join the discord: https://discord.gg/asfXzBUhZr项目地址: https://gitcode.com/GitHub_Trending/bi/BillionMail创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表