Files
ctms/docs/guides/onlyoffice-preview.md
T
Cheng Zhou c68dddfc01
Client Quality Gates / Shared client and Web (push) Has been cancelled
Client Quality Gates / macOS Desktop (push) Has been cancelled
功能(文档预览):集成 ONLYOFFICE 安全只读预览与工作台体验
新增 ONLYOFFICE 配置签名、内部内容接口、容器编排与反向代理。

打通网页端和桌面端独立预览工作区,完善文档入口、布局及帮助体验。

补充桌面安全发布门禁、开发脚本、使用文档和前后端测试。
2026-07-14 14:19:17 +08:00

2.6 KiB

ONLYOFFICE 只读预览运行说明

当前集成只用于附件和文档版本的 Office 文件只读预览。PDF、图片、另存为和桌面端“打开”仍使用原有链路;第一期不启用编辑、保存回调、历史记录或强制保存。

开发环境启动

普通 docker compose up 不会拉取或启动 Document Server。开发环境需要预览时执行专用启动脚本:

bash scripts/onlyoffice-dev-up.sh

脚本会自动完成以下工作:

  • 首次启动时生成 256-bit 随机 ONLYOFFICE_JWT_SECRET,写入根目录 .env,且不在终端回显。
  • 自动生成稳定的开发实例标识并写入 .env
  • .env 权限设置为 0600;该文件已被 Git 忽略。
  • 使用同一环境重建 backend,并显式启用 office Profile 启动 Document Server。
  • 后续启动默认复用密钥,防止后端和 Document Server 因签名密钥漂移而无法通信。

需要主动轮换开发密钥时执行:

bash scripts/onlyoffice-dev-up.sh --rotate-secret

轮换会强制重建相关容器,已签发但尚未使用的短时预览配置会立即失效。生产环境不使用该自动生成流程,仍必须由部署密钥管理系统显式提供密钥。

可用 ONLYOFFICE_IMAGE 覆盖默认的 onlyoffice/documentserver:9.4.0.1。默认派生镜像只增加 Noto Sans CJK/Noto Serif CJK,不包含微软字体。

配置边界

  • ONLYOFFICE_ENABLED 默认 false
  • ONLYOFFICE_INTERNAL_URL 默认 http://onlyoffice,只供后端健康探测。
  • ONLYOFFICE_STORAGE_BASE_URL 默认 http://backend:8000,只允许后端生成固定的内部文件地址。
  • ONLYOFFICE_CONFIG_TTL_SECONDS 默认 300 秒,允许范围为 60–900 秒。
  • 内部内容接口不经过 Nginx 公网入口,仅接受 AuthorizationJwt,且 JWT 必须绑定到请求的精确 URL。
  • 配置响应禁止缓存;JWT、内部文件 URL 和磁盘路径不得进入日志、审计详情或桌面缓存。
  • onlyoffice_dataonlyoffice_libonlyoffice_logs 不是 CTMS 业务权威数据,不纳入业务备份或恢复来源。

生产启用前

生产保持功能开关关闭,直至商业许可、批准镜像和真实授权环境回归完成。启用时必须使用生产随机密钥和稳定、唯一的 ONLYOFFICE_INSTANCE_ID,并完成 Web、macOS 和 Windows 内测端的真实 DOCX/XLSX/PPTX/WPS/ET/DPS 预览验证。

故障回退只关闭 ONLYOFFICE_ENABLED;不得影响附件下载、另存为、打开、PDF 或图片预览。Community 与商业版本的授权边界以 ONLYOFFICE 官方许可说明 为准。