{"repo":"TiiJeiJ8/Constella","free":true,"listed":false,"github":"https://github.com/TiiJeiJ8/Constella","clone":"git clone https://github.com/TiiJeiJ8/Constella.git","description":"A self-hosted real-time collaborative infinite canvas for structured thinking and visual knowledge creation.自托管实时协作无限画布，赋能结构化思考与可视化知识创作。","language":"Vue","stars":36,"topics":["electron","infinite-canvas","knowledge-management","open-source","real-time-collaboration","self-hosted","typescript","visual-thinking","vue","vue3"],"license":"MIT","category":"self-hosted-apps","readme_excerpt":"Constella 面向知识结构化与协作式思维外化的实时协作无限画布 中文 English 后端核心服务 用户指南 编辑器指南 插件开发 Contributing Security Code of Conduct 说明 [!IMPORTANT] ### 项目定位 - 本仓库是 Constella 的前端工程（Web + Electron），后端请使用 Constella CORE - Constella 关注“结构化思维表达”，而不是线性文档编辑 - 当前项目仍在持续迭代，欢迎通过 Issue 和 PR 参与改进 [!NOTE] - 从源码开发/构建需要 Node.js 环境 - 桌面发行版（installer / zip）已内置 Node.js 环境，终端用户无需额外安装 - 技术栈：Vue 3 + TypeScript + Vite + Electron + Yjs - 运行形态：Web 浏览器与 Electron 桌面端 - 协作能力：基于 CRDT（Yjs + y-websocket）实现多人实时同步 - 配置方式：首次启动后在首页输入后端地址，地址将持久化到本地 🧑‍💻 开发 快速开始 1. 开发者从源码运行时，请使用 Node.js 22.12.0 2. 安装依赖： npm install 3. 启动 Web 开发环境： npm run dev 4. 启动 Electron 开发模式： npm run dev:electron 5. 构建 Web 产物： npm run build 构建桌面端 - 执行 npm run version:bump -- 1.x.x 更新版本号（构建前必做） - 该命令会同步更新 web/package.json 、 web/package-lock.json ，并尝试同步 ../server/package.json 、 ../server/package-lock.json - 当找不到 server 目录或后端版本文件时，会自动跳过后端同步，不影响前端版本更新 - 执行 npm run build:electron:release 进行生产构建（一次性生成 installer + zip） - 或执行 npm run build:electron:installer 构建安装程序版本 - 或执行 npm run build:electron:zip 构建 zip 版本 - 构建输出目录在 dist-electron/ 协作地址配置 - 默认根据首页输入的后端地址自动推导 WebSocket 地址 - 如需手动指定，可在 .env.development 中配置： VITE WS URL=localhost:3000 后端 JWT 密钥配置 - 打包分发版（Electron 应用） ：用户无需手动配置，首次启动时后端会自动生成随机密钥并保存到本地配置目录 - 自建部署场景 ：可通过 JWT SECRET 环境变量或配置文件指定密钥；详见 后端文档 🎉 功能 - 🧭 无限画布：节点、连线、拖拽、缩放 - 🤝 实时协作：多人同步编辑与状态共享 - 🧩 插件化节点系统：Text / Markdown / Image / Hyperlink 等，支持节点插件导入 - 🔐 房间权限控制：清晰区分成员角色与协作边界 - 🌍 国际化与主题：中英文切换、亮色 / 暗色 - 💾 数据持久化：IndexedDB（Web）+ electron-store（桌面端） 插件开发与导入安装 Constella ","default_branch":null,"files":null,"tree":[],"storefront":"/r/TiiJeiJ8","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/TiiJeiJ8/Constella/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}