Change The World

沉默是一种力量,嘶吼就不是力量了?

0%

install onlyOffice in docker


    本文主要记录onlyoffice安装的过程,在安装过程中可能不会遇到问题,但是也可能会遇到各种各样的问题,如果有错误,那肯定是你错了,下文中主要是集成安装,服务包含Mysql Server、Mail Server、Community Server以及Document Server,欢迎批评指正

题外话:由于本人机器很菜,Mail Server使用Mysql Server时,没跑起来…

介绍 && FAQ

onlyOffice是什么?

    ONLYOFFICE是一个用于业务协作,文档和项目管理的多功能门户。它允许您组织业务任务和里程碑,存储和共享您的公司或个人文档,使用社交网络工具,如博客和论坛,以及通过公司IM与您的团队成员进行沟通。

onlyOffice适用于谁?

    ONLYOFFICE适用于寻求有效的业务流程管理平台的中小型公司。

在云中托管我的门户网站是否安全?

    您的门户网站由以下Web服务提供支持:Amazon EC2,Amazon S3和Amazon RDS。亚马逊网络服务(AWS)在全球数千名开发人员使用的云中提供可靠的基础架构。此外,您可以随时备份存储在门户网站上的数据。因此,您可以确保您的数据安全且受到保护。

我可以通过手机访问我的门户吗?

    目前正在开发位于.com域区域中的门户的移动应用程序。 .org域区域门户和服务器解决方案的移动版本不可用。 现在可以下载适用于iOS的移动ONLYOFFICE Documents应用程序。它允许您查看和编辑.com门户中存储的文本文档,创建新文档,管理和共享它们。

我们想自己维护ONLYOFFICE。那可能吗?

    是。可以下载和编译源代码。此后,您可以将其部署在您自己的服务器上。源代码在SourceForge上列出,并在GNU Affero通用公共许可条款下分发。有关更多详细信息,请参阅服务器版本常见问题部分。

我无法在门户网站的可用列表中找到我的语言。我该怎么做才能参与翻译?

    目前,门户网站的界面有21种语言版本,它也被翻译成二十多种语言,但如果您的母语尚未列出,您可以为ONLYOFFICE翻译做出贡献。请阅读如何成为ONLYOFFICE翻译?

    发送您的请求并访问我们的ONLYOFFICE在线翻译系统的指南。 您也可以直接发送电子邮件至documentation@onlyoffice.com

我有一个问题,这里没有涉及。我该怎么联系你?

    我们不断改进ONLYOFFICE,为您的业务需求提供高效的解决方案。因此,欢迎您提供反馈和建议。请发送电子邮件至support@onlyoffice.com告诉我们ONLYOFFICE如何为您服务。

注:以上为译文,详情请参考FAQ

安装onlyOffice in Docker

创建onlyoffice网络

1
sudo docker network create --driver bridge onlyoffice

安装MySQL数据库

创建外部挂目录[可选]

1
2
3
sudo mkdir -p "/app/onlyoffice/mysql/conf.d";
sudo mkdir -p "/app/onlyoffice/mysql/data";
sudo mkdir -p "/app/onlyoffice/mysql/initdb";

创建MySQL服务器Docker容器。创建配置文件

1
2
3
4
5
6
echo "[mysqld]
sql_mode = 'NO_ENGINE_SUBSTITUTION'
max_connections = 1000
max_allowed_packet = 1048576000
group_concat_max_len = 2048
log-error = /var/log/mysql/error.log" > /app/onlyoffice/mysql/conf.d/onlyoffice.cnf

创建SQL脚本用于生成用户以及赋予对应的权限。 ONLYOFFICE社区服务器需要onlyoffice_user,ONLYOFFICE邮件服务器需要mail_admin

1
2
3
4
5
6
echo "CREATE USER 'onlyoffice_user'@'localhost' IDENTIFIED BY 'onlyoffice_pass';
CREATE USER 'mail_admin'@'localhost' IDENTIFIED BY 'Isadmin123';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'%' IDENTIFIED BY 'my-secret-pw';
GRANT ALL PRIVILEGES ON * . * TO 'onlyoffice_user'@'%' IDENTIFIED BY 'onlyoffice_pass';
GRANT ALL PRIVILEGES ON * . * TO 'mail_admin'@'%' IDENTIFIED BY 'Isadmin123';
FLUSH PRIVILEGES;" > /app/onlyoffice/mysql/initdb/setup.sql

注:为了方面安装,直接使用了默认密码,以上密码是可修改的,以及指定可访问数据库的主机

创建MySQL容器设置MySQL版本到5.7

1
2
3
4
5
6
7
sudo docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-mysql-server \
-v /app/onlyoffice/mysql/conf.d:/etc/mysql/conf.d \
-v /app/onlyoffice/mysql/data:/var/lib/mysql \
-v /app/onlyoffice/mysql/initdb:/docker-entrypoint-initdb.d \
-e MYSQL_ROOT_PASSWORD=my-secret-pw \
-e MYSQL_DATABASE=onlyoffice \
mysql:5.7

-v: 挂载本地目录

-e: 设置环境变量

可挂载目录[volumes]:

1
2
3
4
environment:
- ./config/mysql/conf.d:/etc/mysql/conf.d
- ./config/mysql/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
- mysql_data:/var/lib/mysql

安装Document Server

创建外部挂目录[可选]

1
2
3
4
sudo mkdir -p "/app/onlyoffice/DocumentServer/logs";
sudo mkdir -p "/app/onlyoffice/DocumentServer/data";
sudo mkdir -p "/app/onlyoffice/DocumentServer/lib";
sudo mkdir -p "/app/onlyoffice/DocumentServer/db";

安装

1
2
3
4
5
6
sudo docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-document-server \
-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

可挂载目录:

1
2
3
4
5
volumes:
- document_data:/var/www/onlyoffice/Data
- document_log:/var/log/onlyoffice
- ./document_fonts:/usr/share/fonts/truetype/custom
- document_forgotten:/var/lib/onlyoffice/documentserver/App_Data/cache/files/forgotten

安装Mail Server

创建外部挂目录[可选]

1
2
3
sudo mkdir -p "/app/onlyoffice/MailServer/data";
sudo mkdir -p "/app/onlyoffice/MailServer/data/certs";
sudo mkdir -p "/app/onlyoffice/MailServer/logs";

安装

1
2
3
4
5
6
sudo docker run --init --net onlyoffice --privileged -i -t -d --restart=always --name onlyoffice-mail-server -p 25:25 -p 143:143 -p 587:587 \
-v /app/onlyoffice/MailServer/data:/var/vmail \
-v /app/onlyoffice/MailServer/data/certs:/etc/pki/tls/mailserver \
-v /app/onlyoffice/MailServer/logs:/var/log \
-h yourdomain.com \
onlyoffice/mailserver

指定数据库, 添加如下参数:

1
2
3
4
5
-e MYSQL_SERVER=onlyoffice-mysql-server \
-e MYSQL_SERVER_PORT=3306 \
-e MYSQL_ROOT_USER=root \
-e MYSQL_ROOT_PASSWD=my-secret-pw \
-e MYSQL_SERVER_DB_NAME=onlyoffice_mailserver \

注:yourdomain.com 更换您的Mail Server的域名

可选参数:

1
2
3
4
5
6
environment:
- MYSQL_SERVER=onlyoffice-mysql-server
- MYSQL_SERVER_PORT=3306
- MYSQL_ROOT_USER=onlyoffice_mailserver_user
- MYSQL_ROOT_PASSWD=onlyoffice_mailserver_user_pass
- MYSQL_SERVER_DB_NAME=onlyoffice_mailserver

安装Community Server

创建外部挂目录[可选]

1
2
3
sudo mkdir -p "/app/onlyoffice/CommunityServer/data";
sudo mkdir -p "/app/onlyoffice/CommunityServer/mysql";
sudo mkdir -p "/app/onlyoffice/CommunityServer/logs";

安装

1
2
3
4
5
6
7
8
9
10
11
12
sudo docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-community-server -p 80:80 -p 443:443 -p 5222:5222 \
-e MYSQL_SERVER_ROOT_PASSWORD=my-secret-pw \
-e MYSQL_SERVER_DB_NAME=onlyoffice \
-e MYSQL_SERVER_HOST=onlyoffice-mysql-server \
-e MYSQL_SERVER_USER=onlyoffice_user \
-e MYSQL_SERVER_PASS=onlyoffice_pass \
-e DOCUMENT_SERVER_PORT_80_TCP_ADDR=onlyoffice-document-server \
-e MAIL_SERVER_DB_HOST=onlyoffice-mail-server \
-v /app/onlyoffice/CommunityServer/data:/var/www/onlyoffice/Data \
-v /app/onlyoffice/CommunityServer/logs:/var/log/onlyoffice \
-v /app/onlyoffice/CommunityServer/mysql:/var/lib/mysql \
onlyoffice/communityserver

-p: 指定端口映射

上面使用的时默认的邮箱安装,否则需指定邮箱服务器的数据库:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
sudo docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-community-server -p 80:80 -p 443:443 -p 5222:5222 \
-e MYSQL_SERVER_ROOT_PASSWORD=my-secret-pw \
-e MYSQL_SERVER_DB_NAME=onlyoffice \
-e MYSQL_SERVER_HOST=onlyoffice-mysql-server \
-e MYSQL_SERVER_USER=onlyoffice_user \
-e MYSQL_SERVER_PASS=onlyoffice_pass \

-e DOCUMENT_SERVER_PORT_80_TCP_ADDR=onlyoffice-document-server \

-e MAIL_SERVER_API_HOST=${MAIL_SERVER_IP} \
-e MAIL_SERVER_DB_HOST=onlyoffice-mysql-server \
-e MAIL_SERVER_DB_NAME=onlyoffice_mailserver \
-e MAIL_SERVER_DB_PORT=3306 \
-e MAIL_SERVER_DB_USER=root \
-e MAIL_SERVER_DB_PASS=my-secret-pw \

-v /app/onlyoffice/CommunityServer/data:/var/www/onlyoffice/Data \
-v /app/onlyoffice/CommunityServer/logs:/var/log/onlyoffice \
onlyoffice/communityserver

可选参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
environment:
- DOCUMENT_SERVER_PORT_80_TCP_ADDR=onlyoffice-document-server
- 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=onlyoffice_mailserver_user
- MAIL_SERVER_DB_PASS=onlyoffice_mailserver_user_pass

依赖服务:

1
2
3
4
depends_on:
- onlyoffice-mysql-server
- onlyoffice-document-server
- onlyoffice-mail-server

挂载目录:

1
2
3
4
5
volumes:
- community_data:/var/www/onlyoffice/Data
- community_log:/var/log/onlyoffice
- document_data:/var/www/onlyoffice/DocumentServerData
- ./certs:/var/www/onlyoffice/Data/certs

通过下面的命令获取对应服务器的ip地址,如:获取Mail Serverip地址

1
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' onlyoffice-mail-server

以上步骤正确完成之后,就可以开始您的onlyOffice之旅了, 点击开始

注: 如果不指定数据库则使用自身的数据库

备份

请阅读 Data backup,付费用户享有的权利🙃, 当然也可以手动备份

参考

Docker-CommunityServer

Installing all three servers (Community Server, Document Server, Mail Server) integrated

General Questions FAQ

如何在Ubuntu 14.04上安裝ONLYOFFICE組織您的團隊合作

docker-compose.yml

abort connection

Mysql bug #76661

Mysql #81899

不如请我吃根冰棒吧