提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
onlyoffice 工作空间 docker-compose本地化部署
公司要搭建一个本地化的文档协同工具。
选中了onlyoffice,网上搜了一大堆的资料。
其中集成的方式最简单,只用装onlyoffice-server。
然后使用国产的集成软件集成进去就可以了。
但是…公司希望用原版的onlyoffice工作空间。
然后…
目前发现window server版本的安装最简单,根据官网示例一步一步操作即可。
官方链接:
https://www.onlyoffice.com/zh/download-workspace.aspx#workspace-community
一、Windows系统安装onlyoffice
操作说明官方链接:
链接: https://helpcenter.onlyoffice.com/installation/workspace-install-windows.aspx
根据官方说明一步步操作即可,有的地方下载比较慢,需要耐心等待。
这个我第一步就搞成功了,很简单,但是…公司希望使用linux部署…
好吧,继续下一步。
二、Linux系统docker-compose部署onlyoffice
1.安装说明
基于linux的三种安装方式中,第一种是下载脚本,下载相关镜像本地化部署。
但是操作失败了,不知道什么原因。
可能是有报错pathon的版本不正确。
有报错server-ee安装失败的,反正各种原因,最后启动失败
然后选取docker镜像安装,最终也是失败,原因太多,不赘述了。
反正最后只用下面方式成功了。以下是一些安装步骤,自己记录一下。
首先根据上图官网选取Docker compose点击阅读说明,查看相关安装方式。
下面是操作步骤
2.操作步骤
首先要搞台CentOS服务器,我的版本是7.9的。
安装yum
sudo yum install -y yum-utils
设置stable仓库 阿里云的,大家都懂
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum软件包索引
yum makecache fast
安装docker
yum -y install docker-ce
设置docker自启动
systemctl enable docker && systemctl start docker
配置docker加速
cat > /etc/docker/daemon.json<<EOF
{
"registry-mirrors": ["https://1o3kv4j3.mirror.aliyuncs.com"]
}
EOF
重启docker
systemctl daemon-reload && systemctl restart docker
安装wget
yum install -y wget
安装rpel7数据源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
更新yum软件包索引
yum makecache fast
安装docker-compose
yum install docker-compose -y
docker安装完毕后,需要安装git
yum install git
这里自己创建一个文件夹下载 Docker-CommunityServer
git clone https://github.com/ONLYOFFICE/Docker-CommunityServer
3.安装onlyoffice工作空间
刚刚我们下载的Docker-CommunityServer打开,里面有三个文件
找到其中的docker-compose.workspace.yml
编辑这个文件,主要是更改一下docker内文件的存放位置,还有 mail的端口。
云服务器的25端口应该是不行,可以改成别的。
文件名也可以改为别的,比如什么workspace.yml的随意。
注意:
hostname: ${MAIL_SERVER_HOSTNAME}
这个字段我也不知道要修改成什么,翻墙去外网看了一下。
应该是本地服务器部署的邮件服务器的域名地址,但是我没有,因此就没改。
然后试了以后,也可以正常运行。
懂得都懂,能运行的程序,就不要管它是怎么运行的了。
如果github连不上,可以直接创建文件夹,手动下载代码包后解压
我的文件贴出来了:
version: '3'
services:
onlyoffice-mysql-server:
container_name: onlyoffice-mysql-server
image: mysql:8.0.29
environment:
- MYSQL_ROOT_PASSWORD=my-secret-pw
networks:
- onlyoffice
stdin_open: true
tty: true
restart: always
volumes:
- ./config/mysql/conf.d:/etc/mysql/conf.d
- ./config/mysql/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
- mysql_data:/var/lib/mysql
onlyoffice-community-server:
container_name: onlyoffice-community-server
image: onlyoffice/communityserver:12.0.1.1748
depends_on:
- onlyoffice-mysql-server
- onlyoffice-document-server
- onlyoffice-mail-server
- onlyoffice-elasticsearch
environment:
- ONLYOFFICE_CORE_MACHINEKEY=core_secret
- CONTROL_PANEL_PORT_80_TCP=80
- CONTROL_PANEL_PORT_80_TCP_ADDR=onlyoffice-control-panel
- DOCUMENT_SERVER_PORT_80_TCP_ADDR=onlyoffice-document-server
- DOCUMENT_SERVER_JWT_ENABLED=true
- DOCUMENT_SERVER_JWT_SECRET=jwt_secret
- DOCUMENT_SERVER_JWT_HEADER=AuthorizationJwt
- MYSQL_SERVER_ROOT_PASSWORD=my-secret-pw
- MYSQL_SERVER_DB_NAME=onlyoffice
- MYSQL_SERVER_HOST=onlyoffice-mysql-server
- MYSQL_SERVER_USER=onlyoffice_user
- MYSQL_SERVER_PASS=onlyoffice_pass
- MAIL_SERVER_API_PORT=8081
- MAIL_SERVER_API_HOST=onlyoffice-mail-server
- MAIL_SERVER_DB_HOST=onlyoffice-mysql-server
- MAIL_SERVER_DB_PORT=3306
- MAIL_SERVER_DB_NAME=onlyoffice_mailserver
- MAIL_SERVER_DB_USER=mail_admin
- MAIL_SERVER_DB_PASS=Isadmin123
- ELASTICSEARCH_SERVER_HOST=onlyoffice-elasticsearch
- ELASTICSEARCH_SERVER_HTTPPORT=9200
networks:
- onlyoffice
ports:
- '80:80'
- '443:443'
- '5222:5222'
stdin_open: true
tty: true
restart: always
privileged: true
# cgroup: host
volumes:
- ./onlyoffice-community-server/community_data:/var/www/onlyoffice/Data
- ./onlyoffice-community-server/community_log:/var/log/onlyoffice
- ./onlyoffice-community-server/community_letsencrypt:/etc/letsencrypt
- ./onlyoffice-community-server/document_data:/var/www/onlyoffice/DocumentServerData
- /sys/fs/cgroup:/sys/fs/cgroup:rw
- ./certs:/var/www/onlyoffice/Data/certs
onlyoffice-elasticsearch:
image: onlyoffice/elasticsearch:7.16.3
container_name: onlyoffice-elasticsearch
restart: always
environment:
- discovery.type=single-node
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms1g -Xmx1g -Dlog4j2.formatMsgNoLookups=true"
- "indices.fielddata.cache.size=30%"
- "indices.memory.index_buffer_size=30%"
- "ingest.geoip.downloader.enabled=false"
networks:
- onlyoffice
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65535
hard: 65535
volumes:
- es_data:/usr/share/elasticsearch/data
expose:
- "9200"
- "9300"
onlyoffice-document-server:
container_name: onlyoffice-document-server
image: onlyoffice/documentserver:7.1.1.23
stdin_open: true
tty: true
restart: always
environment:
- JWT_ENABLED=true
- JWT_SECRET=jwt_secret
- JWT_HEADER=AuthorizationJwt
networks:
- onlyoffice
expose:
- '80'
- '443'
volumes:
- ./onlyoffice-document-server/document_data:/var/www/onlyoffice/Data
- ./onlyoffice-document-server/document_log:/var/log/onlyoffice
- ./onlyoffice-document-server/document_lib:/var/lib/onlyoffice
- ./document_fonts:/usr/share/fonts/truetype/custom
- document_forgotten:/var/lib/onlyoffice/documentserver/App_Data/cache/files/forgotten
onlyoffice-mail-server:
container_name: onlyoffice-mail-server
image: onlyoffice/mailserver:1.6.75
depends_on:
- onlyoffice-mysql-server
hostname: ${MAIL_SERVER_HOSTNAME}
environment:
- MYSQL_SERVER=onlyoffice-mysql-server
- MYSQL_SERVER_PORT=3306
- MYSQL_ROOT_USER=mail_admin
- MYSQL_ROOT_PASSWD=Isadmin123
- MYSQL_SERVER_DB_NAME=onlyoffice_mailserver
networks:
- onlyoffice
restart: always
privileged: true
ports: ['26:25','143:143','587:587']
stdin_open: true
tty: true
expose:
- '8081'
- '3306'
volumes:
- mail_data:/var/vmail
- mail_certs:/etc/pki/tls/mailserver
- mail_log:/var/log
onlyoffice-control-panel:
container_name: onlyoffice-control-panel
depends_on:
- onlyoffice-document-server
- onlyoffice-mail-server
- onlyoffice-community-server
image: onlyoffice/controlpanel:3.1.1.467
environment:
- ONLYOFFICE_CORE_MACHINEKEY=core_secret
expose:
- '80'
- '443'
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- controlpanel_data:/var/www/onlyoffice/Data
- controlpanel_log:/var/log/onlyoffice
networks:
- onlyoffice
stdin_open: true
tty: true
networks:
onlyoffice:
driver: 'bridge'
volumes:
mail_data:
mail_certs:
mail_log:
mail_mysql:
document_data:
document_log:
document_forgotten:
community_mysql:
community_data:
community_log:
community_letsencrypt:
controlpanel_data:
controlpanel_log:
mysql_data:
es_data:
自此准备工作完毕,下载onlyoffice镜像,
非常简单,只需要一行命令
docker-compose -f workspace.yml up -d
这里注意:文件名是 你刚才自己修改后的文件名。
运行文件要放在Docker-CommunityServer目录下再运行命令
等待安装与启动过程中…
漫长的等待…
这里就会报错mail的warning,但是不影响后续应用。
安装完毕,浏览器输入服务器ip地址
这里等待onlyoffice启动完毕,大概5-10分钟。
启动完毕。
OK,现在可以按照自己的需要去配置了。
总结
ok。运行成功,这是一个小菜鸡的摸索之路,这么简单的一个东西,用时三天半才安装完毕。
记录一下。如果能够给后面的各位朋友提供一点帮助就更好了。
在这里感谢下面的博主。给我提供了非常大的帮助
链接: @chen3673-----OnlyOffice-WorkSpace在Centos7上搭建
链接: @于无极-----docker-compose 一键部署Nextcloud