• 首页
  • 在本地服务器上安装 ONLYOFFICE Mail Docker 版
本文由AI翻译

在本地服务器上安装 ONLYOFFICE Mail Docker 版

简介

ONLYOFFICE Mail 是一个基于 iRedMail 包开发的全功能邮件服务器解决方案,包含以下组件:Postfix、Dovecot、SpamAssassin、ClamAV、OpenDKIM、Fail2ban。

ONLYOFFICE Workspace 集成后,ONLYOFFICE Mail 允许您:

  • 连接您自己的域名;
  • 创建邮箱;
  • 为每个邮箱添加别名;
  • 创建邮箱组。

本指南将向您展示如何在您的机器上安装 ONLYOFFICE Mail 的 Docker 版本。

系统要求

  • CPU
    双核 2 GHz 或更高
  • 内存
    4 GB 或更多
  • 硬盘
    至少 20 GB 的可用空间
  • SWAP
    至少 4 GB,但取决于主机操作系统。更多更好
  • 操作系统
    amd64 Linux 发行版,内核版本 3.10 或更高
  • 附加要求
    • Docker:任何由 Docker 团队支持的版本
在 Ubuntu 20.04 上安装 ONLYOFFICE Mail 时,需要禁用默认的 ufw 防火墙。

开始安装前的准备

在开始安装 ONLYOFFICE Mail 之前,您需要将要安装 ONLYOFFICE Mail 的计算机与为邮件服务器选择的域名链接。我们建议您为邮件服务器计算机的 A 记录 选择一个类似 mx.yourdomain.com 的名称。这意味着您的域名系统 (DNS) 中的 A 记录 必须指向将安装 ONLYOFFICE Mail 的计算机的 IP 地址,而该计算机上的 指针 (PTR) 记录 必须将计算机 IP 地址解析为完全合格的域名 (FQDN),与 A 记录 的作用相反。

要验证 A 记录 设置的正确性,可以使用以下命令:

dig -t A mx.yourdomain.com

如果一切正确,您应该会看到输出中包含类似以下的行:

...;; ANSWER SECTION:
mx.yourdomain.com.  IN  A   {your IP address}...

其中 {your IP address} 将显示服务器的实际 IP 地址。

PTR 记录 可以通过另一个命令进行检查:

dig -x {your IP address}

它应该返回包含类似以下行的输出:

...;; ANSWER SECTION:{your IP address}   IN  PTR mx.yourdomain.com....

确保所有设置正确后,您可以继续进行下一步。

安装 ONLYOFFICE Mail 后,您还需要为 yourdomain.com 添加一个 MX 记录,使其指向 mx.yourdomain.com。这是为了确保邮件能够到达 @yourdomain.com 地址。

使用自动脚本命令安装 ONLYOFFICE Mail

如果您不想手动设置所有内容,可以使用我们的 Docker 脚本自动安装 ONLYOFFICE Mail。您可以通过我们的网站下载页面下载脚本。或者,如果您觉得更方便,也可以使用直接下载链接:

wget https://download.onlyoffice.com/install/workspace-install.sh

下载完成后,运行以下命令安装 ONLYOFFICE Mail

bash workspace-install.sh -ics false -ids false -icp false -ims true -md yourdomain.com -es true

手动安装 ONLYOFFICE Mail

如果您希望完全控制安装的内容和方式,可以以手动模式运行安装。请按照以下步骤进行。

安装先决条件

您需要安装最新版本的 Docker。如果您尚未安装,请参阅 Docker 网站上的安装部分以了解如何获取。

Docker 默认指定 Google DNS 服务器。如果您的 ONLYOFFICE Workspace 无法访问互联网,我们建议您将默认的 Docker DNS 地址更改为本地 DNS 服务器的地址。为此,请转到 /etc/default/docker 文件,并将以下行中的 IP 地址更改为本地网络中 DNS 服务器的 IP 地址:
docker_OPTS="--dns 8.8.8.8"

对于基于 RPM 的操作系统,如 CentOS:

  1. 创建 /etc/docker/daemon.json 配置文件,内容如下:
    { "dns" : [ "8.8.8.8" ] }
  2. 重启 Docker 服务:
    
    sudo systemctl restart docker.service

在开始安装之前,您需要创建以下文件夹:

  1. 用于 MySQL 服务器
    sudo mkdir -p "/app/onlyoffice/mysql/conf.d";
    sudo mkdir -p "/app/onlyoffice/mysql/data";
    sudo mkdir -p "/app/onlyoffice/mysql/initdb";
  2. 用于 ONLYOFFICE Mail 数据和日志
    sudo mkdir -p "/app/onlyoffice/MailServer/data/certs";
    sudo mkdir -p "/app/onlyoffice/MailServer/logs";

然后创建 onlyoffice 网络:

sudo docker network create --driver bridge onlyoffice
安装 MySQL

之后,您需要创建 MySQL 服务器 Docker 容器。创建配置文件:

echo "[mysqld]
sql_mode = 'NO_ENGINE_SUBSTITUTION'
max_connections = 1000
max_allowed_packet = 1048576000
group_concat_max_len = 2048" > /app/onlyoffice/mysql/conf.d/onlyoffice.cnf

创建 SQL 脚本以生成用户并为其授予权限。onlyoffice_userONLYOFFICE Community Server 所需的,而 mail_adminONLYOFFICE Mail 所需的(如果要安装):

echo "ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'my-secret-pw';
CREATE USER IF NOT EXISTS 'onlyoffice_user'@'%' IDENTIFIED WITH mysql_native_password BY 'onlyoffice_pass';
CREATE USER IF NOT EXISTS 'mail_admin'@'%' IDENTIFIED WITH mysql_native_password BY 'Isadmin123';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'onlyoffice_user'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'mail_admin'@'%';
FLUSH PRIVILEGES;" > /app/onlyoffice/mysql/initdb/setup.sql
请注意,上述脚本将设置从任何域访问 SQL 服务器的权限 (%)。如果您想限制访问,可以指定哪些主机可以访问 SQL 服务器。

现在您可以创建 MySQL 容器,将 MySQL 版本设置为 8.0.29:

sudo docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-mysql-server \
 -v /app/onlyoffice/mysql/conf.d:/etc/mysql/conf.d \
 -v /app/onlyoffice/mysql/data:/var/lib/mysql \
 -v /app/onlyoffice/mysql/initdb:/docker-entrypoint-initdb.d \
 -e MYSQL_ROOT_PASSWORD=my-secret-pw \
 -e MYSQL_DATABASE=onlyoffice \
 mysql:8.0.29
如果您想使用外部数据库,您需要设置它(即添加一个用户):
CREATE USER 'mail_admin'@'localhost' IDENTIFIED BY 'Isadmin123';
GRANT ALL PRIVILEGES ON * . * TO 'mail_admin'@'%' IDENTIFIED BY 'Isadmin123';
FLUSH PRIVILEGES;
安装 ONLYOFFICE Mail

准备就绪后,执行以下命令:

sudo docker run --init --net onlyoffice --privileged -i -t -d --restart=always --name onlyoffice-mail-server -p 25:25 -p 143:143 -p 587:587 -p 8081:8081 \
 -e MYSQL_SERVER=onlyoffice-mysql-server \
 -e MYSQL_SERVER_PORT=3306 \
 -e MYSQL_ROOT_USER=root \
 -e MYSQL_ROOT_PASSWD=my-secret-pw \
 -e MYSQL_SERVER_DB_NAME=onlyoffice_mailserver \
 -v /app/onlyoffice/MailServer/data:/var/vmail \
 -v /app/onlyoffice/MailServer/data/certs:/etc/pki/tls/mailserver \
 -v /app/onlyoffice/MailServer/logs:/var/log \
 -h yourdomain.com \
 onlyoffice/mailserver

其中 yourdomain.com 是您的邮件服务器主机名。

用于维护通信的域名必须有效并配置为此机器(即,它应该在 DNS 设置中有适当的 A 记录,将您的域名指向安装 ONLYOFFICE Mail 的机器的 IP 地址)。
在上面的命令中,"yourdomain.com" 参数应被理解为 ONLYOFFICE Mail 的服务域。通常在将用于维护通信的域名的 MX 记录 中指定。通常,"yourdomain.com" 看起来像 mx1.onlyoffice.com

在这种情况下,邮件服务器将确保邮件传递到此服务器上托管的内部地址。

在容器外存储数据

所有数据都存储在专门指定的目录中,即 数据卷,位置如下:

  • /var/log 用于 ONLYOFFICE Mail 日志
  • /var/lib/mysql 用于 MySQL 数据库数据
  • /var/vmail 用于邮件存储
  • /etc/pki/tls/mailserver 用于证书
我们建议 我们强烈建议您将数据存储在主机上的 Docker 容器之外,这样可以在发布新版本时轻松更新 ONLYOFFICE Mail 而不会丢失数据。

要访问位于容器外的数据,您需要挂载卷。可以通过在 docker run 命令中指定 -v 选项来完成。

sudo docker run --privileged -i -t -d -p 25:25 -p 143:143 -p 587:587 -p 8081:8081 \
        -v /app/onlyoffice/MailServer/logs:/var/log  \
        -v /app/onlyoffice/MailServer/mysql:/var/lib/mysql  \
        -v /app/onlyoffice/MailServer/data:/var/vmail  \
        -v /app/onlyoffice/MailServer/data/certs:/etc/pki/tls/mailserver -h yourdomain.com onlyoffice/mailserver
请注意,如果您尝试挂载尚未创建的文件夹,这些文件夹将被创建,但访问权限将受到限制。您需要手动更改其访问权限。

将数据存储在主机上允许您在发布新版本时轻松更新 ONLYOFFICE Mail 而不会丢失数据。

配置 Docker 镜像

为了确保邮件传递到内部地址以及外部服务器的地址,您需要获取自己的域名并配置 DNS 服务器。

需要以下 DNS 记录:

  • A 记录(用于将域指向部署此 Docker 镜像的主机的 IP 地址)。
  • 指针 (PTR) 记录或反向 DNS 记录(用于将网络接口 (IP) 映射到主机名)。
sudo docker run --privileged -i -t -d -p 25:25 -p 143:143 -p 587:587 \
-v /app/onlyoffice/MailServer/data/certs:/etc/pki/tls/mailserver -h yourdomain.com onlyoffice/mailserver

其中 yourdomain.com 是您的邮件服务器主机名。

安装 SSL 证书

在运行 Docker 容器时,将默认创建您的域的自签名证书。如果您想使用 CA 认证的证书,您需要在运行镜像之前将其重命名并复制到 /app/onlyoffice/MailServer/data/certs 目录中。需要以下文件:

  • /app/onlyoffice/MailServer/data/certs/mail.onlyoffice.key
  • /app/onlyoffice/MailServer/data/certs/mail.onlyoffice.crt
  • /app/onlyoffice/MailServer/data/certs/mail.onlyoffice.ca-bundle

您可以在运行镜像后将 SSL 证书复制到 /app/onlyoffice/MailServer/data/certs 目录中。但在这种情况下,您需要重新启动 Docker 容器。

可用的配置参数
请参考 docker run 命令选项中的 `--env-file` 标志,您可以在单个文件中指定所有必需的环境变量。这将使您无需编写可能很长的 docker run 命令。

以下是可以使用环境变量设置的参数的完整列表。

  • STORAGE_BASE_DIR:邮件存储路径。默认值为 /var/vmail
  • FIRST_DOMAIN:第一个虚拟域,将托管邮政管理员地址。此域不应与主要邮件服务器域重合。默认值为 mailserver.onlyoffice.com
  • DOMAIN_ADMIN_PASSWD:邮政管理员密码。默认邮政管理员地址为 postmaster@mailserver.onlyoffice.com

安装与 ONLYOFFICE 文档集成的 ONLYOFFICE Mail

ONLYOFFICE MailONLYOFFICE Workspace 的一部分,其中还包括 ONLYOFFICE 文档ONLYOFFICE 控制面板ONLYOFFICE 社区服务器。如果您想安装它们并相互集成,请阅读这些说明

安装 ONLYOFFICE Mail 的替代方法

或者,您可以使用自动安装脚本一次性安装整个 Workspace。为了邮件服务器正常工作,您需要指定其主机名 yourdomain.com

步骤 1:下载安装脚本文件

执行以下命令:

wget https://download.onlyoffice.com/install/workspace-install.sh

步骤 2:安装 Workspace

运行以下命令:

bash workspace-install.sh -md yourdomain.com

在您自己的服务器上托管 ONLYOFFICE 文档,或在云端使用

文章: 标签:
浏览所有标签