docker 安裝 onlyoffice 社區版#
sudo docker run -i -t -d -p 8701:80 onlyoffice/documentserver
官方還建議將數據存放在 Docker 容器之外,因為這樣可以新版本發布後,輕鬆更新 ONLYOFFICE Docs 而不會造成丟失數據。
因此需要使用下面命令
sudo docker run -i -t -d -p 8701:80 --restart=always \
-v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \
-v /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice \
-v /app/onlyoffice/DocumentServer/db:/var/lib/postgresql -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver
- -p 8701:80 表示端口映射,前者是宿主機端口,後者是容器內的映射端口。
- --restart=always 容器自動重啟
- onlyoffice/documentserver 鏡像名稱
- -e JWT_SECRET=my_jwt_secret 秘鑰
數據卷說明
- /var/log/onlyoffice 對於 ONLYOFFICE 文檔日誌
- /var/www/onlyoffice/Data 證書
- /var/lib/onlyoffice 用於文件緩存
- /var/lib/postgresql 對於數據庫
從 7.2 版本開始, JWT 驗證默認開啟
如果在安裝期間未添加自定義密鑰,則會自動生成隨機密鑰
sudo docker exec 6b1c15f3204c /var/www/onlyoffice/documentserver/npm/json -f /etc/onlyoffice/documentserver/local.json 'services.CoAuthoring.secret.session.string'
點擊 Go To Example, 就可以訪問文檔編輯器示例了
參考鏈接:
Node 集成#
下載 node 實例:
接下來我們需要修改文檔服務器地址 config/default.json
"storageFolder": "./files"
"storagePath": "/files"
"siteUrl": "https://documentserver/"
documentserver 就是剛剛安裝的 IP 地址。 storageFolder 和 storagePath 我們可以根據實際修改。
還要修改 token 裡面的秘鑰
"token": {
"enable": true,
"secret": "my_jwt_secret",
...
},
修改的內容
啟動項目,瀏覽器訪問 http://localhost:3000
進入後的界面同 Docker Example 一致
前端集成#
問題#
The document security token is not correctly formed. Please contact your Document Server administrator.#
有兩種情況導致這種現象,總之都是沒有秘鑰
一種是安裝 Docker 的時候沒有關閉秘鑰,一種是開啟了秘鑰,但是 Node 沒有開啟轉換,或者是秘鑰填寫錯誤
Download failed#
原因是,我們的 document server 安裝在 docker 中。對於 docker 服務來說, localhost:3000 是不存在這個文件的。
通常來說,應該把 uri 的 ip 設置對外能訪問的本地 ip 地址,不能是 localhost、127.0.0.1 以及本機內部 ip。
因此我們需要通過本機 IP 訪問。 真的生產環境上,我們會分配一個域名。使用 IP 或者域名訪問就可以成功了
參考鏈接: