Excalidraw 自建部署指南:白板协作工具完全私有化

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:

  1. 右上角 → Live collaboration
  2. Start session(创建 Room)
  3. 把生成的链接发给协作者
  4. 协作者打开链接即可实时共同编辑

注意:协作 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 的最大特点是低门槛、高效率------打开就能画,不需要任何设计软件知识。手绘风格让图表看起来还在草图阶段,避免了早期方案讨论时过分在乎外观的问题。部署在自己的雨云服务器上,团队内部使用不受限制,实时协作功能对远程团队尤其实用。

相关推荐
运维行者_1 小时前
Applications Manager中的Redis监控
大数据·服务器·数据库·人工智能·网络协议
悦数图数据库4 小时前
图数据库选型指南 2026:从架构、性能、AI 适配三个维度看 悦数科技
数据库·人工智能·架构
祁白_4 小时前
[0xV01D]_Night Traffic_writeUp
网络·安全·ctf·writeup
xingyuzhisuan4 小时前
网络 Token 常见故障原理,基础排查科普
运维·服务器·网络·php
wljy15 小时前
二、进制状态转换
linux·运维·服务器·c语言·c++
handler015 小时前
【MySQL】常用命令总结(库与表增删查改)
运维·数据库·mysql·命令·总结
week@eight5 小时前
Linux - Doris
linux·运维·数据库·mysql
学习3人组6 小时前
企业交换机OSPF路由协议配置与防护
网络
浮生若城6 小时前
Linux——Ext系列文件系统
linux·运维·服务器