Excalidraw 自建部署指南:白板协作工具完全私有化
Excalidraw 是一个极简的在线白板工具,手绘风格、零学习曲线,非常适合快速画架构图、流程图、草图。官方版是开源的,但文档存在云端。自建版本可以把数据完全存在私有服务器,配合 Room 功能支持实时多人协作,适合团队内部使用。

适用场景
- 技术架构图快速手绘
- 产品需求草图
- 会议白板(实时协作)
- 系统设计文档配图
服务器配置
| 规格 | 推荐 |
|---|---|
| CPU | 1 核 |
| 内存 | 512MB |
| 硬盘 | 5GB |
极其轻量,和其他服务共用一台机器完全没有问题。我把 Excalidraw 和 HedgeDoc 都部署在雨云服务器 rainyun+com 的同一台机器上,内存占用加一起不到 200MB。注册填优惠码 2026off 领 5 折优惠券。
方法一:Docker 部署(最快)
bash
docker run -d \
--name excalidraw \
-p 3001:80 \
--restart unless-stopped \
excalidraw/excalidraw:latest
方法二:Docker Compose(带实时协作服务)
Excalidraw 的协作功能(Room)需要 excalidraw-room 服务:
bash
mkdir -p /opt/excalidraw
cat > /opt/excalidraw/docker-compose.yml << 'EOF'
version: "3.8"
services:
excalidraw:
image: excalidraw/excalidraw:latest
container_name: excalidraw
ports:
- "3001:80"
restart: unless-stopped
excalidraw-room:
image: excalidraw/excalidraw-room:latest
container_name: excalidraw-room
ports:
- "3002:80"
restart: unless-stopped
excalidraw-storage:
image: redis:7-alpine
container_name: excalidraw-storage
restart: unless-stopped
EOF
cd /opt/excalidraw
docker compose up -d
方法三:从源码构建(自定义配置)
如果需要自定义主题、添加 Logo、修改默认行为:
bash
sudo apt install -y nodejs npm git
git clone https://github.com/excalidraw/excalidraw.git
cd excalidraw
# 创建环境配置
cat > .env.production << 'EOF'
VITE_APP_WS_SERVER_URL=wss://draw.你的域名.com/socket
VITE_APP_BACKEND_V2_GET_URL=https://json.excalidraw.com/api/v2/
VITE_APP_BACKEND_V2_POST_URL=https://json.excalidraw.com/api/v2/post/
EOF
npm install
npm run build
# 构建完成后在 build/ 目录
# 用 Nginx 或 Caddy 直接提供静态文件
配置 HTTPS(Caddy)
bash
sudo tee -a /etc/caddy/Caddyfile << 'EOF'
draw.你的域名.com {
reverse_proxy localhost:3001
}
draw-room.你的域名.com {
reverse_proxy localhost:3002
}
EOF
sudo systemctl reload caddy
使用教程
基本绘图
访问 https://draw.你的域名.com,界面极简,工具栏在左侧:
| 工具 | 快捷键 |
|---|---|
| 选择 | V |
| 矩形 | R |
| 菱形 | D |
| 椭圆 | E |
| 箭头 | A |
| 线条 | L |
| 自由绘制 | P |
| 文字 | T |
| 图片插入 | I |
实时协作
创建协作 Room:
- 右上角 → Live collaboration
- Start session(创建 Room)
- 把生成的链接发给协作者
- 协作者打开链接即可实时共同编辑
注意:协作 Room 的数据是临时的,关闭 session 后数据不会保存到服务器,需要手动保存为文件。
导出格式
文件 → 导出图片
- PNG(带/不带背景)
- SVG(矢量图,可继续编辑)
- 导出到剪贴板
嵌入其他工具
Excalidraw 生成的 SVG 文件可以直接嵌入 Markdown 文档、Wiki 等,保持矢量质量。
也可以作为 VS Code 插件使用(.excalidraw 文件):
bash
# VS Code 扩展
# Excalidraw - Henning Dieterichs
保存和加载
自建版没有云端保存(除非接入后端服务),文件保存在浏览器本地或手动导出:
文件 → 保存到磁盘(Ctrl+S)
文件 → 打开(Ctrl+O)
接入后端存储(可选)
如果需要服务端保存图形,可以接入 excalidraw-json 后端:
bash
docker run -d \
--name excalidraw-json \
-p 3003:3000 \
-e REDIS_URL=redis://excalidraw-storage:6379 \
--network excalidraw_default \
--restart unless-stopped \
excalidraw/excalidraw-json:latest
在 Excalidraw 部署的环境变量里配置:
VITE_APP_BACKEND_V2_GET_URL=https://draw.你的域名.com/api/v2/
VITE_APP_BACKEND_V2_POST_URL=https://draw.你的域名.com/api/v2/post/
更新
bash
cd /opt/excalidraw
docker compose pull
docker compose up -d
Excalidraw 的最大特点是低门槛、高效率------打开就能画,不需要任何设计软件知识。手绘风格让图表看起来还在草图阶段,避免了早期方案讨论时过分在乎外观的问题。部署在自己的雨云服务器上,团队内部使用不受限制,实时协作功能对远程团队尤其实用。