docserver环境搭建
禁用JWT
加载镜像:
docker load -i docserver:7
运行容器:
docker run -itd -p 8080:80 --name docserver -e JWT_ENABLED=false --restart=always onlyoffice/documentserver:7.3.2docker run -itd -p 8080:80 --name docserver -e JWT_ENABLED=false --restart=always onlyoffice/documentserver:8
参数说明:
-i
开启交互模式。-t
分配一个虚拟终端。-d
在后台运行容器。--name docserver
指定容器的名字叫做docserver。-p 8080:80
将容器的80端口映射到主机的8080端口。--restart=always
使容器在重启后自动启动。
浏览器访问:http://localhost:8080/web-apps/apps/api/documents/api.js
解决下载失败的问题
把配置文件复制出来:
docker cp docserver:/etc/onlyoffice/documentserver/default.json ~/Downloads/default.json
修改:之前
"allowPrivateIPAddress": true,
"allowMetaIPAddress": true
修改:之后
"allowPrivateIPAddress": false,
"allowMetaIPAddress": false
把文件复制进去:
docker cp ~/Downloads/default.json docserver:/etc/onlyoffice/documentserver/default.json
进入容器:
docker exec -it docserver bash
重启相关服务:
supervisorctl restart all
编写第一个应用
准备一个目录,这个目录有:
- data:目录
- test.docx 一个测试文档
- test.html 一个测试网页
- main.py
main.py
import api
from api import middlewareasync def doc_callback(request):data = await api.req.get_json(request)print("callback === ", data)# status == 2 文档准备好被保存# status == 6 文档编辑会话关闭return api.resp.success()app = api.Api(routes=[api.resp.dir_route("/", "data"),api.resp.post("/doc/callback", doc_callback),],middleware=[middleware.cors()],
)if __name__ == "__main__":app.run(port=18889)
test.html
<!DOCTYPE html>
<html lang="en">
<head><title>OnlyOffice Integration Example</title>
</head>
<body><div id="onlyoffice-editor"></div><script src="http://192.168.101.5:8080/web-apps/apps/api/documents/api.js"></script>
<script>var docEditor;var config = {// 定义 Document Server 的服务地址document: {fileType: 'docx',key: 'Khirz6zTPdfd7',title: 'Example Document Title.docx',url: 'http://192.168.101.5:18889/test.docx',// 提供文档信息,比如创建者、创建时间等// 也可以定义回调 URL 在文档被编辑时 OnlyOffice Server 将发送更新},editorConfig: {mode: 'edit', // 或者 'view'callbackUrl: 'http://192.168.101.5:18889/doc/callback',lang: 'en', // 设置语言user: { // 定义当前用户信息id: 'userid',name: 'John Smith',},},type: 'desktop', // 或 'mobile' 根据设备类型height: '600px',width: '100%'};docEditor = new DocsAPI.DocEditor("onlyoffice-editor", config);
</script></body>
</html>