如何使用 docker-compose 为 Nextcloud 运行 Collabora office
创建此 docker-compose.yml,例如在 /opt/collabora-mydomain 中:
docker-compose-collabora.yml
services:
code:
image: collabora/code:latest
restart: always
environment:
- password=${COLLABORA_PASSWORD}
- username=${COLLABORA_USERNAME}
- aliasgroup1=https://collabora.mydomain.com:443
- aliasgroup2=https://nextcloud.myseconddomain.com:443
- server_name=collabora.mydomain.com
- extra_params=--o:ssl.enable=true
ports:
- 9980:9980
labels:
- "traefik.enable=true"
- "traefik.http.routers.collabora.rule=Host(`collabora.mydomain.com`)"
- "traefik.http.routers.collabora.entrypoints=websecure"
- "traefik.http.routers.collabora.tls.certresolver=cloudflare"
- "traefik.http.routers.collabora.tls.domains[0].main=mydomain.com"
- "traefik.http.routers.collabora.tls.domains[0].sans=*.mydomain.com"
- "traefik.http.services.collabora.loadbalancer.server.port=9980"
- "traefik.http.services.collabora.loadbalancer.server.scheme=https"如果需要,根据需要添加更多 aliasgroup。
现在创建此 .env 配置。你需要更改密码和域名!
collabora.env
COLLABORA_USERNAME=admin
COLLABORA_PASSWORD=veecheit0Phophiesh1fahPah0Wue3现在你可以使用我们来自在 10 秒内为你的 docker-compose 项目创建 systemd 服务的脚本创建 systemd 服务以自动启动。
从你的目录内运行(例如 /opt/collabora-mydomain)
create_docker_compose_service.sh
curl -fsSL https://techoverflow.net/scripts/create-docker-compose-service.sh | sudo bash /dev/stdinTraefik 配置
所有相关 traefik 配置已在 docker-compose.yml 中。你需要运行 Traefik 并配置为使用 cloudflare certresolver。
有关我们使用的 Traefik 配置,请参见此 TechOverflow 文章。
nginx 配置。
注意:我通常推荐使用 Traefik。
现在你需要配置反向代理指向端口 9980。以下是示例 nginx 配置:
collabora_nginx.conf
server {
server_name collabora.mydomain.com;
access_log /var/log/nginx/collabora.mydomain.com.access_log;
error_log /var/log/nginx/collabora.mydomain.com.error_log info;
location / {
proxy_pass https://127.0.0.1:9980;
proxy_http_version 1.1;
proxy_read_timeout 3600s;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
add_header X-Frontend-Host $host;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
}
listen [::]:80; # managed by Certbot
}现在打开浏览器并打开 collabora.mydomain.com。如果 collabora 正确运行,你应该看到:
collabora_ok_output.txt
OK在 Nextcloud 中,转到 https://nextcloud.mydomain.com/settings/admin/richdocuments 并将**Collabora Online 服务器的 URL(和端口)**设置为:
collabora_nextcloud_url_example.txt
https://admin:veecheit0Phophiesh1fahPah0Wue3@collabora.mydomain.com确保使用 .env 中的自定义密码和你的自定义域名!
点击保存,你应该看到 Collabora Online server is reachable:

If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow