本文摘要
以 Docker Compose 私有化部署支持协同的 Excalidraw 白板,将主应用、实时协同服务和第三方存储后端分别映射端口,并通过子域名反向代理及环境变量接入存储与 WebSocket 服务后启动使用。作者提示协同状态下可能出现后端保存异常,建议重要内容随时本地备份。
在线体验
已知问题
协同模式下后端数据异常提示,还请路过的大佬帮忙看看~
当前版本在协同状态下可能出现”无法保存到后端数据库…”警告,建议重要内容随时本地备份。

部署架构
| 组件 | 源码地址 | 说明 |
|---|---|---|
| 核心应用 | excalidraw/excalidraw | 官方白板主程序 |
| 协同服务 | excalidraw/excalidraw-room | 实时协作模块 |
| 存储服务(第三方) | alswl/excalidraw-storage-backend | 数据持久化解决方案 |
部署准备
域名解析配置(本指南全程以oneszhang.com为例,改为你的域名即可~)
| 子域名 | 反向代理 | 说明 |
|---|---|---|
| draw.oneszhang.com | 本地12800端口 | 主应用访问入口 |
| draw-room.oneszhang.com | 本地12801端口 | 协同服务入口 |
| json.oneszhang.com | 本地12802端口 | 存储服务API入口 |
部署流程
1. 获取源代码
git clone示例:
git clone https://github.com/excalidraw/excalidrawgit clone https://github.com/excalidraw/excalidraw-roomgit clone https://github.com/alswl/excalidraw-storage-backend建议使用Releases版本(发行版)确保稳定性

2. Docker Compose配置
services: excalidraw: build: context: ./excalidraw args: - NODE_ENV=production container_name: excalidraw ports: - "12800:80" restart: on-failure environment: - NODE_ENV=production - VITE_APP_BACKEND_V2_GET_URL=https://json.oneszhang.com/api/v2/scenes/ - VITE_APP_BACKEND_V2_POST_URL=https://json.oneszhang.com/api/v2/scenes/ - VITE_APP_LIBRARY_URL=https://libraries.excalidraw.com - VITE_APP_LIBRARY_BACKEND=https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries - VITE_APP_AI_BACKEND=https://oss-ai.excalidraw.com - VITE_APP_WS_SERVER_URL=https://draw-room.oneszhang.com - VITE_HTTP_STORAGE_BACKEND_URL=https://json.oneszhang.com/api/v2/
volumes: - ./excalidraw:/opt/node_app/app:delegated - ./excalidraw/package.json:/opt/node_app/package.json - ./excalidraw/yarn.lock:/opt/node_app/yarn.lock - ./excalidraw/node_modules:/opt/node_app/app/node_modules
excalidraw-room: build: context: ./excalidraw-room container_name: excalidraw-room ports: - "12801:80" restart: on-failure environment: - NODE_ENV=production
excalidraw-storage-backend: build: context: ./excalidraw-storage-backend container_name: excalidraw-storage-backend ports: - "12802:8080" environment: STORAGE_URI: redis://redis:6379
redis: image: redis3. 启动服务
docker-compose up -d4. 开始享用
浏览器访问:draw.oneszhang.com
指南中如果存在任何问题或优化点,或部署过程中如遇问题,欢迎各位佬在评论区交流讨论。

