MENU

excalidraw画板 私有化部署(基于Docker,可协同)指南

• 2025 年 03 月 31 日 • 阅读: 81 • 软件分享

在线体验

立即体验 Excalidraw
image.png

已知问题

协同模式下后端数据异常提示,还请路过的大佬帮忙看看~
当前版本在协同状态下可能出现"无法保存到后端数据库..."警告,建议重要内容随时本地备份。
ddbe059bf825f44fddd2a78ea5447e9.png


部署架构

组件源码地址说明
核心应用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/excalidraw
git clone https://github.com/excalidraw/excalidraw-room
git clone https://github.com/alswl/excalidraw-storage-backend

建议使用Releases版本(发行版)确保稳定性
image.png


2. Docker Compose配置

image.png

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: redis

3. 启动服务

docker-compose up -d

4. 开始享用

浏览器访问:draw.oneszhang.com


指南中如果存在任何问题或优化点,或部署过程中如遇问题,欢迎各位佬在评论区交流讨论。