Docker部署onlyoffice反向代理

OnlyOffice是一款强大的在线office工具,我们通过它可以让客户脱离于客户端环境,直接从web端进行文档编写。而且,其本身可以也集成了许多功能,比如邮件,项目管理,CRM,社区等。但本篇文章我们只研究onlyOffice的部署与文档预览编辑,官方地址:https://www.onlyoffice.com/zh

概述

ONLYOFFICE Document Server 是一个在线办公套件,包括文本、电子表格和演示文稿的查看器和编辑器,完全兼容 Office Open XML 格式:.docx、.xlsx、.pptx,并支持实时协作编辑。

功能性

  • ONLYOFFICE 文档编辑器
  • ONLYOFFICE 电子表格编辑器
  • ONLYOFFICE 演示文稿编辑器
  • 适用于 iOS 的 ONLYOFFICE 文档应用程序
  • 协作编辑
  • 象形文字支持
  • 支持所有流行格式:DOC、DOCX、TXT、ODT、RTF、ODP、EPUB、ODS、XLS、XLSX、CSV、PPTX、HTML

将其与 ONLYOFFICE 社区服务器集成,您将能够:

  • 查看和编辑存储在连接到 ONLYOFFICE 的 Drive、Box、Dropbox、OneDrive、OwnCloud 上的文件;
  • 分享文件;
  • 在网站上嵌入文档;
  • 管理对文档的访问权限。

推荐的系统要求

  • 内存:4 GB 或更多
  • CPU : 双核 2 GHz 或更高
  • 交换文件:至少 2 GB
  • 硬盘:至少 2 GB 的可用空间
  • 发行版:64 位 Red Hat、CentOS 或其他兼容内核版本 3.8 或更高版本的发行版,64 位 Debian、Ubuntu 或其他兼容内核版本 3.8 或更高版本的发行版
  • Docker:版本 1.9.0 或更高版本

运行 Docker 镜像

sudo docker run -i -t -d -p 80:80 onlyoffice/documentserver

如果您希望单独安装 ONLYOFFICE 文档服务器,请使用此命令。要安装与社区和邮件服务器集成的 ONLYOFFICE 文档服务器,请参阅下面的相应说明。

配置 Docker 镜像

存储数据

所有数据都存储在以下位置的特别指定目录data volumes中:

  • /var/log/onlyoffice用于 ONLYOFFICE 文档服务器日志
  • /var/www/onlyoffice/证书数据

要从容器外部访问您的数据,您需要安装卷。可以通过在 docker run 命令中指定“-v”选项来完成。

sudo docker run -i -t -d -p 80:80 \ #默认是80,我们可以修改端口例如:8080:80
    -v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice  \  #安装目录根据情况
    -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data  onlyoffice/documentserver

将数据存储在主机上可以让您在新版本发布后轻松更新 ONLYOFFICE 而不会丢失数据。

在不同端口上运行 ONLYOFFICE 文档服务器

要更改端口,请使用 -p 命令。例如:要使您的门户可以通过端口 8080 访问,请执行以下命令:

sudo docker run -i -t -d -p 8080:80 onlyoffice/documentserver

使用 HTTPS 运行 ONLYOFFICE 文档服务器

    sudo docker run -i -t -d -p 443:443 \
    -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data  onlyoffice/documentserver

可以使用 SSL 保护对 onlyoffice 应用程序的访问,以防止未经授权的访问。虽然 CA 认证的 SSL 证书允许通过 CA 验证信任,但自签名证书也可以提供同等级别的信任验证,只要每个客户端都采取一些额外的步骤来验证您网站的身份。下面提供了实现此目的的说明。

要通过 SSL 保护应用程序,基本上需要两件事:

  • 私钥 (.key)
  • SSL 证书 (.crt)

因此,您需要创建并安装以下文件:

    /app/onlyoffice/DocumentServer/data/certs/onlyoffice.key
    /app/onlyoffice/DocumentServer/data/certs/onlyoffice.crt

使用 CA 认证证书时,这些文件由 CA 提供给您。使用自签名证书时,您需要自己生成这些文件。如果您拥有 CA 认证的 SSL 证书,请跳过以下部分。

自签名证书的生成

自签名 SSL 证书的生成涉及一个简单的 3 步过程。

第 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 应用程序配置为查找 SSL 证书的默认路径是 at /var/www/onlyoffice/Data/certs,但是可以使用SSL_KEY_PATH和配置选项SSL_CERTIFICATE_PATH进行更改。SSL_DHPARAM_PATH

路径是数据存储的/var/www/onlyoffice/Data/路径,这意味着您必须在其中创建一个名为 certs 的文件夹并将/app/onlyoffice/DocumentServer/data/文件复制到其中,作为安全措施,您将更新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 run 命令选项以获取--env-file可以在单个文件中指定所有必需环境变量的标志。这将使您免于编写可能很长的 docker run 命令。

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

  • ONLYOFFICE_HTTPS_HSTS_ENABLED:用于关闭 HSTS 配置的高级配置选项。仅在使用 SSL 时适用。默认为true.
  • ONLYOFFICE_HTTPS_HSTS_MAXAGE:用于在 onlyoffice nginx vHost 配置中设置 HSTS max-age 的高级配置选项。仅在使用 SSL 时适用。默认为31536000.
  • SSL_CERTIFICATE_PATH:要使用的 SSL 证书的路径。默认为/var/www/onlyoffice/Data/certs/onlyoffice.crt.
  • SSL_KEY_PATH:SSL 证书私钥的路径。默认为/var/www/onlyoffice/Data/certs/onlyoffice.key.
  • SSL_DHPARAM_PATH:Diffie-Hellman 参数的路径。默认为/var/www/onlyoffice/Data/certs/dhparam.pem.
  • SSL_VERIFY_CLIENT:启用使用CA_CERTIFICATES_PATH文件验证客户端证书。默认为false

安装与社区和邮件服务器集成的 ONLYOFFICE 文档服务器

ONLYOFFICE 文档服务器是 ONLYOFFICE 社区版的一部分,它还包括社区服务器和邮件服务器。要安装它们,请按照以下简单步骤操作:

第 1步:创建“onlyoffice”网络。

docker network create --driver bridge onlyoffice

比使用 ‘docker run –net onlyoffice’ 选项在其上启动容器:

第 1步:安装 ONLYOFFICE 文档服务器。

sudo docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-document-server \
	-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \
	-v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \
	onlyoffice/documentserver

第 2步:安装 ONLYOFFICE 邮件服务器。

对于邮件服务器的正确工作,您需要指定其主机名“yourdomain.com”。要了解更多信息,请参阅ONLYOFFICE 邮件服务器文档

sudo docker run --net onlyoffice --privileged -i -t -d --restart=always --name onlyoffice-mail-server \
	-p 25:25 -p 143:143 -p 587:587 \
	-v /app/onlyoffice/MailServer/data:/var/vmail \
	-v /app/onlyoffice/MailServer/data/certs:/etc/pki/tls/mailserver \
	-v /app/onlyoffice/MailServer/logs:/var/log \
	-v /app/onlyoffice/MailServer/mysql:/var/lib/mysql \
	-h yourdomain.com \
	onlyoffice/mailserver

第 3步:安装 ONLYOFFICE 社区服务器

sudo docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-community-server \
	-p 80:80 -p 5222:5222 -p 443:443 \
	-v /app/onlyoffice/CommunityServer/data:/var/www/onlyoffice/Data \
	-v /app/onlyoffice/CommunityServer/mysql:/var/lib/mysql \
	-v /app/onlyoffice/CommunityServer/logs:/var/log/onlyoffice \
	-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/DocumentServerData \
	-e DOCUMENT_SERVER_PORT_80_TCP_ADDR=onlyoffice-document-server \
	-e MAIL_SERVER_DB_HOST=onlyoffice-mail-server \
	onlyoffice/communityserver

或者,您可以使用自动安装脚本一次安装整个 ONLYOFFICE 社区版。对于邮件服务器的正确工作,您需要指定其主机名“yourdomain.com”。

第 1步:下载社区版 Docker 脚本文件

wget http://download.onlyoffice.com/install/opensource-install.sh

第 2步:安装 ONLYOFFICE 社区版,执行以下命令:

bash opensource-install.sh -md yourdomain.com

或者,使用docker-compose。对于邮件服务器的正确工作,您需要指定其主机名“yourdomain.com”。假设您已安装 docker-compose,请执行以下命令:

wget https://raw.githubusercontent.com/ONLYOFFICE/Docker-CommunityServer/master/docker-compose.yml
docker-compose up -d

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注