一句话总结:这玩意儿能跑,但不调配置基本必踩坑 😄
🧩 一、这玩意是干嘛的?
简单说: Collabora Online = 在线版 Office(Word / Excel / PPT)
常见用途:
- 对接 Nextcloud
- 自建在线文档系统
- 做企业内部文档协同
🐳 二、Docker 一把梭(先跑起来再说)
先别想太多,直接启动:
docker run -t -d \
-p 0.0.0.0:9980:9980 \
-e "domain=.*" \
-e "username=admin" \
-e "password=你的密码" \
-e "JWT_SECRET=你的密钥" \
-e "extra_params=--o:lang=zh_CN" \
--restart=on-failure:5 \
--privileged \
--name collabora \
collabora/code
👉 启动成功后访问:
http://你的IP:9980
后台管理:
http://你的IP:9980/browser/dist/admin/admin.html
⚠️ 三、内网部署的“必踩大坑”
默认配置是 HTTPS + 严格校验 👉 但我们内网基本都是 HTTP
所以—— 不改配置 = 直接 403 / 连不上
🔧 四、核心操作:改配置!(关键三刀)
1️⃣ 把配置文件拷出来
docker cp collabora:/etc/coolwsd/coolwsd.xml ./coolwsd.xml
2️⃣ 修改这 3 个地方(重点!)
✅ ① 放开 WOPI 限制(否则 403)
<wopi allow="true">
<host allow="true">.*</host>
</wopi>
✅ ② 关闭 SSL(核心中的核心)
<enable>false</enable>
✅ ③ 强制走 HTTP
<as_scheme>false</as_scheme>
3️⃣ 拷回去并重启
chmod 777 coolwsd.xml
docker cp coolwsd.xml collabora:/etc/coolwsd/coolwsd.xml
docker restart collabora
🌐 五、网络一定要通!
一句人话总结:
👉 Collabora 必须能访问你的业务服务(WOPI)
比如:
Collabora: 192.168.76.15
业务服务: 192.168.76.10:3001
如果不通:
❌ 直接报错:
Unauthorized WOPI host
🧪 六、快速测试(官方 demo)
拉个 demo 项目:
git clone https://github.com/CollaboraOnline/collabora-online-sdk-examples.git
改端口:
let port = normalizePort(process.env.PORT || '3001');
🔗 七、直接打开文档(核心 URL)
关键参数就两个:
WOPISrclang
示例:
http://IP:9980/browser/.../cool.html?
WOPISrc=http://你的服务/wopi/files/1
&lang=zh-cn
👉 加 lang=zh-cn 才会中文界面!
🔤 八、字体问题(经典坑)
1️⃣ 宿主机安装字体
# CentOS
yum install wqy-microhei-fonts -y
# Ubuntu / Debian
apt install fonts-wqy-microhei
2️⃣ 容器内刷新
docker exec -it collabora bash
fc-cache -fv
coolconfig update-system-template
⚠️ 注意
👉 字体下拉框默认还是英文!
如果你想显示中文:
- 需要改前端
cool.html - 做一层 字体映射
(这个属于“美化优化”,不是必须)
🧠 九、整体架构(给你一个脑图)
大概是这样:
浏览器
↓
前端服务(你的系统)
↓
WOPI 接口(你实现)
↓
Collabora Online
👉 核心点: Collabora 不存文件,只负责“编辑”
🎯 十、总结(重点记住这 5 条)
- 一定要改
coolwsd.xml - 一定要关闭 SSL(内网场景)
- 一定要放开 WOPI host
- 网络必须互通
- 中文要加
lang=zh-cn
🎉 最后
如果你看到这里:
👉 恭喜你,已经干掉 90% 的坑了 😎
剩下的:
- 字体美化
- UI 中文化
- 权限控制
都只是“锦上添花”。