draw.io 介绍与选型指南

draw.io(diagrams.net)开源自托管图表与白板平台的联网溯源认知篇:项目定位、Apache 2.0 双层许可、无状态 Web 架构、功能特性与官方快速开始,附与 Excalidraw/Mermaid/PlantUML/tldraw/Lucidchart 的量化选型对比(全部结论基于 2026-10-22 官方源取证)。

draw.io图表绘制流程图2026/10/22

draw.io 介绍与选型指南

目标:本文是 draw.io(diagrams.net)的联网溯源认知篇,帮助读者在 10 分钟内建立对它的全景认识——它是谁、能画什么、怎么部署、与 Excalidraw / Mermaid / PlantUML 等同类方案相比强在哪里,并给出量化选型对比与选型建议。所有结论均来自官方站点、官方仓库与官方文档,逐条标注来源与查询日期(2026-10-22),本文不含本地实测结论;部署实操见 ,配置项实操见 ,命令工具实操见 。

一、环境信息

本文为 A1 认知溯源篇,与实操篇不同,以下信息均来自公开官方渠道的桌面调研,未在本地环境执行任何命令得出结论:

💡 说明:draw.io 的版本节奏非常密集。GitHub Releases 页显示 2026 年 10 月一个月内就连续发布了 v32.5.5(10-18)、v32.4.1(10-12)、v32.3.0(10-07)、v32.2.0(10-06)、v32.0.2(10-05)、v32.0.1(10-03)等多个稳定版(来源:GitHub Releases 页,查询日期 2026-10-22),官方容器镜像 jgraph/drawio 基本跟随每个 Release 推送对应 tag(来源:Docker Hub jgraph/drawio tags 列表,查询日期 2026-10-22)。选型时认准 Releases 页最新稳定版即可。

二、软件概述

2.1 项目定位

draw.io 的官方自述只有一句话,来自官方仓库 README(来源:GitHub 仓库 jgraph/drawio README「About」节,查询日期 2026-10-22):

"draw.io is a configurable diagramming and whiteboarding application, jointly owned and developed by draw.io Ltd (previously named JGraph) and draw.io AG. We also run a production deployment at https://app.diagrams.net."

拆解这段定位,可以看到四个关键属性:

  1. 图表 + 白板双形态:它既是传统的「画图工具」(流程图、架构图、UML、网络拓扑),也是白板(whiteboarding)应用——官方在 README 中明确以 "diagramming and whiteboarding application" 自称;
  2. 可配置(configurable):编辑器行为可以通过配置对象(DRAWIO_CONFIG)深度定制,这在自托管场景尤其重要,详见 ;
  3. 双公司共同维护:由 draw.io Ltd(前身 JGraph)与 draw.io AG 两家公司共同拥有和开发,官方明确「不接受 Pull Request,项目完全由核心团队开发」(README「Contributions」节:'We do not accept pull requests. The project is developed entirely by the core team.');
  4. 同一引擎多形态交付:官方自己运营 app.diagrams.net 生产站点,同时提供浏览器版(Docker 自托管)、桌面版(get.diagrams.net 下载)与集成版(如 Nextcloud 内嵌)。

关于商标,官方 README「Trademark」节特别声明:draw.io 是注册欧盟商标(#018062448),不得以暗示官方背书的方式使用其名称与 Logo(来源:官方仓库 README,查询日期 2026-10-22)。

2.2 许可与商业模式

draw.io 的许可结构有两层,选型前必须分清(来源:GitHub 仓库 README「License」「Scope」节,查询日期 2026-10-22):

  1. 编辑器源码:Apache License 2.0。官方仓库中的源代码以 Apache 2.0 开源,仓库内附带的第三方 JavaScript 库也均与 Apache 2.0 兼容(官方声明「no GPL or AGPL」);
  2. 图标与图形库:Apache 2.0 + 附加限制。内置的图标集(icon sets)与模板库(stencil libraries)附加了一条限制:这些图标及其衍生品不得作为软件资产用于 Atlassian 产品或其应用市场生态,除非获得书面许可;这条限制不适用于用户画出的图(导出的图片/文档不受影响);
  3. 用户画的图不设版权主张:官方明确「We make no copyright claim on diagrams you create with this software」——自托管部署中用户图表内容的版权完全归用户;
  4. 商业版本并存:官方 README 将 GitHub 仓库定位为「test version of draw.io, for evaluating draw.io and trying it out」,同时说明「A paid production version is available for production deployments」——即存在付费的生产版本产品线,自托管评估与内部使用走开源仓库完全可行,需要官方支持的企业可选购商业版。

⚠️ 注意:官方容器打包仓库 jgraph/docker-drawio 自身的许可为 GNU General Public License v3(来源:docker-drawio 仓库 README「License」节,查询日期 2026-10-22),与编辑器源码的 Apache 2.0 是两回事。使用官方镜像部署不改变编辑器软件 Apache 2.0 的使用范围,但若二次分发该打包工程本身,需遵守 GPL-3.0。

三、核心架构

draw.io 是「编辑器在浏览器、存储在别处」的纯 Web 架构,理解这一点对部署选型至关重要(来源:官方仓库 README 与 docker-drawio 仓库 README,查询日期 2026-10-22):

层组成说明
编辑器层mxGraph 引擎 + 编辑器 JS(随 Release 打包为 .war)全部绘图、渲染、导出(PNG/JPEG/SVG)都在浏览器端完成
服务层Tomcat 承载的静态 Web 应用官方镜像基于 Tomcat 9(docker-drawio README:tomcat:9.0-jdk11-temurin 基座),HTTP 8080 / HTTPS 8443,本质上是一个「无状态静态站点」
存储层浏览器本地 + 外部网盘图表默认存浏览器本地存储;可接入 Google Drive / OneDrive / GitLab(OAuth 凭据由服务端配置注入)
配置层DRAWIO_* 环境变量启动时由 docker-entrypoint.sh 渲染为 PreConfig.js / PostConfig.js 注入编辑器

三个由此衍生的架构事实(均直接来自官方文档表述):

  1. 服务端近乎无状态:官方部署文档的编排里没有数据库服务,图表数据不落服务器——这让 draw.io 的自托管部署在所有同类中几乎是最轻的(单服务、无数据库、无持久卷);
  2. 导出在浏览器端:当前版本镜像不再内置导出服务——docker-drawio README「Removed variables」节明确:EXPORT_URL 与 DRAWIO_SELF_CONTAINED 已失效,官方导出服务镜像 jgraph/export-server 已停止构建(end of life),PNG/JPEG/SVG 由浏览器渲染导出,「Export as PDF」走浏览器打印(查询日期 2026-10-22);
  3. 无实时协作:官方 README「Scope」节原文 'Note that draw.io does not support real-time collaborative editing in this version, currently.'——自托管版当前不支持实时协同编辑,需要协同的团队要靠「传文件」或外部存储流转。

四、功能特性

以下特性清单全部来自官方仓库 README、官方文档站(www.drawio.com)与官方容器 README 的表述(来源与查询日期同上):

  • 多形态交付:Web(自托管/官方托管)、桌面(Windows/macOS/Linux,get.diagrams.net 下载)、集成(Nextcloud 内嵌编排由官方 docker-drawio 仓库直接提供);
  • 图表类型:流程图、UML、架构图、网络拓扑、线框、白板涂鸦等(官方定位为 diagramming + whiteboarding;内置图标集与模板库随编辑器发布);
  • 公式渲染:编辑器内置 MathJax 数学公式支持(镜像内 DRAW_MATH_URL = 'math4/es5',来源:docker-entrypoint.sh 生成代码,查询日期 2026-10-22);
  • 外部存储集成:Google Drive(DRAWIO_GOOGLE_CLIENT_ID 等)、Microsoft OneDrive(DRAWIO_MSGRAPH_CLIENT_ID 等)、GitLab(DRAWIO_GITLAB_ID 等)三类官方支持,凭据未配置时对应集成自动禁用;
  • AI 生成图表:编辑器配置支持 enableAi、gptApiKey、claudeApiKey、geminiApiKey、aiModels 等项接入 LLM 生成图表(来源:docker-drawio README「Enabling AI diagram generation」节;注意这些是编辑器配置项而非独立环境变量,且需自备 API Key);
  • 编辑器深度定制:DRAWIO_CONFIG 一个 JSON 对象可配置默认字体、自定义字体(含 Web 字体)、界面行为等(官方 FAQ「configure-diagram-editor」文档);
  • HTTPS 开箱即用:镜像启动时自动生成自签名证书(有效期 3600 天),也可配置 Let's Encrypt 自动签发;
  • 离线安全模式:URL 参数 ?offline=1 禁用全部云存储支持(官方 docker README 称之为 security feature)——内网部署的常用姿态。

浏览器兼容矩阵(来源:官方仓库 README「Supported Browsers」节,查询日期 2026-10-22):Chrome 123+、Firefox 120+、Safari 17.5+、Opera 109+、Edge 123+、WebView Android 137+、Safari iOS 18.5+。自托管部署面向内网老旧浏览器(如长期不升级的 Chrome ESR)时需对照此表评估。

五、快速开始(官方最小示例)

官方 README「Running」节给出三种运行方式(来源:GitHub 仓库 README,查询日期 2026-10-22):Fork 仓库发布到 GitHub Pages(无集成)、Docker 镜像、Releases 页的 .war 包。其中官方推荐的容器化最小示例来自官方容器仓库 README「Quick Start」节(查询日期 2026-10-22):

docker run -it --rm --name="draw" -p 8080:8080 -p 8443:8443 jgraph/drawio

启动后浏览器访问:

  • HTTP:http://localhost:8080/?offline=1
  • HTTPS(自签证书):https://localhost:8443/?offline=1

?offline=1 参数禁用云存储支持,是官方建议的安全用法。生产部署(数据卷、环境变量、反向代理、升级回滚)的完整实操见 。

💡 技术拓展:容器化部署方案不止官方镜像一种。官方 jgraph/drawio 镜像从 fjudith/docker-draw.io 分叉而来(来源:docker-drawio README「Forked from fjudith/draw.io」,查询日期 2026-10-22);社区还有将 draw.io Desktop 无头化用于批量导出的第三方镜像(如 rlespinasse/drawio-export,面向 CI 场景的 .drawio 文件批量转 PNG/PDF)。选型原则:对外服务一律用官方 jgraph/drawio 镜像,第三方镜像只用于补官方不覆盖的工具链场景。

六、适用场景与限制

适用场景(基于官方定位与架构事实的归纳):

  1. 内网架构图/流程图标准工具:运维与研发团队自托管一套,替代 draw.io 官方站或线下安装,图表存本地/内网 GitLab;
  2. 隐私敏感环境的绘图平台:纯浏览器端渲染 + 图表不落服务器的架构,天然适合对数据出域敏感的团队;
  3. 文档工程配套:.drawio(XML)文件可纳入 Git 版本管理,配合 GitLab 集成或第三方导出工具进入文档流水线(如 Confluence 场景的 Atlassian 限制见下节 ⚠️);
  4. Nextcloud 协作套件补全:官方直接提供 draw.io 内嵌 Nextcloud 的编排,网盘用户可无缝获得绘图能力。

限制与注意点(每条均来自官方原文,查询日期 2026-10-22):

  • 无实时协作:官方 README 明确当前版本不支持实时协同编辑('does not support real-time collaborative editing in this version, currently')——需要多人同时编辑同一张图应考虑 Excalidraw 等方案;
  • 不是 SVG 编辑器:官方 Scope 节原文 'It is not an SVG editor. SVG export is intended for embedding in web pages, not for editing in other tools.'——SVG 导出定位是网页嵌入;
  • 图标/模板的 Atlassian 限制:内置图标集与模板库不得用于 Atlassian 产品生态(详见 2.2 节);
  • 不接受社区 PR:功能演进完全由核心团队驱动,社区只能提 Issue;
  • 官方镜像定位为评估版:docker-drawio README 自述其为 test version,付费生产版是另一条产品线;
  • 导出服务已移除:jgraph/export-server 已 EOL,服务端渲染导出(含 PDF 直出)不再是官方镜像能力,批量导出需走桌面版 CLI 或第三方无头方案。

七、同类选型对比

7.1 社区活跃度量化对比

GitHub 星数统一取自 shields.io 徽章 JSON 接口(https://img.shields.io/github/stars/<owner>/<repo>.json,查询日期 2026-10-22;按任务规范未直连 api.github.com):

项目GitHub 星数(2026-10-22)许可(shields.io 许可徽章,同日)
draw.io(jgraph/drawio)8.9kApache-2.0
Excalidraw(excalidraw/excalidraw)134kMIT
Mermaid(mermaid-js/mermaid)91kMIT
tldraw(tldraw/tldraw)51kshields.io 返回 "not identifiable by github"(自定义许可,未按 SPDX 识别)
PlantUML(plantuml/plantuml)13kLGPL-3.0

💡 说明:星数反映的是「生态热度」而非「你该用谁」——Excalidraw/Mermaid 星数远高于 draw.io,主要因为二者分别是现象级白板与 Markdown 生态标配 DSL,使用面更宽;draw.io 星数偏低但功能纵深(图表类型、模板库、企业图表)更强。星数只作活跃度参考,不作优劣判据。

7.2 全面对比表

维度draw.io / diagrams.netExcalidrawMermaidPlantUMLLucidchart
定位通用图表 + 白板(架构图/流程图/UML 纵深最强)手绘风白板/草图文本 DSL 生成图表文本 DSL 生成 UML 系图表商业在线图表 SaaS
形态Web 自托管 / 桌面 / Nextcloud 集成Web 自托管 / VS Code 插件JS 库(嵌入 Markdown/文档站)Java 工具 + 服务端渲染仅 SaaS(无自托管)
开源许可Apache-2.0(源码)MITMITLGPL-3.0闭源
GitHub 星数(2026-10-22)8.9k134k91k13k—(闭源仓库)
图的存储格式.drawio(XML,Git 友好).excalidraw(JSON).mmd 文本.puml 文本云端(导出为主)
自托管复杂度极低:单服务、无数据库、无持久卷低:单服务无服务(库/前端渲染)中:需 Java 运行时或渲染服务不适用
实时协作不支持(官方 README 明示,2026-10-22 口径)支持(共享房间机制)不适用(文档内渲染)不适用支持(SaaS)
上手方式拖拽图形库,可视化编辑拖拽/快捷键自由绘制写文本 DSL写文本 DSL拖拽(在线)
典型场景企业架构图、网络拓扑、UML、运维图头脑风暴、快速草图README/文档内嵌图代码化 UML、文档流水线企业付费统一绘图

7.3 选型建议

  • 要「画正式的图」(架构评审图、网络拓扑、UML、含模板库的企业图表)→ draw.io:图形库与模板纵深是同类中最强的,且自托管成本几乎为零;
  • 要「多人一起涂」(头脑风暴、会议白板、实时协同)→ Excalidraw:draw.io 自托管版无实时协作,这是硬差异;
  • 要「图随文档走」(README、博客、文档站内嵌,图即代码)→ Mermaid / PlantUML:文本 DSL 天然 Git 友好、可评审可 diff;draw.io 的 .drawio XML 虽也能进 Git,但评审体验不如文本 DSL;
  • 要「企业统一采购+在线协同」且接受 SaaS → Lucidchart:闭源商业产品,无自托管路径,数据合规敏感团队慎选;
  • 混合策略(实践常见):draw.io 承担正式图表资产,Mermaid 承担文档内嵌小图——两者文件格式互不冲突。

八、参考链接