超簡單安裝collabora online Part II (v 2.4.17 )
我以前文章「超簡單安裝collabora online」敘述如何讓nextcloud搭配online document server達到線上編輯功能 ; 後來發現Onlyoffice 更好用, 版面格式比較不會跑掉,就變心改用onlyoffice。
隨著公司越來越多人使用onlyoffice ,沒想到免費版有10人開啟檔案的上限,預算考量,只能另想辦法。
我回過頭來看collabora online , 雖是免費,但官方編譯一樣有20人數限制;照這樣子應該真的要去拍桌,跟老闆說要加錢購買onlyoffice。
可是偶然間發現有個群組, 協助編譯開源版collabora online,並且解除20人限制, 甚至編譯成 docker 版本, 真是佛心來的。
以下請參考github與docker網站:
https://github.com/tiredofit/docker-collabora-online
https://hub.docker.com/r/collabora/code/tags
官方文件很少。但不囉嗦, 我測試後直接寫如何安裝。
- compose 文件
wget https://github.com/tiredofit/docker-collabora-online/raw/master/examples/docker-compose.yml
mv docker-compose.yml.traefik docker-compose.yml
vi docker-compose.yml
#改成醬
#紅色字需要修改
version: '3.7'
services:
collabora-online-app:
image: tiredofit/collabora-online:2.4.17
container_name: collabora-online-app
hostname: collabora-online.test.com
expose:
- 9980
ports:
- "9980:9980"
cap_add:
- MKNOD
- NET_ADMIN
privileged: true
labels:
- traefik.enable=true
- traefik.frontend.rule=Host:collabora-online.test.com
- traefik.port=9980
- traefik.protocol=http
- traefik.docker.network=proxy
- traefik.backend=collabora-online-app
volumes:
- ./logs:/logs
environment:
- CONTAINER_NAME=collabora-online-app
- ADMIN_USER=admin
- ADMIN_PASS=collabora-online
# 允許哪些網站存取
- ALLOWED_HOSTS=cloud.test.com,xxx.test.com
- ENABLE_TLS=FALSE
- ENABLE_TLS_REVERSE_PROXY=TRUE
restart: always
- 修改反向代理
以下主機名稱需與compose文件相同
<VirtualHost *:443>
ServerName collabora-online.test.com:443
# SSL configuration, you may want to take the easy route instead and use Lets Encrypt!
SSLCertificateFile /etc/letsencrypt/live/collabora-online.test.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/collabora-online.test.com/privkey.pem
SSLCACertificateFile /etc/letsencrypt/live/collabora-online.test.com/fullchain.pem
SSLProtocol all -SSLv2 -SSLv3
SSLEngine on
SSLHonorCipherOrder on
AllowEncodedSlashes NoDecode
ProxyPreserveHost On
# static html, js, images, etc. served from coolwsd
# browser is the client part of Collabora Online
ProxyPass /browser http://127.0.0.1:9980/browser retry=0
ProxyPassReverse /browser http://127.0.0.1:9980/browser
# WOPI discovery URL
ProxyPass /hosting/discovery http://127.0.0.1:9980/hosting/discovery retry=0
ProxyPassReverse /hosting/discovery http://127.0.0.1:9980/hosting/discovery
# Capabilities
ProxyPass /hosting/capabilities http://127.0.0.1:9980/hosting/capabilities retry=0
ProxyPassReverse /hosting/capabilities http://127.0.0.1:9980/hosting/capabilities
# Main websocket
ProxyPassMatch "/cool/(.*)/ws$" ws://127.0.0.1:9980/cool/$1/ws nocanon
# Admin Console websocket
ProxyPass /cool/adminws ws://127.0.0.1:9980/cool/adminws
# Download as, Fullscreen presentation and Image upload operations
ProxyPass /cool http://127.0.0.1:9980/cool
ProxyPassReverse /cool http://127.0.0.1:9980/cool
# Compatibility with integrations that use the /lool/convert-to endpoint
ProxyPass /lool http://127.0.0.1:9980/cool
ProxyPassReverse /lool http://127.0.0.1:9980/cool
</VirtualHost>
- nextcloud 設定
要安裝Collabora Online

設定URL,開檔需導入到 Collabora Online-server

完成了

- 檢查運行狀況
需輸入compose上面的管理者帳號與密碼
https://collabora-online.test.com/browser/dist/admin/admin.html
- 若上傳字型,需要登入到容器,加上額外字型的設定

docker exec -it <容器名稱> bash
vi etc/coolwsd/coolwsd.xml
<remote_font_config>
<url desc="URL of optional JSON file that lists fonts to be included in Online" type="string" default="">https://cloud.test.com/apps/richdocuments/settings/fonts.json</url>
</remote_font_config>
