OnlyOffice Docker 部署说明
简介
OnlyOffice Document Server 是一个在线文档编辑套件,支持 Word(.docx)、Excel(.xlsx)、PPT(.pptx)等 Office 格式的在线编辑和预览。 LangChat 通过 OnlyOffice 内置的 Example 编辑器服务实现文档的新建和预览功能。快速开始
启动服务
首次启动需要 1-2 分钟初始化,请耐心等待。
验证服务
访问地址
LangChat 后端配置
在application-dev.yml 或 application-prd.yml 中配置:
关于 editor-url
editor-url 必须包含 Example 服务的路径前缀。默认路径为 /example,即完整地址为 http://your-host:port/example。
前端不会拼接任何前缀,直接使用 editor-url + /editor?fileName=new.docx&lang=zh 构建 iframe 地址。
配置说明
环境变量
| 变量 | 默认值 | 说明 |
|---|---|---|
EXAMPLE_ENABLED | false | 启用内置 Example 编辑器服务。必须设为 true,否则需要手动进入容器执行 supervisorctl start ds:example |
JWT_ENABLED | true | 是否启用 JWT 签名验证。内网部署可设为 false 简化配置 |
JWT_SECRET | - | JWT 密钥,开启 JWT 时需配置 |
数据持久化
| 目录 | 说明 |
|---|---|
./data/onlyoffice/data | 文档数据存储 |
./data/onlyoffice/logs | 服务运行日志 |
端口说明(重要)
默认使用 80 端口,请勿随意修改端口映射。 为什么不能随意改端口? OnlyOffice Document Server 内部的 Document Service 与 Example 服务通过localhost 相互回调。当浏览器通过 localhost:8200 访问时,Example 服务会将 localhost:8200 作为回调地址传给 Document Service。但容器内部 nginx 只监听 80 端口,Document Service 在容器内请求 localhost:8200 会因端口不存在而报 ECONNREFUSED 错误,导致文档无法打开。
使用 80:80 映射时,浏览器和容器内部都通过 localhost:80 访问,回调地址一致,不会出现端口不通的问题。
如果 80 端口被占用,如何修改?
需要在容器内同步修改 nginx 监听端口,使内外端口一致:
url 和 editor-url:
安全提示
OnlyOffice 的 Example 服务仅用于演示和集成用途,任何人均可访问。生产环境中请注意:- 网络隔离:确保 OnlyOffice 仅在内网可访问,不要直接暴露到公网
- 启用 JWT:生产环境建议开启
JWT_ENABLED=true并配置密钥 - 防火墙规则:通过防火墙限制访问来源 IP
开源协议声明
OnlyOffice Document Server 采用 AGPL v3 开源协议。请注意以下事项:- LangChat 仅提供 Docker Compose 部署脚本和 iframe 集成方案,不包含、不修改、不分发 OnlyOffice 的任何源码或二进制文件
- 镜像由使用方自行从 Docker Hub 拉取,AGPL v3 的合规义务由实际部署和运行该软件的主体承担
- 如果您需要修改 OnlyOffice 源码,根据 AGPL v3 协议,您必须向通过网络访问该服务的用户提供修改后的完整源码
- 如果您希望在商业产品中深度集成 OnlyOffice 且不公开源码,请考虑购买 OnlyOffice 商业许可
- 更多协议详情请参阅 AGPL v3 原文
常见问题
1. 启动后访问 /example 返回 404
检查EXAMPLE_ENABLED 环境变量是否设置为 true。如果容器已在运行但未设置该变量,可以手动启用:

