一款支持多人实时协作的无限画布式思维整理工具,用于将零散的构想组织为清晰的结构。
MindMap 试图解决一个具体的问题:当想法还处于未成形的状态时,传统的树状大纲和固定结构的图表工具往往过早地施加了约束。它提供一张无边界画布,以节点卡片为基本单位,允许内容自由排布、分组、关联,并在整理过程中自然形成结构。适用于思路梳理、资料组织、项目规划,以及任何"先把想法倒出来,再慢慢理清关系"的场景。
- 无限画布:任意位置创建内容,支持滚轮缩放与拖拽平移;可选点状网格与网格对齐模式
- 节点卡片:承载文本、富文本或图片内容;背景色、边框、圆角、阴影等样式可自定义;支持折叠
- 组:将多个节点以矩形框体聚合,拖动时保持内部相对位置;支持嵌套与折叠
- 域:以半透明矩形在画布上划分工作区域(如"本周""待定"),可自定义底色与标题
- 连线:直线、曲线、折线三种形式,支持箭头、标签与样式调整,用于表达节点间关系
- 项目与文件夹:画布按项目组织,项目内以文件夹归类;项目栏展示画布缩略图
- 节点卡片池:将常用卡片保存为模板,按需拖入画布,样式与内容完整保留
- 全局搜索:支持模糊匹配与类型过滤,搜索范围覆盖当前画布、全部画布与节点卡片池,结果高亮
- 基于 CRDT 的多人实时编辑:多位协作者可同时操作同一画布,改动即时同步,无需加锁或等待
- 协作光标:实时显示其他成员的位置与操作意图
- 角色权限:owner / editor / viewer 三级,控制查看与编辑范围
- 内置 AI 对话面板,支持 Moonshot、DeepSeek、GLM、Gemini 及本地 Ollama 等模型
- AI 可读取画布内容,并直接执行节点创建、编辑、连线等操作
- API 密钥以加密形式存储于服务端,不经过浏览器或第三方服务
- 画布缩略图自动生成,便于在项目栏中快速识别
- 图片上传、画布导入导出、命令面板与快捷键支持
- 自托管部署,数据存储于本地 SQLite 单文件,备份与迁移成本低
# 环境要求: Node.js 20+
npm install
node start.js # 自动生成配置、初始化数据库并启动服务默认访问 http://localhost:9000。
亦可通过 Docker 部署:
docker run -p 9000:9000 \
-e JWT_SECRET=替换为自定义值 \
-e CSRF_SECRET=替换为自定义值 \
-e AI_KEY_SECRET=可选,建议设置 \
-v ./mindmap-data:/app/backend/data \
corvofiox/mindmap:latest- 数据为单文件 SQLite 数据库,挂载 volume 即可持久化
- 反向代理部署时需设置
TRUST_PROXY=true,否则速率限制可能按代理 IP 聚合误判;HTTPS 环境下需设置CSRF_COOKIE_SECURE=true - 完整环境变量说明见各配置文件的注释
(待补充:建议放置一张实际使用中的画布截图)
与 Notion、Miro、Xmind 等工具的区别? MindMap 并不旨在替代上述工具。其侧重点在于"先自由铺陈、再自然成构"的整理方式,以及数据的完全自主可控——无订阅费用,内容不经过第三方云端。适合对数据主权有要求的自托管用户。
多人协作是否需要公网环境? 不需要。局域网内即可协作;跨网络场景下,可由部署方自行决定暴露方式(反向代理、VPN、内网穿透等)。
是否支持移动端? 当前以桌面浏览器为主要使用场景,移动端可用但体验未做针对性优化。
npm run dev # 开发模式:前端 5173 + 后端 3000
npm run build # 生产构建
npm run test:run # 运行测试分支约定:develop 为日常开发分支,main 为稳定版本。欢迎通过 Pull Request 或 Issue 参与。
MIT(声明见 package.json)。