准备工作
按照onlyoffice 官方推荐的机器配置准备一下机器。
mkdir -p /opt/onlyoffice/DocumentServer/data/certs/
Recommended System Requirements
- RAM: 4 GB or more
- CPU: dual-core 2 GHz or higher
- Swap file: at least 2 GB
- HDD: at least 2 GB of free space
- Distributive: 64-bit Red Hat, CentOS or other compatible distributive with kernel version 3.8 or later, 64-bit Debian, Ubuntu or other compatible distributive with kernel version 3.8 or later
- Docker: version 1.9.0 or later
部署安装
申请https证书
推荐使用freessl.cn申请证书,可以用1年。证书申请到后,将证书的名称改为onlyoffice.crt和onlyoffice.key,存放到/opt/onlyoffice/DocumentServer/data/cert
s中。
安装代码
docker run -i -t -d --name onlyoffice --restart=always --privileged=true -p 880:80 -p 4430:443 \
-v /opt/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \
-v /opt/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data onlyoffice/documentserver
为什么要加上--privileged=true
这个代码,是因为如果不加上的话会出现容器Permission denied
错误,导致容器运行不起来。
测试 DocumentServer 是否在运行
安装过程完成后,访问这个页面来确保您的 OnlyOffice 工作正常:http{s}://{your Seafile Server's domain or IP}/welcome
,您将会在这个页面中得到Document Server is running。
设置OnlyOffice自动保存
使用 OnlyOffice 打开文件时,OnlyOffice 只会在用户关闭页面后向Seafile发送文件保存请求。 如果用户长时间未关闭页面,则用户对文件的更改将不会及时保存在Seafile上。
您现在可以通过更改 OnlyOffice 的配置来设置自动保存。
{
"services": {
"CoAuthoring": {
"autoAssembly": {
"enable": true,
"interval": "5m"
}
}
}
}
- 进入到 onlyoffice/documentserver 容器中;
- 打开 OnlyOffice 的配置文件:
/etc/onlyoffice/documentserver/local.json
- 添加以下配置信息:
- 重启 OnlyOffice:
supervisorctl restart all
更多信息可以访问OnlyOffice的官方文档:https://api.onlyoffice.com/editors/save
自定义onlyoffice中文字体
因为Onlyoffice对中文字体的支持不是太好,所以需要修改一下中文字体来适应中文用户。
进入容器
docker exec -it onlyoffice /bin/bash
删除原版自带字体
cd /usr/share/fonts/
rm -rf *
cd /var/www/onlyoffice/documentserver/core-fonts/
rm -rf *
exit #退出容器
复制字体到onlyoffice容器中
docker cp /opt/onlyoffice/fonts onlyoffice:/usr/share/fonts/truetype/custom
再次进入容器
docker exec -it onlyoffice /bin/bash
执行一下代码
/usr/bin/documentserver-generate-allfonts.sh
配置Seafile服务
添加以下配置信息到seahub_settings.py
。
# Enable Only Office
ENABLE_ONLYOFFICE = True
VERIFY_ONLYOFFICE_CERTIFICATE = False
ONLYOFFICE_APIJS_URL = 'http{s}://{your OnlyOffice server's domain or IP}/web-apps/apps/api/documents/api.js'
ONLYOFFICE_FILE_EXTENSION = ('doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'odt', 'fodt', 'odp', 'fodp', 'ods', 'fods')
ONLYOFFICE_EDIT_FILE_EXTENSION = ('docx', 'pptx', 'xlsx')
重启seafile容器
docker container restart seafile