Bootstrap

onlyoffice 一些使用心得

 一、基本介绍

    首先onlyoffice是一款开源强大的在线协同的系统,提供在线协同编辑、批注、历史版本、pdf转换、即时聊天等功能,系统也比较的成熟。目前协同软件很多国内大厂都在搞,腾讯文档、钉钉文档、飞书、wps、石墨等。开源软件上也有挺多的如onlyoffice、openoffice、国内二开onlyoffice的毕昇文档等等。这几个开源的系统,从还原度高保真效果来说openoffice效果是最好的,对原生支持度比较好。onlyoffice则在字体还原度上不是那么的友好,但是从开源角度来看onlyoffice遵循apache开源协议、够用、基本能满足使用场景,这也是博主当时选择onlyoffice的主要原因。

    onlyoffice最核心的在与document server。官方提供多种形式的document server,如docker、windows、Debian、Ubuntu、CentOS、RHEL、Snap包、Cloudron一键应用等多种方式,当然也可以选择对应的源码进行编译安装。题主当时选择用的是docker版本的也比较推荐,以为docker使用安装比较方便,可以避免很多安装麻烦。

    本文主要讲解onlyoffice docker版的document server的简单安装和使用,以及自己遇到的一些坑

二、document server安装

        硬件推荐基础配置

  • CPU/RAM   2c2g 以上
  • HDD  >= 40 GB 

  • Additional requirementsat least 4 GB of swap

  • 操作系统   Linux kernel 在 3.10或以上

  • Docker: 版本 1.10或以上

docker安装教程

Docker地址

document server安装

#1、获取onlyoffice镜像 命令 docker pull [OPTIONS] NAME[:TAG|@DIGEST]
docker pull onlyoffice/documentserver[:tags]  
可以通过tags来指定版本,如果不指定则获取的是最新的版本
可以通过 docker images来查看镜像是否pull成功

#2、启动
#直接启动
sudo docker run -i -t -d -p 80:80 --restart=always onlyoffice/documentserver
#onlyoffice依赖postgresql,rabbitmq,挂载启动,将数据文件和日志等目录信息挂载到宿主机,避免重启丢失,可以将文件缓存目录,db数据目录挂载出来。一般建议使用第二种
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 

#小贴士:docker 
        -t 表示 分配一个伪终端,镜像命令行操作 
        -i 以交互式模式运行容器,通常和-t一起使用
        -d 表示后台运行并输出一个docker运行id
#启动后进入容器
查看docker 进程好 docker ps
docker exec  -i -t 进程号  /bin/bash。
docker exec -i -t ecce7a1d89c3 /bin/bash    ecce7a1d89c3 指的是进程号。

进入容器可以进行linux命令进行操作

cd 进入:/var/www/onlyoffice/documentserver目录,该目录结构如下

core-fonts里面存放了常用的字体,如果不能满足使用的话可以自己下载字体使用docker copy加入到容器去,在使用docker builder名利构建一个新的镜像

如果需要替换页面logo(官方有直接支持配置),或者某些页面样式要修改,可以进入到web-apps里面寻找对应的页面进行修改,当然这个是编译后的dist看起来会比较费劲,建议如果需要改动的地方较多的话还是去使用源码进行编码。当时博主使用知识替换一下logo,还有加载动画,加一些提示框说明等,修改比较简单就选择了直接修改镜像文件。

三、api使用

ONLYOFFICE Api Documentation - Config

给出一个代码集成的时序图(onlyoffice指的是onlyoffice服务,文档指的是自己的业务后端系统)

onlyoffice配置信息想见官方文档

如下是onlyoffice文件编辑保存时序图

;