nextcloud 連接 onlyoffice 體驗

Last Updated on 2026-10-30 by william

我自己的nextcloud原本連結 Collabora Online 達到可線上編輯 office 文件功能, 但是最近發現 onlyoffice 更相容 M$ office, 於是想試用看看, 這次一樣使用 docker 安裝,且不使用 onlyoffice 內建的 let’s encrypt 功能;而是使用我習慣的反向代理,因此法證書都是放在宿主機裡,並非分散到其他容器裡面,比較好管理。

*** 2022/11/28 以下作法安裝 7.2 居然失敗(docker 必須升級到 20.10.21), 但我這版還沒升級, 只好退回 7.1

docker volume create onlyoffice_fonts

docker run --restart always -v onlyoffice_fonts:/usr/share/fonts -v /etc/letsencrypt:/etc/letsencrypt  --name onlyoffice -d  -p 8443:443 onlyoffice/documentserver:7.1

*** 2023/09/19 安裝 7.2 以上,需要設定密碼,並且在 nextcloud 的「secret key」欄位輸入該密碼

docker volume create onlyoffice_fonts
docker run --restart always -v onlyoffice_fonts:/usr/share/fonts -v /etc/letsencrypt:/etc/letsencrypt --name onlyoffice -d  -p 8443:443  -e JWT_SECRET=<密碼> onlyoffice/documentserver:7.2

安裝完畢, 接下來就是進入容器,進行憑證的對應
** onlyoffice_fonts 的路徑可以存放其他字型(TTF、TTC),再進入容器執行 /usr/bin/documentserver-generate-allfonts.sh 即可使用新的字型,或是執行 fc-cache -f /usr/share/fonts/xxxx 目錄 ,fc-list 可得知那些字型生效。

網站憑證的設定方式,我是習慣將宿主機的 /etc/letsencrypt 對應到容器內部的 /etc/letsencrypt;若不想要這樣對應,onlyoffice 應該有參數能自動申請使用。

#進入onlyoffice
docker exec -it onlyoffice bash

###### 執行已下指令
mkdir /var/www/onlyoffice/Data/certs
cd /var/www/onlyoffice/Data/certs/
openssl dhparam -out dhparam.pem 2048
ln -s /etc/letsencrypt/live/onlyoffice.test.com/fullchain.pem /var/www/onlyoffice/Data/certs/onlyoffice.crt
ln -s /etc/letsencrypt/live/onlyoffice.test.com/privkey.pem /var/www/onlyoffice/Data/certs/onlyoffice.key
######

#離開container並且重開
exit
docker restart onlyoffice

最後再到 nextcloud 系統,啟用 onlyoffice 外掛連結功能,再輸入咱們 onlyoffice 的網址,如:https://onlyoffice.test.com,就可以享用高度相容 M$ office 的線上編輯功能了。

PS. 若容器的憑證是自己簽發的,經過測試無法使用,官網建議的做法一樣失敗,請三思
https://api.onlyoffice.com/editors/nextcloud
測試的 nextcloud 20.0.4 , 插件 onlyoffice 是 6.1.0.83


2026/10/30

最近因為 php2shell 資安問題,我必須從 nextcloud 27 版開始一路升級到 32 版,才能擺脫這個大漏洞,也順便讓 onlyoffice 從 7.5.1 升到 9.2.1,以下是新版的安裝方式:

先建立字型目錄,裡面可以直接放 ttf、ttf 字型檔案,建議自己建立一個目錄,放入字型,以後好辨認

docker volume create onlyoffice_fonts
  1. 執行以下指令
  2. 我習慣用宿主機的/etc/letsencrypt,所以需要對應目錄
  3. 設定好 LETS_ENCRYPT_DOMAIN 與 LETS_ENCRYPT_MAIL 相關參數,以及對外的 port
docker run --restart always -v onlyoffice_fonts:/usr/share/fonts -v /etc/letsencrypt:/etc/letsencrypt  -v onlyoffice_Data:/var/www/onlyoffice/Data -e LETS_ENCRYPT_DOMAIN=onlyoffice.test.com  -e LETS_ENCRYPT_MAIL=yourgmail@gmail.com -e JWT_ENABLED=true -e JWT_SECRET=密碼 --name onlyoffice_9.2.1 -d  -p 8444:443 -p 8081:80  ghcr.io/thomisus/onlyoffice-documentserver-unlimited:9.2.1
  1. 進入容器設定好憑證
  2. 因 onlyoffice 的預設憑證名稱跟 letsencrypt 不一樣,因此需要對應好。
docker exec -it onlyoffice bash

###### 執行已下指令
mkdir /var/www/onlyoffice/Data/certs
cd /var/www/onlyoffice/Data/certs/
openssl dhparam -out dhparam.pem 2048
ln -s /etc/letsencrypt/live/onlyoffice.test.com/fullchain.pem /var/www/onlyoffice/Data/certs/onlyoffice.crt
ln -s /etc/letsencrypt/live/onlyoffice.test.com/privkey.pem /var/www/onlyoffice/Data/certs/onlyoffice.key
######

修改好,建議安裝 nmap 確認容器的 443 有起來

apt install vim nmap telnet -y

# 以下指令可確認容器內部的 443 有起來
nmap localhost

重啟容器就可以了

docker restart onlyoffice

最後回到 nextcloud 進行設定


重啟後,建議看一下 log 我自己安裝 9.2.1 有出現一個錯誤

EACCES: permission denied, mkdir '/var/www/onlyoffice/documentserver/.cache/pkg/282c93e4113a05841f827943c9f6cd6d4188bfda819ab562b27b278d2fcebfda'

Possible solutions:
- Install with verbose logging and look for errors: "npm install --ignore-scripts=false --foreground-scripts --verbose sharp"
- Install for the current linux-x64 runtime: "npm install --platform=linux --arch=x64 sharp"
- Consult the installation documentation: https://sharp.pixelplumbing.com/install

原先我照 log 建議,安裝 sharp 甚麼的,但很麻煩,後來發現只要解決上面 EACCESS: permission denied 問題即可

進入容器,看 log 出現無權限的目錄名稱是什麼,先手動建立,然後設定 owner 為 ds,這樣就可以了。

# 看 log 出現無權限的目錄名稱是什麼,
mkdir -p /var/www/onlyoffice/documentserver/.cache/pkg/282c93e4113a05841f827943c9f6cd6d4188bfda819ab562b27b278d2fcebfda

chown -R ds:ds /var/www/onlyoffice/documentserver/.cache

在〈nextcloud 連接 onlyoffice 體驗〉中有 2 則留言

  1. 自動引用通知: 超簡單安裝collabora online Part II (v 2.4.17 ) - 咖啡偶-IT日常

  2. 自動引用通知: onlyoffice再次回歸啟用 - 咖啡偶-IT日常

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

返回頂端