本版特性
基于docker镜像制作,最新版本号: 8.3.0
设置OnlyOffice自动强制保存(8.1以后版本新增,每隔2小时强制保存)
默认OnlyOffice 只会在用户关闭页面后才会向后端发送文件保存请求。 如果用户长时间未关闭页面,则用户对文件的更改将不会及时保存(有可能丢失正在编辑的数据)。
开启多核心,速度更快(进一步优化,打开速度提升50%)。
关闭地址过滤,导入镜像后可以完美通过IP局域网运行(在7.4以上版本默认无法通过IP访问)
完美解锁手机端浏览和编辑(无需设置手机UA为电脑模式)
添加中文字体,加入了常用的十几种字体
支持http/https快速部署(默认开启ssl非常繁琐)
最大支持1G文档在线编辑(7.5以上新增)(默认30M)。
移除logo图标,协作编辑更专注(8.3新增)。
安装docker
已经安装过docker的直接跳过

#检测是否已经安装
docker -v
docker

如果能够显示版本号则已经安装。

Centos 8.x安装步骤

#安装docker容器,并添加阿里云私有加速镜像
wget -O install-docker.sh https://yun.ittel.cn:1443/f/55914227a93d4c50b3ce/?dl=1 && sh install-docker.sh 
Ubuntu 20.x/22.x安装步骤
#安装docker容器,并添加阿里云私有加速镜像 
wget -O install-docker.sh https://yun.ittel.cn:1443/f/bb8ecd197bed4521a59d/?dl=1 && sudo bash install-docker.sh

下载导入镜像(重要)
7.2.X存在致命缺陷(特定情况会提示无法保存),对于运行7.2.X的,建议更新到7.5.0以上版本。
运行onlyoffice7.3及以上镜像,linux内核版本需要大于3.10,Docker版本 >= 21(一般centos7.6以上、ubuntu20以上都符合)。
对于系统比较老,推荐使用7.1.1(比如群辉系统)
onlyoffice 7.1.1 社区版去除限制版镜像下载:
https://pan.quark.cn/s/0194fc51712d

onlyoffice 8.3.0最新版本文末下载(点此前往)

什么是连接器?
连接器 是一个允许从外部源编辑文本文档、电子表格、演示文稿和可填写表单的类, 使用高级”自动化API” 处理文档。

要创建连接器,请使用文档编辑器对象的createConnector方法 :

var connector = docEditor.createConnector()
onlyoffice-connector

运行容器-http方式(二选一)
docker运行下载onlyoffice,此处设置onlyoffice监听端口为8889(按实际情况修改)

#--restart=always表示每次开机,只要当docker被设置为开机启动,此onlyoffice就会自动运行
#-d 表示后台运行
#-i:  交互式操作。
#-t:  终端。
#-p 8889:80  宿主机的8889端口映射到容器的80端口
# ittel/onlyoffice:8.1.0zh-cn 改成实际的容器名称
#运行onlyoffice 8.1.0
docker run -i -t -d -e JWT_ENABLED=false --restart=always \
-p 8889:80 ittel/onlyoffice:8.1.0zh-cn

访问下http://IP:8889如果出现欢迎页面,则安装成功

运行容器-https方式(二选一)
1、上传SSL证书
将SSL证书.key文件和.crt文件改名为onlyoffice.keyonlyoffice.crt
如果没有.crt则把.pem改名为onlyoffice.crt

新建证书目录

[root@ecs-a869 yum.repos.d]# mkdir -pv /home/certs
将key和crt上传至/home/certs目录下,并检查是否上传
[root@ecs-a869 yum.repos.d]# cd /home/certs
[root@ecs-a869 certs]# ls
onlyoffice.crt  onlyoffice.key

2、配置docker容器里nginx

#下载配置模板文件
wget -O /home/certs/ds.conf https://yun.ittel.cn:1443/f/1a877fe2e9794a2fb5a7/?dl=1

#编辑配置文件
[root@ecs-a869 yum.repos.d]#vi /home/certs/ds.conf
修改域名为实际域名,其他地方不需要修改
include /etc/nginx/includes/http-common.conf;
server {
  listen 0.0.0.0:80;
  listen [::]:80 default_server;
  server_tokens off;

  include /etc/nginx/includes/ds-*.conf;
}
server {
    listen 443 ssl;
    ssl_certificate /mnt/certs/onlyoffice.crt;
    ssl_certificate_key /mnt/certs/onlyoffice.key;
    server_name yun.ittel.cn;  #改成自己的域名
.....
......

3、docker运行下载onlyoffice,此处设置onlyoffice监听端口为8889

#根据实际情况修改端口即可,这里使用的是8889端口
docker run -i -t -d --restart=always -e JWT_ENABLED=false \
-e USE_UNAUTHORIZED_STORAGE=true \
-p 8889:443 -v /home/certs:/mnt/certs \
-v /home/certs/ds.conf:/etc/nginx/conf.d/ds.conf \
ittel/onlyoffice:7.6.0zh-cn
#--restart=always表示每次开机,只要当docker被设置为开机启动,此onlyoffice就会自动运行 
#-v 指挂载主机目到容器中
#关闭证书校验,针对自签证书
#-e USE_UNAUTHORIZED_STORAGE=true
# ittel/onlyoffice:7.6.0zh-cn 换成实际魔改容器名称

4、SSL访问测试

访问 https://IP或者域名:8889/welcome/

后续可在nextcloud,ZZoffice,SeaFile 结合使用在线编辑

效果图
主界面:

支持多人同时编辑

编译添加了常用几种中文字体

问题排查(点击展开)
修改文件限制大小
onlyoffice默认可以打开30M左右文件,超过会提示文件大小限制,可以按照以下方法增大(魔改镜像已默认修改)。

修改容器default.json,目录:

容器下的:/etc/onlyoffice/documentserver/default.json

可以增大下面几个标记的数值,最后记得重启容器。

页面提示下载失败,容器日志提示 is not allowed. Because, It is private IP address.
查看容器日志提示:

nodeJS - error downloadFile:url=http://xxx:8080/Products/Files/HttpHandlers/filehandler.ashx?action=stream&fileid=28&stream_auth=42443xxxXJ56L2TBSE&X-REWRITER-URL=https%3a%2f%2fxxx%3a443;attempt=3;code:undefined;connect:undefined Error: DNS lookup 192.168.1.41(family:4, host:onlyoffice) is not allowed. Because, It is private IP address.
问题分析
在onlyoffice 7.4中新增了一项安全功能,如果局域网IP访问,必须开启JWT。(在魔改版镜像中已默认关闭)

开发者回复

解决方法:
直接使用上面编译好的魔改镜像或者老老实实开启jwt。

添加自定义字体库
很多同学收藏了很多字体,想加入onlyoffice在线编辑器里,这里讲述下基于上述魔改镜像添加自定义字体的方法。

备注:字体不是越多越好,一个字体文件小则500KB,大的要20M,字体太多会导致文档加载时间变长(特别是在带宽很小情况下)。
1、把需要添加的字体库包传到服务器上
这里也整理了一份常用的中文字体库,同学们按需下载即可,也可以把你的字体库发我,我会放入下面的共享里。
下载完后上传到服务器上面。
中文常用字体库下载

2、把字体拷贝到镜像
查看容器ID方法,第一行字符串就是ID值

docker ps|grep onlyoffice

这里以添加方正小标宋字体为例

a、上传字体到容器内(这里无欢不爱把字体上传到服务器的/home/fonts/目录下)

格式:
docker cp /home/fonts/* <容器ID>:/usr/share/fonts/

#这里执行
docker cp /home/fonts/* 81d98fa20029:/usr/share/fonts/
3、生成字体文件
格式:

docker exec -i <容器ID> /usr/bin/documentserver-generate-allfonts.sh

执行,等待执行完毕即可

docker exec -i 81d98fa20029 /usr/bin/documentserver-generate-allfonts.sh

4、验证是否添加成功
刷新文档,验证是否有刚添加的字体,如果没有显示,建议清理下浏览器缓存。

Docker映射端口后,浏览器无法访问欢迎界面
创建Docker的onlyoffice容器正常,也已经起来,防火墙也开放了对应端口,但是浏览器就是无法访问。

原因与解决方法:
谷歌浏览器、火狐浏览器、新版Edge浏览器预留了部分端口,避免使用下面的端口号。

端口    原因
1    tcpmux
7    echo
9    discard
11    systat
13    daytime
15    netstat
17    qotd
19    chargen
20    ftp data
21    ftp access
22    ssh
23    telnet
25    smtp
37    time
42    name
43    nicname
53    domain
77    priv-rjs
79    finger
87    ttylink
95    supdup
101    hostriame
102    iso-tsap
103    gppitnp
104    acr-nema
109    pop2
110    pop3
111    sunrpc
113    auth
115    sftp
117    uucp-path
119    nntp
123    NTP
135    loc-srv /epmap
139    netbios
143    imap2
179    BGP
389    ldap
465    smtp+ssl
512    print / exec
513    login
514    shell
515    printer
526    tempo
530    courier
531    chat
532    netnews
540    uucp
556    remotefs
563    nntp+ssl
587    stmp?
601    ??
636    ldap+ssl
993    ldap+ssl
995    pop3+ssl
2049    nfs
3659    apple-sasl / PasswordServer
4045    lockd
6000    X11
6665    Alternate IRC [Apple addition]
6666    Alternate IRC [Apple addition]
6667    Standard IRC [Apple addition]
6668    Alternate IRC [Apple addition]
6669    Alternate IRC [Apple addition]

在线打开office文档,提示无法保存和下载
问题现象:
如果onlyoffice容器和seafile、nextcloud不在同一主机,在线编辑会提示下载失败。

原因分析:
docker容器内默认是无法访问外网的,如果容器和seafile等服务不在同一主机,则容器需要主动联网。但是linux默认策略是不会转发包的,所以需要开启主机NAT转发。

解决办法:

#编辑系统设置
vi /etc/sysctl.conf
#添加以下内容到sysctl.conf
#添加完毕记得 :wq 保存
net.ipv4.ip_forward = 1
#最后重启主机

Onlyoffice 魔改Docker镜像下载
运行onlyoffice7.3及以上镜像,linux内核版本需要大于3.10,Docker版本 >= 20(一般centos7.6以上、ubuntu20以上都符合)。
对于系统比较老,推荐使用7.1.1(比如群辉系统)

作者:秦晓川  创建时间:2025-03-11 10:54
最后编辑:秦晓川  更新时间:2025-03-14 15:20
上一篇:
下一篇: