哈Ha! 我向您介绍了文章
“使用Docker在单个服务器上设置NextCloud和ONLYOFFICE”的翻译 。
很难低估在线办公套件软件包(如Google Docs和云存储)在面向技术的人们的生活中的好处。 技术已经变得如此广泛,以至于长期以来一直主导着办公应用程序市场的微软,最近都专注于开发Office 365 Web应用程序,并说服用户切换到使用自己的服务的订阅模式。 那些对安装和配置自己的存储过程感兴趣的人会受到欢迎。
不久前,我们回顾了云存储解决方案和Web应用程序的开源办公套件,这些套件可以轻松实现以供微型企业使用。 在线存储所有文档的主要动机是,尽管操作量很小,但仍可以最大程度地减少纸张工作流程的数量并实施积极的业务实践。 不利的一面是,租用云服务器来提供此服务要比直接存储在本地安全性低,因为您没有任何方法来审核对服务器或流量的物理访问。 因此,还需要端到端加密和开源软件。
考虑到有关开源解决方案的所有可用信息,我们找到了两个用于云存储的现有项目(过去12个月中在git存储库中提交):NextCloud和OwnCloud,以及唯一活动的办公套件ONLYOFFICE。 两种用于云存储的工具都具有相同的功能,因此选择NextCloud的决定是基于有证据表明它可以与ONLYOFFICE集成在一起,以便用户与该软件进行舒适的交互。 但是,当我们开始部署服务时,显然缺乏有关上述服务集成的信息。 我们找到了3个有关如何集成的教程视频:
这三个视频中没有一个回答了将ONLYOFFICE文档服务安装在具有共享nginx的NextCloud所在的物理服务器上的问题。 相反,他们使用了分离技术,例如为api文档服务使用了单独的端口。 另一个建议的选择是为文档服务部署一个单独的服务器,并手动配置文档服务中内置的nginx实例,以安装访问密钥(确认访问数据云的访问密钥)和TLS证书。 上述方法被认为是不安全且不够有效的,因此,我们集成了NextCloud,ONLYOFFICE和常见的nginx,后者使用docker-compose通过域名共享请求。 这是有关如何执行此操作的分步信息。
步骤1:Nginx容器
这是一个非常简单的安装,但是此步骤需要最多的工作来配置反向代理服务器。 首先,我们为nginx创建了docker-compose配置:稳定映像。
version: '2' services: nginx: image : nginx:stable restart: always volumes: - ./nginx/nginx-vhost.conf:/etc/nginx/conf.d/default.conf:ro - ./nginx/certificates:/mycerts ports: - 443:443 - 80:80
这将创建一个开放了端口80和443以便公共访问的容器,将配置映射到nginx / nginx-vhost.conf,并定义用于存储为自签名证书或使用来自/ nginx / certs的Let's Go Encrypt证书的证书的存储。 该位置应包含office.yourdomain.com和cloud.yourdomain.com的文件夹,分别用于证书链和服务器的私钥,文件分别为fullchain1.pem和privkey1.pem。 您可以在此处了解有关如何生成自签名证书的更多信息,
网址为www.akadia.com/services/ssh_test_certificate.html (将.key和.crt重命名为.pem时,无需转换nginx的文件结构)。
之后,我们定义了vhost文件。 首先,我们将端口80的行为定义为对https的简单重定向,如下所示: 我们不想允许任何http流量
server { listen 80; location / { return 301 https://$host$request_uri; } }
然后,我们在端口443上为我们的服务创建了两个虚拟服务器:
server { listen 443 ssl; server_name cloud.yourdomain.com ; root /var/www/html; ssl_certificate /mycerts/cloud.yourdomain.com/fullchain1.pem; ssl_certificate_key /mycerts/cloud.yourdomain.com/privkey1.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://app:80; } } server { listen 443 ssl; server_name office.yourdomain.com; root /var/www/html; ssl_certificate /mycerts/office.yourdomain.com/fullchain1.pem; ssl_certificate_key /mycerts/office.yourdomain.com/privkey1.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://onlyoffice:80; } }
步骤2:文件服务
现在我们需要将文档服务容器添加到我们的docker-compose.yml中。 此处没有特殊配置。
services: ... onlyoffice: image: onlyoffice/documentserver restart: always
但不要忘记将Nginx容器与文档服务相关联:
services: ... nginx: ... depends_on: - onlyoffice
步骤3:NextCloud
首先,我们添加新服务:
services: ... db: image: mariadb command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW restart: always volumes: - /data/nextcloud_db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=#put some password here - MYSQL_PASSWORD=#put some other password here - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud app: image: nextcloud depends_on: - db - onlyoffice restart: always
并将链接添加到nginx:
services: ... nginx: ... depends_on: - app
现在是时候加载容器了。
docker-compose up -d
稍后,nginx将开始将您重定向到NextCloud前端,这是默认配置页面。 您需要输入第一个管理员用户的用户名和密码,以及在docker-compose.yml中指定的数据库凭据,配置完成后即可登录。 在我们的案例中,等待时间将近一分钟,并且需要其他登录页面更新才能进入云服务。
步骤4:连接NextCloud和ONLYOFFICE
在此步骤中,您需要为NextCloud安装应用程序,该应用程序连接ONLYOFFICE功能。 让我们从菜单右上角的应用程序控制面板开始。 找到ONLYOFFICE应用程序(在“ Office&text”部分中或使用搜索),安装并激活它。
之后,通过右上角的菜单转到“设置”,您将需要在左侧菜单中找到ONLYOFFICE元素。 进去吧 您将需要如下所示注册地址。
第一个地址用于直接从浏览器中运行的应用程序链接到某些js和css文件(这就是为什么我们需要通过nginx打开对ONLYOFFICE服务的访问的原因)。 不使用私钥,因为我们比永久认证密钥更信任Docker隔离层。 NextCloud容器使用第三个地址直接连接到ONLYOFFICE API,并且使用Docker中的默认内部主机名。 好吧,使用了最后一个字段,以便ONLYOFFICE可以使用外部IP地址或内部Docker地址(如果您使用Docker网络)将请求发送回NextCloud API,但这在我们的案例中不使用。 确保您的防火墙设置允许这些类型的交互。
保存后,NextCloud将测试连接,如果一切正确,则将向您显示与集成相关的设置-例如,此集成可以编辑哪些类型的文件。 根据需要进行自定义。
最后一步:在哪里寻找编辑器
如果返回到云存储的文件夹,然后单击“ +”以创建新文件,则可以使用新选项来创建文档,表格或演示文稿。 在他们的帮助下,您将创建并立即可以使用ONLYOFFICE编辑这些文件类型。
加法1
docker-compose.yml的完整内容可以在这里找到:
https ://pastebin.com/z1Ti1fTZ