使用正確的 WOPI URL 將 Seafile 和 Collabora 連接起來
透過為您的部署配置 Collabora 的發現 URL、HTTPS 和 WOPI 存取權限,在 Seafile 中啟用安全性文件編輯。
若要將 Seafile 與 Collabora Online 連接,請在 Seafile 上啟用 HTTPS,部署 Collabora,並將 Seafile 的 Office 整合指向 Collabora 的發現端點。如果這兩個服務運行在同一個 Docker 網路上,Seafile 目前的整合指南使用內部 URL http://collabora:9980/hosting/discovery;如果 Collabora 運行在單獨的主機上,則改用其公共 HTTPS URL。
目前的 Seafile 管理手冊詳細介紹了collabora.ymlCompose 整合及其設定seahub_settings.py。特定的部署檔案可能因 Seafile 版本而異,因此在參考這些範例時,請使用與您已安裝版本相符的手冊。
seahub_settings.py。Seafile 和 Collabora 使用 WOPI 進行通訊。 Seafile 提供文件存取訊息,Collabora 則向 Seafile 請求文件。發現 URL 會告知 Seafile 要使用哪個 Collabora 服務以及該服務提供的編輯器功能。
在瀏覽器中開啟 Seafile,確認其正常位址以 `/example.com` 開頭https://,且憑證有效。對於 Seafile 的 Docker 部署,其目前手冊顯示需要SEAFILE_SERVER_PROTOCOL=https在設定.env檔中進行設置,然後透過配置的反向代理完成 HTTPS 設定。請勿使用公共的純 HTTP Seafile 端點。
# In the Seafile deployment .env file
SEAFILE_SERVER_PROTOCOL=https
請將實際的憑證和私鑰置於您的 TLS 代理程式或憑證管理員的控制之下。此設定本身不會頒發憑證或設定反向代理;在啟用線上辦公室編輯之前,請完成部署的 HTTPS 步驟。
對於文件中記錄的同主機 Docker 配置,請使用 Seafile 提供的 Collabora Compose 文件,而不是自行建構無關的容器定義。在 Seafile 部署目錄中,下載與手冊版本相符的文件,並將其新增collabora.yml至現有COMPOSE_FILE清單.env。請保留安裝中已使用的 Compose 檔案。
# Example for a Seafile 14.0 deployment
wget https://manual.seafile.com/14.0/repo/docker/collabora.yml
設定 Seafile 文件中記錄的 Collabora 變數.env:
COLLABORA_IMAGE=collabora/code
COLLABORA_PORT=6232
COLLABORA_USERNAME=your_admin_username
COLLABORA_PASSWORD=use_a_long_unique_secret
COLLABORA_ENABLE_ADMIN_CONSOLE=true
COLLABORA_ENABLE_FILE_LOGGING=false
請使用唯一且強的密碼,並限制對該.env文件(包含憑證)的存取。範例連接埠是 Seafile 整合配置中暴露的連接埠;請勿假定它是反向代理上的公共連接埠。請按照collabora.yml與您的版本相符的檔案和代理配置進行操作。
將服務新增至部署後,請使用常規的 Seafile 流程啟動或更新 Compose 堆疊。除非您的設計明確要求且已確保端點安全,否則請避免將 Collabora 的內部連接埠直接發佈到網際網路。
編輯目前seahub_settings.py文件並新增整合設定。對於同一台主機上的 Compose 設置,Seafile 手冊使用服務名稱和內部 Collabora 連接埠:
OFFICE_SERVER_TYPE = 'CollaboraOffice'
ENABLE_OFFICE_WEB_APP = True
OFFICE_WEB_APP_BASE_URL = 'http://collabora:9980/hosting/discovery'
WOPI_ACCESS_TOKEN_EXPIRATION = 30 * 60
OFFICE_WEB_APP_FILE_EXTENSION = (
'odp', 'ods', 'odt', 'xls', 'xlsb', 'xlsm', 'xlsx',
'ppsx', 'ppt', 'pptm', 'pptx', 'doc', 'docm', 'docx'
)
ENABLE_OFFICE_WEB_APP_EDIT = True
OFFICE_WEB_APP_EDIT_FILE_EXTENSION = (
'odp', 'ods', 'odt', 'xls', 'xlsb', 'xlsm', 'xlsx',
'ppsx', 'ppt', 'pptm', 'pptx', 'doc', 'docm', 'docx'
)
此處的URLhttp://是 Seafile 官方文件中 Docker 網路內部的服務間通訊位址。瀏覽器導向的 Seafile 網站仍需使用 HTTPS。請勿將此內部位址複製到獨立主機部署。
如果 Collabora 運行在不同的主機上,請配置 Collabora 透過 HTTPS 連接到標準公共端口,並使用反向代理將請求轉送到 Collabora 的監聽端口。將基本 URL 設定為您的實際公用主機名,例如:
OFFICE_WEB_APP_BASE_URL = 'https://office.example.com/hosting/discovery'
確保 URL 中的主機名稱能夠解析,並且需要開啟文件的用戶端能夠提供有效的憑證。此外,還需要配置 Collabora 的 WOPI 允許列表,使其允許 Seafile 伺服器主機存取。 Collabora 的官方 Docker 文件介紹了aliasgroup用於聲明允許的 WOPI 主機的環境變數;請確保其與 Seafile 使用的主機和協定完全匹配,並避免在生產伺服器上使用廣泛的通配符存取權。
重新啟動 Seafile 服務,以便 Seahub 載入新的 Python 設定。請使用適用於您的軟體包、Compose 堆疊或 Kubernetes 設定的重啟步驟;服務名稱和命令會因部署而異。如果您新增了新的 Compose 文件,請在測試瀏覽器工作流程之前確認 Collabora 容器正在執行。
從 Seafile 的 Web 介面開啟一個支援的 Office 文件。該檔案應在 Collabora 編輯器中打開,顯示其內容,並將一小段測試變更儲存回 Seafile。成功開啟文件比僅檢查發現頁面更有意義,因為它可以測試瀏覽器、Seafile、Collabora 和 WOPI 文件傳輸的兼容性。
OFFICE_WEB_APP_BASE_URLSeafile 服務是否可存取。僅當兩個容器共用相同網路時才使用內部 Docker 服務名稱。OFFICE_WEB_APP_FILE_EXTENSION和OFFICE_WEB_APP_EDIT_FILE_EXTENSION。請將這些清單限制在使用者需要的格式以及您的 Collabora 部署支援的格式範圍內。seahub_settings.py並重新啟動了正確的 Seafile 服務。對於獨立的 Collabora 節點,Seafile 明確引導管理員參考 Collabora 的部署文檔,而不是使用其自帶的設定檔collabora.yml。自帶的設定檔適用於上述相同的 Docker 主機/網路配置。
透過為您的部署配置 Collabora 的發現 URL、HTTPS 和 WOPI 存取權限,在 Seafile 中啟用安全性文件編輯。
測試系統剪貼簿,調整瀏覽器權限,並確定嵌入式 Collabora 整合何時需要更改 iframe 策略。
將字體檔案掛載到 Docker 和 Collabora 的系統範本中,以便自訂字體出現在編輯器中並在文件中正確渲染。
備份 coolwsd.xml 及其部署來源,安全地恢復它們,並在使用者返回編輯之前驗證程式碼。
在程式碼中允許確切的 Nextcloud 或其他 WOPI 來源,然後驗證活動主機允許列表,並將其與 Nextcloud 的來源 IP 限制區分開來。
追蹤 Collabora 的瀏覽器、WOPI 和 WebSocket 連接,找出文件無法開啟的原因,然後套用與您的 Nextcloud 設定相符的修復程式。
使用 Helm 部署 Collabora CODE 副本,透過 WOPI 親和性將每個文件保持在一個 pod 中,並驗證入口、節點放置和 Nextcloud 編輯。
從瀏覽器到 coolwsd 追蹤失敗的套接字握手,然後將反向代理路由與您的 Collabora 版本進行匹配,包括 CODE 26.04 Apache 變更。
追蹤 Collabora WOPI 證明失敗的原因,例如金鑰不匹配、發現資料過時、時脈漂移或代理 URL 變更——而不會削弱驗證。
重置瀏覽器縮放,測試乾淨的會話,並確定何時格式錯誤的選單大小需要 Collabora 伺服器更新。