安装 ONLYOFFICE 文档 Docker 版本于 arm64
简介
从版本 7.1 开始,ONLYOFFICE 文档可以使用 Docker 安装在 64 位 ARM 架构上。
开发者版允许您在本地服务器上安装ONLYOFFICE 文档并将在线编辑器与您的 Web 应用集成。
ONLYOFFICE 文档是一套在线办公软件,包括文本、电子表格和演示文稿的查看器和编辑器,完全兼容 Office Open XML 格式:.docx、.xlsx、.pptx,并支持实时协作编辑。
功能
- 文档编辑器
- 电子表格编辑器
- 演示文稿编辑器
- 移动网页查看器
- 移动网页编辑器
- 协作编辑
- 支持象形文字
- 支持所有流行格式:DOC、DOCX、TXT、ODT、RTF、ODP、EPUB、ODS、XLS、XLSX、CSV、PPTX、HTML
查看 详细功能列表,适用于ONLYOFFICE 文档开发者版。
本指南将向您展示如何安装ONLYOFFICE 文档开发者版 Docker 版本 7.2 及更高版本于 64 位 ARM 架构。
系统要求
- CPU64 位 ARM 处理器
- 内存4 GB 或更多
- 硬盘至少 40 GB 的可用空间
- SWAP至少 4 GB,但取决于主机操作系统。更多更好
- 操作系统适用于 arm64 的 Linux 发行版
- 附加要求
- Docker:任何由 Docker 团队支持的版本
安装 ONLYOFFICE 文档
/etc/default/docker文件并将以下行中的 IP 地址更改为本地网络中 DNS 服务器的 IP 地址:
docker_OPTS="--dns 8.8.8.8"对于基于 RPM 的操作系统,如 CentOS:
-
创建
/etc/docker/daemon.json配置文件,内容如下:{ "dns" : [ "8.8.8.8" ] } -
重启 Docker 服务:
sudo systemctl restart docker.service
安装 Docker 后,运行它并执行以下命令:
sudo docker run -i -t -d -p 80:80 --restart=always -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de:latest-e JWT_SECRET=my_jwt_secret中指定您自己的值。
如果您不打算在安装中使用 JWT,请使用-e JWT_ENABLED=false。
sudo docker run -i -t -d -p <PORT_NUMBER>:80 --restart=always -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de:latest
其中<PORT_NUMBER>是您希望ONLYOFFICE 文档使用的端口号。
这将安装ONLYOFFICE 文档及其所需的所有依赖项(脚本执行的操作列表可以在这里找到)。
在容器外存储数据
所有数据都存储在专门指定的目录中,称为数据卷,位置如下:
/var/log/onlyoffice用于ONLYOFFICE 文档日志/var/www/onlyoffice/Data用于证书/var/lib/onlyoffice用于文件缓存/var/lib/postgresql用于数据库
要访问位于容器外的数据,您需要挂载数据卷。这可以通过在 docker run 命令中指定-v选项来完成。
sudo docker run -i -t -d -p 80:80 --restart=always \
-v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \
-v /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice \
-v /app/onlyoffice/DocumentServer/db:/var/lib/postgresql -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de:latest通常,您不需要存储容器数据,因为容器操作不依赖于其状态。保存数据将有助于:
- 轻松访问容器数据,如日志;
- 移除容器内数据大小的限制;
- 使用在容器外启动的服务,如 PostgreSQL、Redis、RabbitMQ。
使用 HTTPS 运行 ONLYOFFICE 文档
sudo docker run -i -t -d -p 443:443 --restart=always \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de:latest可以使用 SSL 保护对 onlyoffice 应用的访问,以防止未经授权的访问。虽然 CA 认证的 SSL 证书允许通过 CA 验证信任,但只要每个客户端采取一些额外步骤来验证您网站的身份,自签名证书也可以提供同等的信任验证级别。下面提供了实现此目的的说明。
要通过 SSL 保护应用程序,基本上需要两个东西:
- 私钥 (.key)
- SSL 证书 (.crt)
因此,您需要创建并安装以下文件:
/app/onlyoffice/DocumentServer/data/certs/onlyoffice.key
/app/onlyoffice/DocumentServer/data/certs/onlyoffice.crt使用 CA 认证的证书(例如,Let's Encrypt)时,这些文件由 CA 提供。如果您使用自签名证书,则需要自己生成这些文件。
使用 certbot 将 ONLYOFFICE 文档切换到 HTTPS
将 ONLYOFFICE 文档 切换到 HTTPS 的最简单方法是使用 certbot 自动获取 Let's Encrypt SSL 证书。
运行 ONLYOFFICE 文档 Docker 容器,指定端口 80 和 443,并为变量设置您自己的值:
sudo docker run -i -t -d -p 80:80 -p 443:443 --restart=always \
-e LETS_ENCRYPT_DOMAIN=yourdomain.com -e LETS_ENCRYPT_MAIL=email@example.com -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de:latest其中:
- LETS_ENCRYPT_DOMAIN - 用于证书的域名。
- LETS_ENCRYPT_MAIL - 用于注册和恢复联系的电子邮件。
letsencrypt.org CA 签名的证书将自动生成并安装到您的服务器。现在,您的ONLYOFFICE 文档应该可以在 https://yourdomain.com 地址访问。
生成自签名证书
生成自签名 SSL 证书涉及一个简单的三步过程
步骤 1:创建服务器私钥
openssl genrsa -out onlyoffice.key 2048步骤 2:创建证书签名请求 (CSR)
openssl req -new -key onlyoffice.key -out onlyoffice.csr步骤 3:使用私钥和 CSR 签署证书
openssl x509 -req -days 365 -in onlyoffice.csr -signkey onlyoffice.key -out onlyoffice.crt您现在已经生成了一个有效期为 365 天的 SSL 证书。
加强服务器安全性
本节为您提供加强服务器安全性的说明。
为此,您需要生成更强的 DHE 参数。
openssl dhparam -out dhparam.pem 2048安装 SSL 证书
在上面生成的四个文件中,您需要在 onlyoffice 服务器上安装onlyoffice.key、onlyoffice.crt和dhparam.pem文件。CSR 文件不需要,但请确保安全备份文件(以防您再次需要)。
onlyoffice 应用程序配置为默认在/var/www/onlyoffice/Data/certs路径查找 SSL 证书,但可以使用SSL_KEY_PATH、SSL_CERTIFICATE_PATH和SSL_DHPARAM_PATH配置选项更改。
/var/www/onlyoffice/Data/路径是数据存储路径,这意味着您必须在/app/onlyoffice/DocumentServer/data/中创建一个名为 certs 的文件夹,并将文件复制到其中,并作为安全措施更新onlyoffice.key文件的权限,使其仅对所有者可读。
mkdir -p /app/onlyoffice/DocumentServer/data/certs
cp onlyoffice.key /app/onlyoffice/DocumentServer/data/certs/
cp onlyoffice.crt /app/onlyoffice/DocumentServer/data/certs/
cp dhparam.pem /app/onlyoffice/DocumentServer/data/certs/
chmod 400 /app/onlyoffice/DocumentServer/data/certs/onlyoffice.key并重启 Docker 容器:
sudo docker restart {{DOCUMENT_SERVER_ID}}您现在只需一步即可使我们的应用程序安全。
可用的配置参数
--env-file标志,您可以在单个文件中指定所有必需的环境变量。这将使您免于编写可能很长的 docker run 命令。以下是可以使用环境变量设置的参数的完整列表。
- ONLYOFFICE_HTTPS_HSTS_ENABLED:用于关闭 HSTS 配置的高级配置选项。仅在使用 SSL 时适用。默认为
true。 - ONLYOFFICE_HTTPS_HSTS_MAXAGE:用于设置 onlyoffice NGINX vHost 配置中的 HSTS 最大年龄的高级配置选项。仅在使用 SSL 时适用。默认为
31536000。 - SSL_CERTIFICATE_PATH:要使用的 SSL 证书的路径。默认为
/var/www/onlyoffice/Data/certs/tls.crt。 - SSL_KEY_PATH:SSL 证书私钥的路径。默认为
/var/www/onlyoffice/Data/certs/tls.key。 - SSL_DHPARAM_PATH:Diffie-Hellman 参数的路径。默认为
/var/www/onlyoffice/Data/certs/dhparam.pem。 - SSL_VERIFY_CLIENT:启用使用
CA_CERTIFICATES_PATH file验证客户端证书。默认为false。 - DB_TYPE:数据库类型。支持的值有
postgres、mariadb或mysql。默认为postgres。 - DB_HOST:数据库服务器运行的主机的 IP 地址或名称。
- DB_PORT:数据库服务器端口号。
- DB_NAME:在镜像启动时创建的数据库名称。
- DB_USER:数据库帐户的新用户名,具有超级用户权限。
- DB_PWD:为数据库帐户设置的密码。
- AMQP_URI:用于连接到消息代理服务器的AMQP URI。
- AMQP_TYPE:消息代理类型。支持的值有
rabbitmq或activemq。默认为rabbitmq。 - REDIS_SERVER_HOST:Redis 服务器运行的主机的 IP 地址或名称。
- REDIS_SERVER_PORT:Redis 服务器端口号。
- REDIS_SERVER_PASS:Redis 服务器密码。默认未设置密码。
- NGINX_WORKER_PROCESSES:定义 NGINX 工作进程的数量。
- NGINX_WORKER_CONNECTIONS:设置 NGINX 工作进程可以打开的最大同时连接数。
- SECURE_LINK_SECRET:为 nginx 配置指令secure_link_md5定义密钥。默认为
random string。 - JWT_ENABLED:指定启用ONLYOFFICE 文档的 JSON Web 令牌验证。默认为
true。 - JWT_SECRET:定义用于验证请求到ONLYOFFICE 文档的 JSON Web 令牌的密钥。默认为随机值。
- JWT_HEADER:定义用于发送 JSON Web 令牌的 HTTP 头。默认为
Authorization。 - JWT_IN_BODY:指定启用请求体中到ONLYOFFICE 文档的令牌验证。默认为
false。 - ALLOW_META_IP_ADDRESS:定义是否允许连接元 IP 地址。默认为
false。 - ALLOW_PRIVATE_IP_ADDRESS:定义是否允许连接私有 IP 地址。默认为
false。 - WOPI_ENABLED:指定启用 wopi 处理程序。默认为
false。 - USE_UNAUTHORIZED_STORAGE:如果为存储服务器(例如 Nextcloud)使用自签名证书,则设置为
true。默认为false。 - GENERATE_FONTS:当为
true时,在每次启动时重新生成字体列表和字体缩略图等。默认为true。 - METRICS_ENABLED:指定启用 StatsD 用于ONLYOFFICE 文档。默认为
false。 - METRICS_HOST:定义 StatsD 监听主机。默认为
localhost。 - METRICS_PORT:定义 StatsD 监听端口。默认为
8125。 - METRICS_PREFIX:定义后端服务的 StatsD 指标前缀。默认为
ds.。 - LETS_ENCRYPT_DOMAIN:定义 Let's Encrypt 证书的域。
- LETS_ENCRYPT_MAIL:定义 Let's Encrypt 证书的域管理员邮件地址。
注册您的开发者版版本
如果您购买了开发者版并收到了license.lic文件,您可以将其放置到您的安装中以获得软件的完整版本。
使用 docker 容器时,license.lic文件可以放置在任何文件夹中(例如,/app/onlyoffice/DocumentServer/data/license.lic),但您需要在容器启动时挂载此文件夹:
sudo docker run -i -t -d -p 80:80 --restart=always \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \
-e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de:latest之后,您的开发者版版本将变为注册和全功能版。