神族九帝

神族九帝

Onlyoffice 快速入門

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'

image.png

點擊 Go To Example, 就可以訪問文檔編輯器示例了

image.png

參考鏈接:

Node 集成#

下載 node 實例:
接下來我們需要修改文檔服務器地址 config/default.json

"storageFolder": "./files"
"storagePath": "/files"
"siteUrl": "https://documentserver/"

documentserver 就是剛剛安裝的 IP 地址。 storageFolder 和 storagePath 我們可以根據實際修改。
還要修改 token 裡面的秘鑰

    "token": {
      "enable": true,
      "secret": "my_jwt_secret",
      ...
    },

修改的內容
image.png
image.png
啟動項目,瀏覽器訪問 http://localhost:3000
進入後的界面同 Docker Example 一致
image.png

前端集成#

問題#

The document security token is not correctly formed. Please contact your Document Server administrator.#

image.png
image.png

有兩種情況導致這種現象,總之都是沒有秘鑰
一種是安裝 Docker 的時候沒有關閉秘鑰,一種是開啟了秘鑰,但是 Node 沒有開啟轉換,或者是秘鑰填寫錯誤

Download failed#

image.png
image.png
原因是,我們的 document server 安裝在 docker 中。對於 docker 服務來說, localhost:3000 是不存在這個文件的。
通常來說,應該把 uri 的 ip 設置對外能訪問的本地 ip 地址,不能是 localhost、127.0.0.1 以及本機內部 ip。
因此我們需要通過本機 IP 訪問。 真的生產環境上,我們會分配一個域名。使用 IP 或者域名訪問就可以成功了
參考鏈接:

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。