【Docker项目实战】使用Docker部署ExcaliDash绘图工具

举报
江湖有缘 发表于 2025/12/24 17:51:49 2025/12/24
【摘要】 【Docker项目实战】使用Docker部署ExcaliDash绘图工具

一、ExcaliDash介绍

1.1 ExcaliDash简介

ExcaliDash 是一个自托管的 Excalidraw 仪表盘与组织工具,支持实时协作、持久化存储和便捷管理您的所有绘图。

1.2 ExcaliDash主要特点

  • 持久化存储:自动保存所有绘图,确保数据不会丢失。
  • 实时协作:多人可同时编辑同一幅绘图,体验类似 Google Docs 的协同操作。
  • 绘图搜索功能:快速通过关键词查找您保存的任意绘图。
  • 集合管理:通过拖放将绘图归类到不同集合,轻松整理内容。
  • 导入/导出支持:支持一键备份或迁移您的绘图与数据库,便于数据管理。

1.3 注意事项

  • 仅限测试使用:当前版本未达到生产级安全标准,切勿公开暴露服务端口。
  • 安全防护有限:虽已实施基础防护(如 XSS 过滤、CORS、速率限制等),但缺少 CSRF 防护,存在潜在风险。
  • 需定期手动备份:建议通过 cron 等工具定期备份数据,防止意外丢失。

二、本次实践规划

2.1 本地环境规划

本次实践为个人测试环境,操作系统版本为 Ubuntu 24.04.2 LTS。

hostname IP地址 操作系统版本 Docker版本 部署项目 备注
jeven 192.168.3.88 Ubuntu 24.04.2 LTS 28.5.0 ExcaliDash ——

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署ExcaliDash个人仪表盘工具。

三、本地环境检查

3.1 检查Docker服务状态

检查Docker服务是否正常运行,确保Docker正常运行。

root@jeven:~# systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
     Active: active (running) since Tue 2025-12-02 00:51:31 CST; 1min 11s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 75393 (dockerd)
      Tasks: 32
     Memory: 34.1M (peak: 34.8M)
        CPU: 1.248s
     CGroup: /system.slice/docker.service

在这里插入图片描述

3.2 检查Docker版本

检查Docker版本

root@jeven:~# docker -v
Docker version 28.5.0, build 887030f

3.3 检查docker compose 版本

检查Docker compose版本,确保2.0以上版本。

root@jeven:~# docker compose version
Docker Compose version v2.39.4

四、拉取ExcaliDash镜像

下载ExcaliDash镜像,镜像名称为:zimengxiong/excalidash-backend:latestzimengxiong/excalidash-frontend:latest

docker pull zimengxiong/excalidash-backend:latest
docker pull zimengxiong/excalidash-frontend:latest

在这里插入图片描述

五、部署ExcaliDash服务

5.1 创建部署目录

  • 创建部署目录
mkdir -p /data/excalidash/data && cd  /data/excalidash

5.2 docker compose方式部署

新建及编辑docker-compose.yaml文件,宿主机映射端口可自行设置,注意防止端口冲突。

vim docker-compose.yaml
services:
  backend:
    image: zimengxiong/excalidash-backend:latest
    container_name: excalidash-backend
    restart: always
    volumes:
      - ./data:/app/prisma
    environment:
      - DATABASE_URL=file:/app/prisma/dev.db
      - PORT=8000
      - NODE_ENV=production
    healthcheck:
      test:
        [
          "CMD",
          "node",
          "-e",
          "require('http').get('http://localhost:8000/health', (r) => process.exit(r.statusCode === 200 ? 0 : 1))",
        ]
      interval: 30s
      timeout: 10s
      retries: 3

  frontend:
    image: zimengxiong/excalidash-frontend:latest
    container_name: excalidash-frontend
    restart: always
    ports:
      - "5600:80"
    environment:
      - VITE_API_URL=/api
    depends_on:
      - backend
    healthcheck:
      test:
        [
          "CMD",
          "wget",
          "--quiet",
          "--tries=1",
          "--spider",
          "http://localhost:80",
        ]
      interval: 30s
      timeout: 10s
      retries: 3


5.3 创建ExcaliDash容器

执行以下命令,创建ExcaliDash容器。

docker compose up -d

在这里插入图片描述

5.4 查看ExcaliDash容器状态

检查ExcaliDash容器运行状态,确保ExcaliDash容器正常启动。

root@jeven:/data/excalidash# docker compose ps
NAME                  IMAGE                                    COMMAND                   SERVICE    CREATED          STATUS        PORTS
excalidash-backend    zimengxiong/excalidash-backend:latest    "./docker-entrypoint…"   backend    31 seconds ago   Up 31 seconds (healthy)       8000/tcp
excalidash-frontend   zimengxiong/excalidash-frontend:latest   "/docker-entrypoint.…"   frontend   31 seconds ago   Up 31 seconds (health: starting)   0.0.0.0:5600->80/tcp, [::]:5600->80/tcp

5.5 检查ExcaliDash容器日志

检查容器运行日志,确保ExcaliDash服务正常运行。

docker compose logs

在这里插入图片描述

六、访问ExcaliDash服务

6.1 访问ExcaliDash首页

浏览器地址: http://<个人的服务器IP>:5600,访问ExcaliDash初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。

在这里插入图片描述

6.2 新建画板

  • 点击“新建画板”即可开始自由绘图

在这里插入图片描述

在这里插入图片描述

七、总结

本次实践成功通过 Docker 部署了 ExcaliDash 绘图工具,验证了其基于容器化部署的便捷性与高效性。通过 docker compose 编排服务,快速完成了环境搭建与服务启动。ExcaliDash 提供了直观的绘图界面和基础协作功能,适合个人或小团队本地使用。需要注意的是,当前版本仍处于测试阶段,应避免在生产环境中公开暴露,并定期做好数据备份。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。