ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Docker一键部署Univer Workspace:生产环境配置、GitHub/Discord OAuth登录与数据卷指南

Docker一键部署Univer Workspace:生产环境配置、GitHub/Discord OAuth登录与数据卷指南 Docker一键部署Univer Workspace生产环境配置、GitHub/Discord OAuth登录与数据卷指南【免费下载链接】univer-workspaceAn open-source Office workspace where people and AI agents create, collaborate, and review together.项目地址: https://gitcode.com/gh_mirrors/un/univer-workspace 本文带你用Docker 一键部署 Univer Workspace—— 开源 Office 协作工作区覆盖生产环境变量、GitHub/Discord OAuth 登录配置与数据卷持久化三大核心环节从拉取源码到对外提供服务全程约 10 分钟新手也能一次跑通。一、Univer Workspace 是什么Univer Workspace 是一个可自托管的开源办公与协作平台把**表格、文档、幻灯片、数据库Base、画布Board**装进同一个运行时支持多人实时协作、权限管理、回收站、版本历史还能为 AI Agent 提供隔离的 Worktree 评审工作流。部署架构非常轻量一个 Server 容器同时托管后端 API 和构建好的前端页面数据落在一个.data数据目录里——这也是本文 Docker 数据卷配置的核心。 部署细节官方出处apps/workspace/README.md二、Docker一键部署三步启动1. 获取源码git clone https://gitcode.com/gh_mirrors/un/univer-workspace cd univer-workspace2. 构建镜像镜像由多阶段构建完成先编译前端与 Server再打出一个只含生产依赖的轻量运行层基于node:24-bookworm-slim。构建文件位于 apps/workspace/Dockerfiledocker build \ --build-arg VITE_UNIVER_LICENSE$VITE_UNIVER_LICENSE \ -f apps/workspace/Dockerfile \ -t univer-workspace .⚠️VITE_UNIVER_LICENSE用于非 localhost 域名部署的运行时许可覆盖内置开发许可只对 localhost 生效生产域名部署必须通过该构建参数传入你自己的许可。3. 一键运行容器docker run --name univer-workspace \ -p 3020:3020 \ -v univer-workspace-data:/app/univer-workspace/.data \ -e GITHUB_CLIENT_ID \ -e GITHUB_CLIENT_SECRET \ -e GITHUB_CALLBACK_URLhttps://workspace.example.com/api/auth/github/callback \ -e DISCORD_CLIENT_ID \ -e DISCORD_CLIENT_SECRET \ -e DISCORD_CALLBACK_URLhttps://workspace.example.com/api/auth/discord/callback \ -e SECURE_COOKIEStrue \ univer-workspace容器默认以node 非 root 用户运行只暴露3020一个端口。启动后浏览器打开http://服务器IP:3020即可看到登录页API 文档在http://服务器IP:3020/api-docs与/openapi.yaml。三、生产环境配置关键环境变量清单配置模板见 .env.example。Docker 场景下用-e或--env-file传入最常碰到的项如下变量作用生产建议HOST/PORT监听地址与端口镜像默认0.0.0.0:3020保持默认靠端口映射对外SECURE_COOKIES会话 Cookie 是否仅 HTTPS 传输HTTPS 部署必须true纯 HTTP 环境才设falseSESSION_TTL_MS登录会话有效期默认 7 天按安全策略调整VITE_UNIVER_LICENSE前端构建期许可build-arg 传入非 localhost 域名必填METRICS_TOKEN启用带 Bearer 鉴权的/metrics端点接 Prometheus 监控时设置32 位以上随机串LOG_LEVEL日志级别info启动自检容器启动时会向 stdout 输出 JSON 行格式的启动诊断workspace.startup事件每个阶段带耗时与内存信息无需额外配置。排查卡在启动问题时直接docker logs即可定位到具体阶段。如需把指标接入监控面板仓库自带观测组件见 observability/README.md内含 Prometheus 抓取配置与 Grafana 仪表盘 univer-workspace.json。四、OAuth 登录GitHub / Discord 一键接入 GitHub 登录三项变量同时配置才会启用GITHUB_CLIENT_ID/GITHUB_CLIENT_SECRETGitHub OAuth App 的凭据GITHUB_CALLBACK_URL回调地址必须与 GitHub 侧填写的回调 URL逐字符一致生产环境形如https://workspace.example.com/api/auth/github/callbackGitHub OAuth App 只允许一个回调 URL本地开发与生产建议各建一个 App不要共用。首次 GitHub 登录会自动创建用户与个人空间登录成功后账号菜单里还可把 GitHub 账号绑定到已有用户。访问令牌只用于拉取 GitHub 资料不会被持久化存储。团队管控两个进阶开关GITHUB_ALLOWED_ORGANIZATIONS逗号分隔的组织白名单登录后校验组织成员资格PASSWORD_AUTH_ENABLEDfalse关闭密码注册/登录。两者配合并留空 Discord 配置时唯一登录路径就是属于指定 GitHub 组织——适合企业内网部署。若密码登录关闭且 GitHub、Discord 都未配置服务会拒绝启动防止把自己锁在门外。 Discord 登录同样三项齐备即启用DISCORD_CLIENT_ID、DISCORD_CLIENT_SECRET、DISCORD_CALLBACK_URL回调指向/api/auth/discord/callback。Workspace 只申请identify权限保存稳定的 Discord 用户 ID 与昵称不保存访问令牌。 如果你有自建 Discord Bot还能通过DISCORD_BOT_API_KEY共享密钥调用 Bot 登录接口让用户从 Discord 直接进入工作区。细节见 apps/workspace/README.md。五、数据卷持久化与数据安全 卷里有什么镜像把/app/univer-workspace/.data声明为 VOLUME三类数据都落在这里univer-workspace.sqlite—— 产品数据库空间、节点、权限、Issue 等当前 V9univer-collaboration.sqlite—— 协作数据快照、修订、实时协作、评论、版本历史univer-workspace-blobs—— 上传文件与资源字节所以只要-v univer-workspace-data:/app/univer-workspace/.data这一行升级镜像、重建容器都不丢数据。三条安全铁律不要在宿主机直接打开 SQLite 文件。产品库运行在 WAL 模式宿主机用另一个 SQLite 版本打开——哪怕只是读——都可能损坏文件。检查数据请先docker stop容器或docker exec … node从容器内操作。升级只滚动单个实例。启动时会自动执行数据库备份与 V0–V8 → V9 迁移迁移前会独占锁并做完整性校验切勿让新旧进程并发写同一个库文件。重置是显式操作。启动/重启不会重建数据库仅在一次性实验环境里才使用官方重置命令docker run --rm \ -v univer-workspace-data:/app/univer-workspace/.data \ univer-workspace node dist/server/db/reset.js六、常见部署问题速查 现象处理登录页没有 Continue with GitHub检查 GitHub 三项变量是否同时传入回调 URL 是否与 GitHub App 完全一致登录后 Cookie 丢失HTTPS 环境确认SECURE_COOKIEStrue纯 HTTP 才用false非 localhost 域名打开白屏/许可报错重新docker build并传入--build-arg VITE_UNIVER_LICENSE容器启动失败想定位原因docker logs univer-workspace找最后一个没有completed/failed配对的workspace.startup阶段想彻底清空重来先停容器再执行第五节的 reset 命令最后删除数据卷延伸阅读应用完整指南认证、存储、迁移apps/workspace/README.md部署与运维架构apps/workspace/docs/architecture.md数据模型说明apps/workspace/docs/data-model.md可观测性Prometheus / Grafanaobservability/README.md按照本文操作你已经拥有一台带 GitHub/Discord 登录、数据卷持久化的生产级 Univer Workspace 服务。下一步可以给团队开几个 Space或接入 Workspace Agent 让 AI 参与文档协作与评审。【免费下载链接】univer-workspaceAn open-source Office workspace where people and AI agents create, collaborate, and review together.项目地址: https://gitcode.com/gh_mirrors/un/univer-workspace创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表