首页
/ 超详细Billion Mail离线部署指南:无互联网环境下的完整安装方案

超详细Billion Mail离线部署指南:无互联网环境下的完整安装方案

2026-02-05 04:51:04作者:段琳惟

你是否曾因服务器无法连接互联网而无法部署邮件营销平台?Billion Mail作为一款未来开源的电子邮件营销平台,提供了灵活的离线部署方案。本文将详细介绍在无网络环境下安装Billion Mail的完整流程,包括准备工作、环境配置、安装步骤和验证方法,让你在没有网络的情况下也能轻松搭建专业的邮件营销系统。

读完本文后,你将能够:

  • 准备离线部署所需的所有文件和资源
  • 配置Billion Mail的离线安装环境
  • 执行离线安装脚本并解决常见问题
  • 验证部署结果并确保系统正常运行

准备工作

在开始离线部署前,需要准备以下文件和资源。请确保你已经从有网络的环境中下载了所有必要的安装包和配置文件。

必要文件清单

Billion Mail的离线部署需要以下关键文件,这些文件可以在项目仓库中找到:

  • 安装脚本install.sh - 用于执行安装流程的主脚本
  • Docker Compose配置docker-compose.yml - 定义服务组件和网络配置
  • 环境变量初始化脚本env_init - 用于生成环境变量配置
  • 数据库初始化脚本init.sql - 用于初始化PostgreSQL数据库
  • 配置文件目录conf/ - 包含所有服务的配置文件模板

硬件和系统要求

Billion Mail对服务器有以下最低要求:

组件 最低要求 推荐配置
CPU 2核 4核或更高
内存 4GB RAM 8GB RAM
存储空间 20GB 可用空间 50GB SSD
操作系统 Linux (64位) Ubuntu 20.04 LTS 或 CentOS 8
架构 x86_64 或 aarch64 x86_64

注意:Billion Mail不支持32位系统,安装脚本会在开始时检查系统架构。如install.sh第40-44行所示:

if [[ ! " ${SUPPORTED_ARCHS[@]} " =~ " ${CPU_architecture} " ]]; then
    echo -e "\033[31mSorry, not support the ${CPU_architecture} architecture for install. \nPlease use the x86_64, aarch64 server architecture. \033[0m"
    exit 1
fi

部署步骤

步骤1:传输文件到目标服务器

将所有必要文件复制到目标服务器的部署目录。假设我们将文件复制到/opt/billionmail目录:

# 在目标服务器上创建部署目录
mkdir -p /opt/billionmail

# 从本地机器复制文件(在有网络的机器上执行)
scp -r install.sh docker-compose.yml env_init init.sql conf/ user@target-server:/opt/billionmail/

步骤2:准备Docker镜像

Billion Mail使用Docker容器化部署,需要预先加载所有必要的Docker镜像。在有网络的环境中,可以使用以下命令保存镜像:

# 拉取所需镜像
docker pull postgres:17.4-alpine
docker pull redis:7.4.2-alpine
docker pull billionmail/rspamd:1.2
docker pull billionmail/dovecot:1.5
docker pull billionmail/postfix:1.6
docker pull roundcube/roundcubemail:1.6.10-fpm-alpine
docker pull billionmail/core:4.6.1

# 保存镜像到文件
docker save -o billionmail-images.tar postgres:17.4-alpine redis:7.4.2-alpine billionmail/rspamd:1.2 billionmail/dovecot:1.5 billionmail/postfix:1.6 roundcube/roundcubemail:1.6.10-fpm-alpine billionmail/core:4.6.1

将生成的billionmail-images.tar文件传输到目标服务器,然后加载镜像:

# 在目标服务器上加载镜像
docker load -i billionmail-images.tar

步骤3:配置环境变量

运行环境变量初始化脚本生成.env文件,该文件包含所有必要的配置参数:

# 进入部署目录
cd /opt/billionmail

# 使初始化脚本可执行
chmod +x env_init

# 运行初始化脚本,生成.env文件
./env_init

注意:env_init脚本会提示你输入一些必要的配置信息,如邮件服务器域名、时区等。如果不手动输入,脚本会使用默认值,如install.sh第120-122行所示:

if [ -z "${BILLIONMAIL_HOSTNAME}" ]; then
    BILLIONMAIL_HOSTNAME="example.com"
fi

步骤4:执行离线安装

使用install.sh脚本执行离线安装。由于是离线环境,需要添加--offline参数跳过网络检查和下载步骤:

# 使安装脚本可执行
chmod +x install.sh

# 执行离线安装
./install.sh --offline

安装过程会执行以下操作:

  1. 检查系统架构和依赖
  2. 配置Docker网络和存储卷
  3. 启动所有服务容器
  4. 初始化数据库
  5. 配置Postfix和Dovecot服务

安装脚本会自动处理大多数配置,但在某些情况下可能需要手动干预。详细安装流程可以查看install.sh的源代码。

步骤5:启动服务

安装完成后,可以使用Docker Compose启动所有服务:

# 使用docker-compose启动服务
docker-compose up -d

这会启动以下服务容器,如docker-compose.yml中定义:

  • pgsql-billionmail:PostgreSQL数据库服务
  • redis-billionmail:Redis缓存服务
  • rspamd-billionmail:Rspamd垃圾邮件过滤服务
  • dovecot-billionmail:Dovecot IMAP/POP3服务
  • postfix-billionmail:Postfix SMTP服务
  • webmail-billionmail:Roundcube Webmail服务
  • core-billionmail:Billion Mail核心管理服务

验证部署

检查服务状态

使用以下命令检查所有Docker容器是否正常运行:

# 查看容器状态
docker-compose ps

正常情况下,所有服务的状态都应显示为"Up"。如果有服务未正常启动,可以查看日志排查问题:

# 查看特定服务的日志,例如core服务
docker-compose logs core-billionmail

访问管理界面

打开浏览器,访问服务器的IP地址或域名(根据你在env_init中配置的值):

http://服务器IP地址
或
https://服务器IP地址

你应该能看到Billion Mail的管理登录界面。初始管理员账户凭据会在安装过程中生成并显示,也可以在billionmail.conf文件中找到:

# 查看管理员凭据
cat billionmail.conf | grep -i admin

测试邮件发送功能

登录管理界面后,可以通过以下步骤测试邮件发送功能:

  1. 导航到"邮件发送"菜单
  2. 创建一个简单的邮件模板
  3. 添加测试收件人邮箱
  4. 发送测试邮件
  5. 检查收件箱是否收到邮件

如果邮件发送失败,可以检查Postfix日志:

# 查看Postfix日志
tail -f logs/postfix/mail.log

常见问题解决

Docker服务启动失败

如果Docker服务无法启动,可能是由于SELinux或AppArmor限制。可以尝试以下解决方案:

# 检查Docker服务状态
systemctl status docker

# 查看Docker日志
journalctl -u docker.service

如果日志中出现权限相关错误,可以临时禁用SELinux:

# 临时禁用SELinux
setenforce 0

或者在install.sh中找到Docker启动部分(第403-453行),检查是否有配置问题。

端口冲突问题

Billion Mail需要使用多个网络端口,如果这些端口已被其他服务占用,安装会失败。可以使用以下命令检查端口占用情况:

# 检查关键端口占用情况
netstat -tulpn | grep -E ":25|465|587|143|993|110|995"

如果发现冲突端口,可以在docker-compose.yml中修改相应服务的端口映射,例如修改SMTP端口:

services:
  postfix-billionmail:
    ports:
      - "2525:25"  # 将主机端口2525映射到容器端口25

数据库连接问题

如果应用无法连接数据库,可能是数据库凭据配置错误。可以检查.env文件中的数据库配置:

# 查看数据库配置
cat .env | grep -E "DBUSER|DBNAME|DBPASS"

确保这些值与init.sql中创建的数据库用户和密码匹配。

总结与后续步骤

恭喜!你已经成功在无互联网环境下部署了Billion Mail邮件营销平台。以下是一些建议的后续步骤:

  1. 安全加固

    • 更新默认管理员密码
    • 配置SSL/TLS证书(可以使用项目中的ssl-self-signed/目录生成自签名证书)
    • 配置防火墙,只开放必要端口
  2. 系统监控

    • 设置日志轮转,防止日志文件过大
    • 监控服务器资源使用情况
    • 配置服务健康检查告警
  3. 数据备份

    • 定期备份PostgreSQL数据库
    • 备份重要配置文件
    • 制定灾难恢复计划

Billion Mail的更多高级功能和配置选项可以参考项目文档和配置文件:

  • README.md - 项目概述和基本使用说明
  • conf/ - 详细的服务配置文件
  • core/ - 核心应用源代码

如有任何问题或需要进一步的帮助,请查看项目的SECURITY.md文档或提交issue获取支持。

登录后查看全文
热门项目推荐
相关项目推荐