IDEATOX

ideatox.com 面向中文开发者与数字工作者,记录 AI 工具、在线工具、隐私边界与工程实践。

在自己的服务器上用 draw.io 画架构图

给自己的服务器装上 draw.io,绘制系统架构图。图片用于阅读,drawio 源文件留给以后修改。

文章目录

系统架构图最容易在交接时丢失源文件:文章里只剩一张 PNG,后来改一个服务名称就得重新画。draw.io 适合把结构图保存为可编辑文件,后续增删服务不用从头排版。

本文运行官方 Docker 镜像,用浏览器本地文件保存。VPS 提供编辑器页面,不会自动成为图纸文档管理库;要接入云盘或其他系统,需要另外配置对应集成。

运行 draw.io,使用本地文件保存

自建 draw.io 编辑器后,图纸怎么保存仍要单独安排。没有现成 VPS 时,可以从 雨云云服务器 查看服务器配置,先按编辑器用途部署,别把浏览器中的图纸当成已有服务器备份。 优惠码 KuZhuJi。如有消费返利,以购买页所选规格显示的金额为准。

以下命令在 Linux VPS 上执行,需要有 Docker 操作权限。先运行 docker version 和 docker compose version,确认引擎与 Compose v2 都能工作。没有安装 Docker 时,按 Docker 官方安装说明选择对应发行版;不要把其他发行版的仓库配置直接复制过来。

示例工作目录为 /opt/drawio,所有相对路径都以这个目录为基准。VPS_IP、SSH 用户和示例域名需要换成自己的值。端口 8085 若已被占用,只改映射左侧的宿主机端口,并同步修改访问地址。

sudo install -d -m 0750 -o "$(id -u)" -g "$(id -g)" /opt/drawio
cd /opt/drawio
umask 077

不额外挂载所谓“图纸数据目录”。本文使用 ?offline=1 模式关闭云存储支持,初次访问地址为 http://127.0.0.1:8085/?offline=1。正式对外部署时再设置自己的外部 URL 和 HTTPS,云盘 OAuth 不能直接沿用别人的客户端凭据。

将下面内容保存为 compose.yaml:

services:
  drawio:
    image: jgraph/drawio:latest
    restart: unless-stopped
    ports:
      - "127.0.0.1:8085:8080"

在工作目录启动并检查日志:

docker compose config --quiet
docker compose pull
docker compose up -d
docker compose ps
docker compose logs --tail=80

启动后按下面的步骤试用。遇到目录不可写的报错,先核对 UID 和挂载路径,不要直接改成 chmod 777。

用 SSH 隧道打开界面

示例仅把应用端口发布到 VPS 的 127.0.0.1。在自己的电脑上运行以下命令,保留终端窗口,再打开 http://127.0.0.1:8085:

ssh -N -L 8085:127.0.0.1:8085 your_ssh_user@VPS_IP

浏览器里的回环地址是自己的电脑,SSH 把请求转到 VPS。若本地同号端口被占用,可换隧道左侧端口;涉及应用外部 URL 的项目也要一起调整。管理界面无需因此开放公网端口。

画清楚网络边界,而不是堆满图标

进入编辑器后选择设备上的文件保存方式,先建立一张架构图:公网入口、反向代理、应用、数据库分别放在不同区域,箭头标注 HTTP、数据库连接与备份方向。数据库没有公网入口时不要给它画一条直接连互联网的箭头。

把源文件保存为 service-architecture.drawio,关闭后重新打开,尝试修改一个节点。然后再导出 SVG 或 PNG,确认中文字体、边界框和箭头没有被截断。用于文章的图片与用于维护的源文件分别保留。

把文件放进 Git 时可以看到版本变化,但 XML 的文本 diff 不一定等于容易阅读的图形差异。每次架构调整补一条简短说明,比只提交“update diagram”更容易交接。

当前 Docker 项目已停止维护旧的独立 export-server 镜像。不要为 PDF 导出照搬早期教程再启动一个无人维护的组件;先检查当前版本支持的导出方式。

恢复时要有源文件

编辑器容器可由 Compose 重建。备份自己的 .drawio 文件、字体约定以及必要的集成配置;保留图片只能恢复阅读效果,不能恢复原来的编辑能力。

升级镜像前记录摘要,用一张较复杂的旧图测试打开、保存和导出,再切换常用入口。若新版本布局变化,先从备份副本操作,避免把唯一源文件覆盖成无法兼容的格式。

安装参数和数据路径可对照draw.io Docker 项目说明。

继续阅读 · 自托管 返回顶部