如何在本地服务器上借助Docker安装 ONLYOFFICE 文档 v7.2

使用社区版,您可以在本地服务器上安装 ONLYOFFICE 文档,并将在线编辑器与ONLYOFFICE 协作平台其他热门系统集成在一起。

ONLYOFFICE文档是什么

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

功能

  • 文档编辑器
  • 电子表格编辑器
  • 演示文稿编辑器
  • 移动网页查看器
  • 协作编辑
  • 支持象形文字
  • 支持所有常见格式:DOC、DOCX、TXT、ODT、RTF、ODP、EPUB、ODS、XLS、XLSX、CSV、PPTX、HTML

请查看 ONLYOFFICE 文档社区版功能详单

ONLYOFFICE文档最新版

最近ONLYOFFICE发布了v7.2,最新版本的在线编辑器提供了多种实用性改进:

  • 轻松的插件安装流程、
  • 实时查看器、
  • 支持连字、
  • 新可填写表单的字段类型、
  • 可插入到任何文档的、可编辑的OLE 电子表格、
  • 全新界面主题和语言、
  • 特殊粘贴热键等等。

阅读这篇文章,了解更多关于ONLYOFFICE文档v7.2新功能。

ONLYOFFICE 群组集成

将其与 ONLYOFFICE 群组集成,您就可以:

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

本指南将向您介绍如何在机器上安装 Docker 版的 ONLYOFFICE 文档社区版

系统要求

  • CPU:双核 2 GHz 或更高

  • 内存2GB 或更大

  • 硬盘:至少 40 GB 的可用空间

  • 其他要求:至少 4 GB 的交换空间

  • 操作系统amd64 Linux 发行版,内核版本为 3.10 或更高版本

  • 其他要求

    • Docker:任何被Docker团队支持的版本

安装 ONLYOFFICE 文档

您需要安装最新版本的 Docker。如果没有,请查看 Docker 网站上的安装部分了解如何获取。

Docker 默认情况下指定 Google DNS 服务器。如果您的 ONLYOFFICE 文档无法访问互联网,我们建议您将默认的 Docker DNS 地址更改为您本地 DNS 服务器的地址。如要执行此操作,请前往 /etc/default/docker 文件,并将以下行中的 IP 地址更改为您本地网络中 DNS 服务器的 IP 地址:

docker_OPTS="--dns 8.8.8.8"

CentOS 等基于 RPM 的操作系统:

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

Docker 安装完成后,运行并执行以下命令:

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

如要单独安装 ONLYOFFICE 文档,请使用此命令。如要安装集成了ONLYOFFICE 群组和 ONLYOFFICE 邮件的 ONLYOFFICE 文档,请参阅如下相关说明。

ONLYOFFICE 文档默认使用端口 80 监听传入连接。从 v4.3 版起,如果您计划使用 ONLYOFFICE 文档非默认端口,您可以做更改。只需在安装时变更映射端口即可实现。

sudo docker run -i -t -d -p <PORT_NUMBER>:80 --restart=always onlyoffice/documentserver

其中,<PORT_NUMBER> 是您希望 ONLYOFFICE 文档使用的端口号。

这将安装 ONLYOFFICE 文档和它所需的所有依赖项(可在此处找到脚本正在执行的清单)。

将数据存储在容器外部

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

  • ONLYOFFICE 文档日志位于:/var/log/onlyoffice
  • 证书位于:/var/www/onlyoffice/Data
  • 文件缓存位于:/var/lib/onlyoffice
  • 数据库位于:/var/lib/postgresql

我们建议:我们强烈建议您将数据存储在主机上的 Docker 容器外部,这样,您可以在新版本发布后轻松更新 ONLYOFFICE 文档,无数据丢失之虞。

如要访问位于容器外部的数据,您需要装载卷。可通过在 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  onlyoffice/documentserver

请注意,为防止您装载的文件夹未创建,系统会创建这些文件夹,但会限制对它们的访问。您需要手动更改 ir 访问权限。

通常,您不需要存储容器数据,因为容器操作不依赖于其状态。保存数据会非常有助于:

  • 轻松访问容器数据,如日志;
  • 取消容器内数据大小的限制;
  • 使用容器外启动的服务,如 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  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 认证的证书时 (例如,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 \
    -e LETS_ENCRYPT_DOMAIN=yourdomain.com -e LETS_ENCRYPT_MAIL=email@example.com  onlyoffice/documentserver

这里:

  • Let_ENCRYPT_DOMAIN:用于证书的域名。
  • LETS_ENCRYPT_MAIL:用于注册和恢复联系人的电子邮件。

经 letsencrypt.org CA 签名的证书会自动生成并安装到您的服务器上。现在,您的 ONLYOFFICE 文档应该可以在https://yourdomain.com的地址可用。

自签名证书的生成

生成自签名 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.keyonlyoffice.crtdhparam.pem。无需 CSR 文件,但需确保您已安全地备份了该文件(以防再次需要)。

将 onlyoffice 应用程序配置查找 SSL 证书的默认路径为 /var/www/onlyoffice/Data/certs,但是可以使用配置选项中的 SSL_KEY_PATHSSL_CERTIFICATE_PATHSSL_DHPARAM_PATH 更改路径。

/var/www/onlyoffice/Data/ path 是数据存储的路径,这样您必须在 /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 命令选项,您可以在单个文件中指定所有必需的环境变量。这样,您不必编写可能会很长的 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/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 文件时启用客户端证书验证。默认设置为 false
  • DB_TYPE:数据库类型。支持的值为 postgresmariadbmysql。默认为 postgres
  • DB_HOST:运行数据库服务器的主机的 IP 地址或名称。
  • DB_PORT:数据库服务器端口号。
  • DB_NAME:映像启动时创建的数据库的名称。
  • DB_USER:新用户名,拥有数据库帐号的超级用户权限。
  • DB_PWD:为数据库帐号设置的密码。
  • AMQP_URI:连接到消息代理服务器的AMQP URI
  • AMQP_TYPE:消息代理类型。支持的值包括 rabbitmqactivemq。默认为rabbitmq
  • REDIS_SERVER_HOST:运行 Redis 服务器的主机的 IP 地址或名称。
  • REDIS_SERVER_PORT:Redis 服务器端口号。
  • NGINX_WORKER_PROCESSES:定义 NGINX工作进程的编号。
  • NGINX_WORKER_CONNECTIONS:设置一个 NGINX 工作进程可以同时打开的最大连接数。
  • JWT_ENABLED:指定通过 ONLYOFFICE 文档启用 JSON 网络令牌验证。默认为 true
  • JWT_SECRET:定义用于验证 ONLYOFFICE 文档请求中的 JSON 网络令牌的密钥。默认为secret
  • JWT_HEADER:定义将用于发送 JSON 网络令牌的 HTTP 头。默认为Authorization
  • JWT_IN_BODY:指定在请求正文中启用对 ONLYOFFICE 文档的令牌验证。默认为 false
  • USE_UNAUTHORIZED_STORAGE:如您的存储服务器使用自签名证书,如 Nextcloud,则设置为true。默认为 false
  • GENERATE_FONTS:如果为 true,则在每次开始时重新生成字体列表和字体缩略图等。默认为 true
  • METRICS_ENABLED:指定 ONLYOFFICE 文档的启用 StatsD。默认为 false
  • METRICS_HOST:定义 StatsD 监听主机。默认为 localhost
  • METRICS_PORT:定义 StatsD 监听端口。默认为 8125
  • METRICS_PREFIX:定义后端服务的 StatsD 指标前缀。默认为 ds.
  • LETS_ENCRYPT_DOMAIN:定义“Let's Encrypt”证书的域。
  • LET_ENCRYPT_MAIL:定义“Let's Encrypt”证书的网域管理员邮件地址。

安装与 ONLYOFFICE 群组和 ONLYOFFICE 邮件集成的 ONLYOFFICE 文档

ONLYOFFICE 文档是 ONLYOFFICE 工作区的一部分,ONLYOFFICE 工作区还包括 ONLYOFFICE 社区服务器、ONLYOFFICE 控制面板和 ONLYOFFICE 邮件。如果您想安装所有这些组件并让它们互相集成,请阅读这些说明

安装 ONLYOFFICE 文档的其他方法

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

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

执行如下命令:

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

第 2 步:安装工作区

如要安装工作区,请运行如下命令:

bash workspace-install.sh -md yourdomain.com

或者您也可以使用 docker-compose 来安装 ONLYOFFICE 文档。如需了解如何操作,请参阅此处的说明

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容