ONLYOFFICE是一个免费的开源企业办公套件,旨在组织在线团队合作。它由三个独立的服务器组成:
因为ONLYOFFICE有许多移动部件和依赖项,所以在本教程中,我们将通过使用Docker容器部署ONLYOFFICE来简化安装过程并避免依赖性错误。
要学习本教程,您需要:
注意:ONLYOFFICE服务器的大小要求取决于您将使用的ONLYOFFICE组件,将在Web office中工作的用户数以及您计划存储的文档和邮件数量。建议所有三台服务器使用8 GB。
本教程将假设您熟悉SSL(一种安全技术)和Docker,这是一个自动在软件容器内部署应用程序的开源项目。如果您是Docker的新手,可以阅读Docker教程以获取介绍。
在安装ONLYOFFICE之前,我们首先要确保使用SSL保护对它的访问。为此,我们需要私钥(.key
)和SSL证书(.crt
)。
如果我们使用CA认证的证书,则这些文件由证书颁发机构提供。使用自签名证书时,我们需要自己生成这些文件。最简单和最便宜的方法,特别是如果你有一个小团队,就是使用自签名证书。这就是我们在这里要做的。
ONLYOFFICE配置目录将是/app/onlyoffice/CommunityServer/data
。首先,我们将创建一个目录来存储我们的自签名证书。
$ sudo mkdir -p /app/onlyoffice/CommunityServer/data/certs
进入创建的目录。
$ cd /app/onlyoffice/CommunityServer/data/certs
接下来,创建服务器私钥。
# sudo openssl genrsa -out onlyoffice.key 2048
创建证书签名请求(CSR)。
$ sudo openssl req -new -key onlyoffice.key -out onlyoffice.csr
在这里,您将被问到有关服务器的一些问题,以便将相应的信息添加到证书中。
填写此信息后,使用私钥和CSR签署证书。
$ sudo openssl x509 -req -days 365 -in onlyoffice.csr -signkey onlyoffice.key -out onlyoffice.crt
通过生成更强大的DHE参数(一个临时的2048位Diffie-Hellman密钥)来增强服务器安全性。
$ sudo openssl dhparam -out dhparam.pem 2048
现在我们有一个有效期为365天的SSL证书,我们可以继续安装ONLYOFFICE本身。
首先,我们将创建一个ONLYOFFICE网络,以允许我们需要通过它进行通信的一组容器,并将它们与其他容器隔离开来。使用网桥作为--driver管理网络。
$ sudo docker network create --driver bridge onlyoffice
我们用来启动ONLYOFFICE服务器的命令很长,所以让我们看一下并将其分解。首先,运行此命令以安装ONLYOFFICE文档服务器:
$ sudo docker run --net onlyoffice -i -t -d --restart=always \
$ --name onlyoffice-document-server \
$ -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \
$ -v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice onlyoffice/documentserver
在这里,我们使用docker run --net onlyoffice
启动了ONLYOFFICE容器,这意味着它会自动连接到onlyoffice我们刚创建的桥接网络。-d
表示容器开始分离;-i
使STDIN保持打开(即使容器已分离);-t
分配一个TTY。为了使Docker在重启时自动重启容器,我们指定了--restart=always
参数。
通常,Docker容器中的所有数据都存储在称为数据卷的特殊指定目录中。每个ONLYOFFICE组件都有特定目录中的数据卷。文档服务器使用/var/log/onlyoffice
作为日志和使用/var/www/onlyoffice/Data
作为证书。
要从容器外部访问这些数据卷,我们通过指定-v
选项来装入卷。请注意,将自动创建必要的目录,但是一旦安装了我们的Web office,我们仍然需要授予它们访问权限。
现在,安装ONLYOFFICE邮件服务器,指定您的域:
$ sudo docker run --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 \
$ -v /app/onlyoffice/MailServer/mysql:/var/lib/mysql \
$ -h example.com \
$ onlyoffice/mailserver
这与上一个命令非常相似,添加了-p
标记以显示几个端口(25用于SMTP,143用于IMAP和587用于SMA)。邮件服务器的数据卷是:
/var/log
用于日志/var/lib/mysql
用于MySQL数据库数据/var/vmail
用于邮件存储/etc/pki/tls/mailserver
用于证书安装三个ONLYOFFICE服务器中的最后一个:社区服务器。
$ sudo docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-community-server \
$ -p 80:80 -p 5222:5222 -p 443:443 \
$ -v /app/onlyoffice/CommunityServer/data:/var/www/onlyoffice/Data \
$ -v /app/onlyoffice/CommunityServer/mysql:/var/lib/mysql \
$ -v /app/onlyoffice/CommunityServer/logs:/var/log/onlyoffice \
$ -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/DocumentServerData \
$ -e DOCUMENT_SERVER_PORT_80_TCP_ADDR=onlyoffice-document-server \
$ -e MAIL_SERVER_DB_HOST=onlyoffice-mail-server \
$ onlyoffice/communityserver
社区服务器为HTTP
打开端口80
,为HTTPS
打开443
,为与XMPP兼容的即时消息客户端打开5222(对于ONLYOFFICE Talk)。 数据量是:
/var/log/onlyoffice
用于日志/var/www/onlyoffice/Data
对于数据/var/lib/mysql
用于MySQL数据库数据最后,授予对创建的文件夹的访问权限:
$ sudo chmod -R 755 /app/
现在,安装了所有三台服务器,我们可以完成设置。
要访问新的Web office,在您喜欢的浏览器中访问https://example.com
请注意,如果您使用的是未经浏览器的受信任CA签名的证书,则可能会收到警告。无论如何,您都可以找到访问该页面的设置,通常在标记为Advanced或类似的选项下。
您将被引导至您的网站。初始化过程将开始。这可能需要一些时间,但一旦初始化过程完成,欢迎页面将打开。这将允许我们启动ONLYOFFICE初始配置。
首先,选择并确认密码,并指定下次用于访问office的电子邮件地址。选择Web办公界面的语言。在ONLYOFFICE工作时,您可以更改所有用户或您自己帐户的语言。
设置您所在地区的时区。这对于通知和使日历正常工作尤为重要,最后单击继续按钮以完成ONLYOFFICE配置。
电子邮件激活消息将发送到指定的电子邮件。按照此消息中提供的链接完成电子邮件激活过程。还有最后一步,即完成邮件服务器的配置。
要完成邮件配置,请单击欢迎页面上的“ Mail Server(邮件服务器)”图标。
单击“ Set up domain(设置域)”链接。
单击“Set up the first domain(设置第一个域)”链接,在相应字段中输入您的域名,然后单击“ 下一步”按钮。
然后,使用ONLYOFFICE向导说明中提供的信息创建所有必需的记录:
创建所有记录后,单击浏览器中的“ 确定”按钮。添加的域将显示在域列表页面上。
您已设置ONLYOFFICE文档,社区和邮件服务器。现在你可以邀请你的队友开始工作了。您可以:
参考文献:《How to Organize Your Teamwork with ONLYOFFICE on Ubuntu 14.04》
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。