Excalidraw 自建部署指南:白板协作工具完全私有化
Excalidraw 是一个极简的在线白板工具,手绘风格、零学习曲线,非常适合快速画架构图、流程图、草图。官方版是开源的,但文档存在云端。自建版本可以把数据完全存在私有服务器,配合 Room 功能支持实时多人协作,适合团队内部使用。
适用场景
- 技术架构图快速手绘
- 产品需求草图
- 会议白板(实时协作)
- 系统设计文档配图
服务器配置
| 规格 | 推荐 |
|---|---|
| CPU | 1 核 |
| 内存 | 512MB |
| 硬盘 | 5GB |
极其轻量,和其他服务共用一台机器完全没有问题。我把 Excalidraw 和 HedgeDoc 都部署在雨云服务器 rainyun+com的同一台机器上,内存占用加一起不到 200MB。注册填优惠码2026off领 5 折优惠券。
方法一:Docker 部署(最快)
dockerrun-d\--nameexcalidraw\-p3001:80\--restartunless-stopped\excalidraw/excalidraw:latest方法二:Docker Compose(带实时协作服务)
Excalidraw 的协作功能(Room)需要excalidraw-room服务:
mkdir-p/opt/excalidrawcat>/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 EOFcd/opt/excalidrawdockercompose up-d方法三:从源码构建(自定义配置)
如果需要自定义主题、添加 Logo、修改默认行为:
sudoaptinstall-ynodejsnpmgitgitclone https://github.com/excalidraw/excalidraw.gitcdexcalidraw# 创建环境配置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/ EOFnpminstallnpmrun build# 构建完成后在 build/ 目录# 用 Nginx 或 Caddy 直接提供静态文件配置 HTTPS(Caddy)
sudotee-a/etc/caddy/Caddyfile<<'EOF' draw.你的域名.com { reverse_proxy localhost:3001 } draw-room.你的域名.com { reverse_proxy localhost:3002 } EOFsudosystemctl 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文件):
# VS Code 扩展# Excalidraw - Henning Dieterichs保存和加载
自建版没有云端保存(除非接入后端服务),文件保存在浏览器本地或手动导出:
文件 → 保存到磁盘(Ctrl+S) 文件 → 打开(Ctrl+O)接入后端存储(可选)
如果需要服务端保存图形,可以接入excalidraw-json后端:
dockerrun-d\--nameexcalidraw-json\-p3003:3000\-eREDIS_URL=redis://excalidraw-storage:6379\--networkexcalidraw_default\--restartunless-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/更新
cd/opt/excalidrawdockercompose pulldockercompose up-dExcalidraw 的最大特点是低门槛、高效率——打开就能画,不需要任何设计软件知识。手绘风格让图表看起来还在草图阶段,避免了早期方案讨论时过分在乎外观的问题。部署在自己的雨云服务器上,团队内部使用不受限制,实时协作功能对远程团队尤其实用。