draw.io 介绍与选型指南
draw.io(diagrams.net)开源自托管图表与白板平台的联网溯源认知篇:项目定位、Apache 2.0 双层许可、无状态 Web 架构、功能特性与官方快速开始,附与 Excalidraw/Mermaid/PlantUML/tldraw/Lucidchart 的量化选型对比(全部结论基于 2026-10-22 官方源取证)。
draw.io 介绍与选型指南
目标:本文是 draw.io(diagrams.net)的联网溯源认知篇,帮助读者在 10 分钟内建立对它的全景认识——它是谁、能画什么、怎么部署、与 Excalidraw / Mermaid / PlantUML 等同类方案相比强在哪里,并给出量化选型对比与选型建议。所有结论均来自官方站点、官方仓库与官方文档,逐条标注来源与查询日期(2026-10-22),本文不含本地实测结论;部署实操见 ,配置项实操见 ,命令工具实操见 。
一、环境信息
本文为 A1 认知溯源篇,与实操篇不同,以下信息均来自公开官方渠道的桌面调研,未在本地环境执行任何命令得出结论:
- 调研对象:draw.io(也以 diagrams.net 域名运营,两者为同一产品的不同入口)
- 官方站点:https://www.drawio.com(文档与产品信息)、https://app.diagrams.net(官方托管的生产部署)
- 官方仓库:https://github.com/jgraph/drawio(编辑器源码)、https://github.com/jgraph/docker-drawio(官方容器化打包)
- 最新稳定版:v32.5.5(2026-10-18 发布;来源:GitHub Releases 页 https://github.com/jgraph/drawio/releases,查询日期 2026-10-22)
- 社区星数:8.9k(来源:shields.io 星数徽章
https://img.shields.io/github/stars/jgraph/drawio.json,返回"message":"8.9k",查询日期 2026-10-22) - 开源许可:Apache License 2.0(来源:官方仓库 README「License」节与仓库 LICENSE 文件,查询日期 2026-10-22)
- 溯源查询日期:2026-10-22(下文所有来源标注均为此日期,不再重复)
💡 说明: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 Hubjgraph/drawiotags 列表,查询日期 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."
拆解这段定位,可以看到四个关键属性:
- 图表 + 白板双形态:它既是传统的「画图工具」(流程图、架构图、UML、网络拓扑),也是白板(whiteboarding)应用——官方在 README 中明确以 "diagramming and whiteboarding application" 自称;
- 可配置(configurable):编辑器行为可以通过配置对象(
DRAWIO_CONFIG)深度定制,这在自托管场景尤其重要,详见 ; - 双公司共同维护:由 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.');
- 同一引擎多形态交付:官方自己运营 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):
- 编辑器源码:Apache License 2.0。官方仓库中的源代码以 Apache 2.0 开源,仓库内附带的第三方 JavaScript 库也均与 Apache 2.0 兼容(官方声明「no GPL or AGPL」);
- 图标与图形库:Apache 2.0 + 附加限制。内置的图标集(icon sets)与模板库(stencil libraries)附加了一条限制:这些图标及其衍生品不得作为软件资产用于 Atlassian 产品或其应用市场生态,除非获得书面许可;这条限制不适用于用户画出的图(导出的图片/文档不受影响);
- 用户画的图不设版权主张:官方明确「We make no copyright claim on diagrams you create with this software」——自托管部署中用户图表内容的版权完全归用户;
- 商业版本并存:官方 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 注入编辑器 |
三个由此衍生的架构事实(均直接来自官方文档表述):
- 服务端近乎无状态:官方部署文档的编排里没有数据库服务,图表数据不落服务器——这让 draw.io 的自托管部署在所有同类中几乎是最轻的(单服务、无数据库、无持久卷);
- 导出在浏览器端:当前版本镜像不再内置导出服务——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);
- 无实时协作:官方 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 镜像,第三方镜像只用于补官方不覆盖的工具链场景。
六、适用场景与限制
适用场景(基于官方定位与架构事实的归纳):
- 内网架构图/流程图标准工具:运维与研发团队自托管一套,替代 draw.io 官方站或线下安装,图表存本地/内网 GitLab;
- 隐私敏感环境的绘图平台:纯浏览器端渲染 + 图表不落服务器的架构,天然适合对数据出域敏感的团队;
- 文档工程配套:.drawio(XML)文件可纳入 Git 版本管理,配合 GitLab 集成或第三方导出工具进入文档流水线(如 Confluence 场景的 Atlassian 限制见下节 ⚠️);
- 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.9k | Apache-2.0 |
| Excalidraw(excalidraw/excalidraw) | 134k | MIT |
| Mermaid(mermaid-js/mermaid) | 91k | MIT |
| tldraw(tldraw/tldraw) | 51k | shields.io 返回 "not identifiable by github"(自定义许可,未按 SPDX 识别) |
| PlantUML(plantuml/plantuml) | 13k | LGPL-3.0 |
💡 说明:星数反映的是「生态热度」而非「你该用谁」——Excalidraw/Mermaid 星数远高于 draw.io,主要因为二者分别是现象级白板与 Markdown 生态标配 DSL,使用面更宽;draw.io 星数偏低但功能纵深(图表类型、模板库、企业图表)更强。星数只作活跃度参考,不作优劣判据。
7.2 全面对比表
| 维度 | draw.io / diagrams.net | Excalidraw | Mermaid | PlantUML | Lucidchart |
|---|---|---|---|---|---|
| 定位 | 通用图表 + 白板(架构图/流程图/UML 纵深最强) | 手绘风白板/草图 | 文本 DSL 生成图表 | 文本 DSL 生成 UML 系图表 | 商业在线图表 SaaS |
| 形态 | Web 自托管 / 桌面 / Nextcloud 集成 | Web 自托管 / VS Code 插件 | JS 库(嵌入 Markdown/文档站) | Java 工具 + 服务端渲染 | 仅 SaaS(无自托管) |
| 开源许可 | Apache-2.0(源码) | MIT | MIT | LGPL-3.0 | 闭源 |
| GitHub 星数(2026-10-22) | 8.9k | 134k | 91k | 13k | —(闭源仓库) |
| 图的存储格式 | .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 承担文档内嵌小图——两者文件格式互不冲突。
八、参考链接
- 官方站点(文档):https://www.drawio.com
- 官方在线版:https://app.diagrams.net
- 桌面版下载:https://get.diagrams.net
- 编辑器源码仓库:https://github.com/jgraph/drawio(Releases:https://github.com/jgraph/drawio/releases)
- 官方容器仓库:https://github.com/jgraph/docker-drawio
- 官方镜像:https://hub.docker.com/r/jgraph/drawio
- 编辑器配置官方 FAQ:https://www.drawio.com/doc/faq/configure-diagram-editor
- 星数/许可取证接口:https://img.shields.io/github/stars/jgraph/drawio.json(查询日期 2026-10-22)
- 本文配套实操篇:、、