GitHub 推荐:6,193 stars 的 Kaneo:自托管看板接入 MCP
GitHub: https://github.com/usekaneo/kaneo
数据采集时间:2026-08-03
一句话总结
Kaneo 是一个用 TypeScript 构建的轻量级项目管理与 Kanban 工具:它用 MIT 开源、自托管优先和「less is more」的产品哲学对抗 Jira/Linear 的复杂度,并进一步通过 HTTP MCP 服务、stdio CLI 和设备授权,把项目管理数据变成 AI Agent 可以直接调用的工作面。
值得关注的理由
- 它已经是可持续交付的产品,而不是概念 Demo。 仓库创建约 19.1 个月,却已有 2,313 次 commit、115 个 tag、100 个 Release;近 30 天仍有 117 次提交,最新版本为
v2.12.1。6,193 stars 和 517 forks 说明它已经进入开源项目管理工具的主流视野。 - 产品口号落实成了工程约束。 README 直接把问题定义为「大多数工具不是功能不够,而是功能太多」,代码则围绕单一 monorepo、简化部署、共享认证和较少的业务抽象展开。Docker Compose、
drimCLI、Helm chart 和 Cloud SaaS 覆盖了从个人试用到生产部署的不同入口。 - MCP 集成不是一个展示性插件。 Kaneo 同时提供服务端 Streamable HTTP MCP、独立 stdio CLI、OAuth 设备授权和约 25 个任务/项目工具;这套「业务 API → 认证 → Agent 工具 → IDE 安装向导」的完整链路,比单纯增加一个聊天机器人更值得迁移到其他 SaaS 产品。
项目展示

官方产品标识,来源于 README 使用的 Kaneo 资源 CDN。

Kaneo Dashboard 截图:核心界面强调看板和任务本身,而不是复杂的项目管理配置。
Repobeats 活跃度图。该图反映仓库活动,不等同于 star 增长曲线;本次采集因 GitHub stargazer 接口返回 403,未能验证近期 star 增长形态。
项目画像
| 维度 | 数据 |
|---|---|
| GitHub | usekaneo/kaneo |
| Star / Fork / Watcher | 6,193 / 517 / 28 |
| License | MIT License |
| 主语言 | TypeScript(GitHub 字节口径约 94%) |
| 代码行数 | 237,371 行(tokei 口径,不含空行/注释);JSON 49.3%、TSX 22.7%、TypeScript 20.3%、YAML 6.1% |
| 项目年龄 | 19.1 个月;首次提交 2024-12-30,仓库创建 2024-12-31 |
| 开发阶段 | 密集开发;近 30 天 117 次、近 90 天 323 次提交 |
| 贡献模式 | 核心少数 + 社区;GitHub API 统计 30 名贡献者,git author 身份 79 个,机器人提交占比较高 |
| 热度定位 | 大众热门 |
| 版本发布 | v2.12.1;115 个 tag、100 个 Release,语义化版本 |
| 质量评级 | 代码良好(中上);文档良好;测试基本;CI/CD 完善 |
语言统计需要谨慎解读:JSON 和 YAML 合计超过一半的 tokei 行数,其中包含配置、结构化资源和迁移元数据,因此 237,371 行不能直接等同于业务逻辑规模。TypeScript/TSX 合计约 102,030 行,更接近产品实现规模。
作者视角:为什么存在这个项目
创始人/作者背景
usekaneo 是一个位于 Macedonia 的年轻 GitHub Organization,账号创建于 2024-12-23,公开仓库只有 3 个,Kaneo 在其最近活跃仓库中排名第 1。组织的自我介绍是「All you need. Nothing you don’t. Open source project management that works for you, not against you. Self-hosted, simple, and powerful.」,博客字段直接指向 kaneo.app。同一组织维护的 drim 是配套的一键自托管 CLI,说明作者不是只发布一个前端仓库,而是在围绕产品构建完整交付路径。
提交结构更像「双核心 + 外围社区」,而不是大型基金会:Andrej(andrejsshell 等身份)和 Tin 是主要真人贡献者,dependabot[bot] 与 github-actions[bot] 合计贡献超过 800 次 commit。GitHub 贡献者接口显示约 30 名实际贡献者,外围还有多个稳定参与者。组织、Sponsor 入口和活跃发布都可以公开核验,作者可信度较高;但核心真人集中意味着 bus factor 仍约为 2。
问题判断
作者的出发点不是「再做一个功能更多的 Jira」,而是对长期使用臃肿项目管理工具的反弹。README 的 Why Kaneo? 明确写道:过多通知、按钮和复杂工作流会把团队从真正重要的工作中拉开;工具应该放大团队自然的工作方式,而不是强迫团队适应工具。
这形成了三个明确判断:
- 小团队和独立开发者首先需要的是低摩擦的 backlog、任务和看板,而不是完整的企业治理套件。
- 数据主权和部署控制仍然是 Jira/Linear 用户愿意付费或迁移的理由,因此 self-host 不能只是高级版附属能力。
- 到 2026 年,项目管理不再只发生在浏览器里。AI Agent 可以代替用户创建任务、移动状态、维护关系和同步项目,因此 PM 工具应该提供机器可调用的接口,而不是只优化人工点击路径。
解法哲学
Kaneo 的核心哲学可以概括为「复用基础设施、减少产品表面积、把复杂度放到边界」:
- 复用而不是自造。 认证主要交给 better-auth,数据层使用 Drizzle,前端使用 React、TanStack Router/Query、TipTap 和 dnd-kit;项目把精力留给产品语义、部署和集成。
- 极简不是少写功能,而是少暴露决策。
workspace、project、column、task 等核心模型保持直观,同时用动态 RBAC、通知偏好和 workflow rule 承接真实团队需求。 - 开源与云服务并行。 MIT 版本允许用户自托管,Cloud 通过 billing、反滥用和 seat 同步提供商业路径。源码中多处使用 cloud-only 闸门,尽量不把云端运营成本转嫁给 self-host 用户。
- 明确不追求企业级大而全。 Issue #110 曾集中列出 RBAC、附件、自定义字段、通知、子任务和筛选等缺口;这些需求后来逐步进入系统,但也持续制造「保持轻量」与「服务团队」之间的张力。
官网根域在本次采集时返回 403,/blog 返回 404,因此没有找到可引用的正式架构博客或公开 roadmap。README、仓库文档和 Jira alternative 页面 仍足以确认产品叙事;页面中的价格和功能对比应视为官网当时的营销信息,而不是长期承诺。
战略意图
从公开代码可以推断,Kaneo 正在形成三层战略:
- Self-host 作为信任底座。
drim、Compose 和 Helm 降低安装门槛,MIT license 让数据与部署权留在用户手里。 - Cloud 作为商业化路径。
apps/api/src/billing、Creem 集成、workspace billing 和 seat 同步说明 Cloud 不是临时 Demo,而是独立的收入面。当前更接近「开源核心 + 云服务双轨」,是否构成严格意义上的 open-core,公开资料尚未明确。 - MCP 作为 AI-native 扩展。 如果产品目标是减少用户在 PM 工具中的操作,允许 Agent 直接处理重复的任务维护,就是「工具不可见」哲学的自然延伸。
这条路线的风险是:团队功能、计费、MCP、自托管和多语言同时扩张,很容易让原本的轻量产品变成另一个复杂平台。
核心价值提炼
创新之处
以下评分依次为「新颖度 / 实用性 / 可迁移性」,评分针对工程模式而不是市场宣传。MCP 的普及速度很快,因此「新颖度」表示在项目管理工具中的落地完整度,不表示 Kaneo 发明了 MCP。
-
MCP 与项目管理业务全栈打通(5 / 5 / 5)
apps/api/src/mcp/index.ts在 API 进程内提供 Streamable HTTP MCP,并复用现有 bearer 认证。packages/mcp提供 stdio CLI 和安装向导,可把 Kaneo 注册到 Cursor、Claude Desktop 等客户端。- 服务端实现动态客户端注册、设备码授权、token 交换和 PKCE;工具覆盖 workspace、project、task、comment、label、relation 等核心对象。
- 价值不在「有 MCP」三个字,而在于把授权、工具 schema、客户端安装和错误返回都纳入产品闭环。对任何已有 SaaS API 的团队,这是一条可直接迁移的路线。
- 代码入口:服务端 MCP、独立 MCP 包。
-
WebSocket 回声抑制与 100ms 批量去重(3 / 5 / 4)
apps/api/src/events用AsyncLocalStorage传递发起窗口的initiatorId,apps/api/src/ws/index.ts广播时排除同一浏览器窗口,避免用户刚完成的操作又被自己的实时订阅重复消费。- 同一项目的事件进入 100ms 队列,以
type + taskId + sourceTaskId + targetTaskId组成 key 去重;多实例时可切换 Redis 广播适配器。 - 这是典型的「先保持业务 mutation 简单,再由事件层统一做协作优化」模式,适合看板、编辑器和实时后台。
- 代码:事件总线、WebSocket 广播。
-
编译时固定核心角色、运行时编辑团队角色(4 / 4 / 3)
-
PostgreSQL advisory lock 处理首用户竞态(3 / 4 / 5)
- 首个注册用户需要被提升为 admin;如果仅使用「查询当前用户数 → 更新角色」,并发注册可能产生两个 admin。
apps/api/src/auth.ts在事务内使用pg_advisory_xact_lock,把一次性的业务特例变成数据库可序列化的临界区。- 这是一个很小但很实用的模式:凡是「第一个租户」「首次初始化」「唯一 bootstrap 管理员」等逻辑,都不应只依赖应用层的先查后写。
-
框架 OpenAPI 与业务 OpenAPI 合并规范化(3 / 4 / 4)
- Hono 路由和 better-auth 各自产生 schema 后,Kaneo 在对外
/openapi端点做合并、去重和 nullable/required 规范化。 - 这解决了「业务接口有文档、认证接口另有一套文档」的断裂,尤其适合 MCP、SDK 和第三方集成共用同一个 API 契约。
- 代价是维护一组 normalizer,需要随着框架 schema 版本变化持续回归。
- Hono 路由和 better-auth 各自产生 schema 后,Kaneo 在对外
-
自托管交付的多层降阶(3 / 4 / 4)
- 新用户可以使用
drim setup,普通用户用 Compose,生产团队用 Helm;同时保留拆分的 API/Web 镜像和 Cloud 形态。 - 单一 Kaneo 镜像降低试用和升级复杂度,Helm 的 Gateway API 与经典 Ingress 双路径则照顾了不同 Kubernetes 环境。
- 这不是单纯的部署文件数量,而是把「用户不想研究基础设施」作为产品问题处理。
- 新用户可以使用
可复用的模式与技巧
- 同进程 MCP 适配层:在既有 API 进程内挂载 MCP,直接复用认证、权限和业务 controller;适合希望快速增加 Agent 接口、又不想维护第二套服务的 SaaS。
- HTTP + stdio 双形态客户端:服务端给远程/云用户使用,stdio 给 IDE 和本地 Agent 使用,共享同一个 typed client 和工具定义。
- 设备码 OAuth 替代手工复制 API key:CLI 通过浏览器授权,token 由本地 token store 保存;适合 CLI、桌面应用和开发工具集成。
AsyncLocalStorage传递请求上下文:把 initiator、trace 或租户上下文带到深层事件处理器,避免给每个 service 手工增加参数。- 事件批处理 + 业务键去重:在实时广播边界做短窗口聚合,不改变写路径的事务语义;要根据事件是否幂等来设计去重 key。
- 静态不可变角色 + 数据库可编辑角色:把不可逾越的系统边界编译进权限模型,把组织管理员可配置的部分放在数据层。
- 共享 schema 的认证与业务数据库:better-auth 表与业务 Drizzle schema 一起迁移,避免两个 ORM 或两个数据库连接的隐性漂移。
- Cloud-only 功能闸门:用
isCloud()把 Turnstile、一次性邮箱拦截和部分反滥用逻辑限制在云端,保持 self-host 的可控性;同时要给开关设计清晰的默认值。 - 部署入口分层:一键 CLI、Compose、Helm 不是互相替代,而是对应不同运维能力;文档应该明确每条路径的升级、备份和反向代理边界。
- 把机器可调用性当成产品契约:MCP tool 的输入 schema、错误结果和现有 API 语义必须一致,否则 Agent 只是多了一层脆弱的包装。
关键设计决策
决策一:用 apps/packages monorepo 组织产品面
- 问题:Web、API、文档、官网、邮件、MCP 和共享类型需要同步演化,但又不能全部塞进一个巨大目录。
- 方案:
apps/{api,web,docs,site}承载可部署应用,packages/{mcp,email,libs,permissions}承载可复用边界,Turborepo 统一 build、dev、lint 和 test。 - Trade-off:类型和脚本共享很方便,贡献者可以一次克隆完整产品;但 workspace 依赖和 lockfile 变化会让小改动产生较大变更面,发布边界也更依赖维护者纪律。
- 可迁移性:高。适合同时拥有 Web、API、CLI 和文档的中型 TypeScript 产品。
- 入口:pnpm workspace、Turbo 配置。
决策二:Hono、WebSocket、MCP 共用一个 API 进程
- 问题:额外拆出实时服务和 MCP 服务会增加端口、认证、部署和本地开发复杂度。
- 方案:API 入口通过
api.route()装配领域路由,并在同一 Hono 应用中挂载 WebSocket 和 MCP;所有请求先经过认证中间件。 - Trade-off:部署简单、权限一致、业务复用率高;代价是长连接、MCP 请求和普通 HTTP 请求共享资源与故障边界,水平扩展时必须引入 Redis 广播等配套设施。
- 可迁移性:中高。适合规模尚未大到需要独立扩展实时层的团队。
- 入口:API 入口、MCP 路由。
决策三:better-auth 深度集成而非自研身份系统
- 问题:密码、magic link、OTP、OAuth、API key、device authorization、workspace 和 OpenAPI 认证本身就是一个长期维护面。
- 方案:启用 better-auth 多个插件,并把 organization 术语映射为 Kaneo 的 workspace;认证表直接映射进 Drizzle schema。
- Trade-off:快速得到完整能力和安全更新,但必须接受框架类型边界、升级迁移和 cookie/CORS 配置的复杂性。Issue #591 和 #1034 表明,自托管环境的 session 与 OAuth 边缘条件仍会反复出现。
- 可迁移性:高,但前提是把框架 schema、迁移和升级测试当作一等资产。
- 入口:apps/api/src/auth.ts、数据库 schema。
决策四:事件总线与广播层解耦
- 问题:任务 mutation 需要触发项目刷新、通知、跨实例同步,但不应让每个 controller 直接知道所有 WebSocket 连接。
- 方案:controller 发布领域事件,事件层统一订阅并转换成
TASK_UPDATED、COMMENT_UPDATED等客户端消息;本地和 Redis 使用广播适配器抽象。 - Trade-off:业务代码更干净、未来可增加消费者;但事件最终一致性、重复投递、初始化顺序和失败重试都需要额外处理,当前广播失败主要依靠日志。
- 可迁移性:高。
决策五:MCP 同时服务远程部署和本地 IDE
- 问题:云端用户需要远程 HTTP 接入,本地 Agent 则通常只发现 stdio server;只做其中一种会丢掉一半使用场景。
- 方案:服务端提供 OAuth2.1/设备授权的 HTTP MCP,独立包提供 stdio transport,并共享 KaneoClient 与工具语义。
- Trade-off:覆盖面和体验显著更好,但两种 transport、token 生命周期和工具注册表需要保持一致;任何一个端点漏更新都会造成 Agent 行为差异。
- 可迁移性:很高,尤其适合已经有 REST API 的 SaaS。
决策六:单镜像优先,同时保留可拆分部署
- 问题:self-host 用户最怕理解多个服务、网络和版本矩阵。
- 方案:默认 Compose 使用一个同时包含 Web/API 的 Kaneo 镜像和 Postgres;高级用户可用独立 API/Web 镜像,Kubernetes 用户使用 Helm。
- Trade-off:默认路径非常短,升级和故障排查更容易;但单镜像降低了独立扩容粒度,生产环境仍需要自行设计反向代理、备份、密钥和数据库升级策略。
- 可迁移性:中高,适合中小团队产品。
竞品格局与定位
竞品对比矩阵
| 维度 | Kaneo | Plane | Tegon | OpenProject | TaskBoard |
|---|---|---|---|---|---|
| GitHub Stars(约) | 6.2k | 55.4k | 1.9k | 约 9k | 1.4k |
| 核心定位 | 轻量、自托管、Linear/Jira 替代 | 功能更广的开源 PM 平台 | Dev-first Jira/Linear 替代 | 企业级、流程与治理完整的 PM | 个人级 Kanban |
| 技术栈 | TypeScript / React / Hono | TypeScript 为主 | TypeScript 为主 | Ruby 生态 | TypeScript |
| Self-host | 默认路径 | 支持 | 支持 | 支持 | 支持 |
| MCP / AI Agent | 服务端 + stdio 双形态 | 本次未发现原生 MCP 作为一等能力 | 本次未发现原生 MCP 作为一等能力 | 本次未发现原生 MCP 作为一等能力 | 无明显原生 MCP |
| 团队功能深度 | 中等,持续补齐 | 较强、生态更大 | 面向开发团队 | 很强,适合复杂组织 | 较弱 |
| 部署与学习成本 | 低到中 | 中到高 | 中 | 高 | 低 |
| 商业形态 | MIT + Sponsors + Cloud | OSS + Cloud | OSS | OSS/商业生态并行 | OSS |
Stars 是 2026-08-03 附近的公开采样值,不是完全同一时间、同一 API 口径的排名。竞品实现细节以公开产品资料为限,本次没有对其源码做同等深度审计。
vs Plane
- Kaneo 更好:默认产品表面积更小,单仓 onboarding 和单镜像部署更直接;MCP、设备授权和 stdio CLI 是当前明显的差异化入口。
- Plane 更好:社区规模约为 Kaneo 的 9 倍,功能模块、团队协作深度、第三方生态和企业采用信号更强。需要 cycles、views、复杂工作流或大规模治理时,Plane 的选择更稳妥。
- 不同目标:Kaneo 更像「几个人快速开始工作」;Plane 更像「组织寻找 Jira/Linear 的完整替代」。
- 迁移成本:Kaneo 的 project/column/task 模型容易映射到 Plane;反向迁移时,Plane 的高级视图、周期和治理数据可能没有等价物。
- 链接:Plane。
vs Tegon
- Kaneo 更好:当前自托管交付面更完整,提供 drim、Helm、Cloud、国际化和 MCP 双形态;对希望让 Agent 参与任务维护的团队更有吸引力。
- Tegon 更好:两者体量接近,但 Tegon 的公开定位更聚焦开发者工作流;如果核心需求是开发团队的 issue/代码协作,而不是通用项目管理,应直接比较其 GitHub 同步和 webhook 体验。
- 不同目标:Kaneo 偏轻量 Linear-like 看板,Tegon 偏 dev-first issue 管理,存在明显重叠但不是完全同一用户。
- 迁移成本:基础任务模型迁移成本可控;集成、权限和自动化规则需要重新映射。
- 链接:Tegon。
vs OpenProject
- Kaneo 更好:现代 TypeScript 栈、单镜像/Compose 快速启动和 MCP 接入更适合小团队、个人开发者及 AI 辅助工作流。
- OpenProject 更好:企业级项目治理、报表、成本/时间管理、复杂敏捷流程、合规与长期社区治理明显更成熟。
- 不同目标:OpenProject 解决「组织如何建立完整项目治理」;Kaneo 解决「团队如何在几分钟内得到一个不碍事的看板」。
- 迁移成本:简单 project/task 数据可以搬迁,但企业工作流、权限、报表和治理规则会大量丢失。
- 链接:OpenProject。
vs TaskBoard
TaskBoard 与 Kaneo 都重视 Kanban 的直观性,但 TaskBoard 更接近个人任务板;Kaneo 已加入 workspace、认证、通知、集成、Helm、Cloud 和 MCP 等多租户产品能力。若只要个人待办,Kaneo 可能反而过重;若要团队协作和可扩展 API,Kaneo 的上限更高。
差异化护城河
Kaneo 的护城河不是某个难以复制的算法,而是几个要素的组合:
- MCP 产品化先发:服务端、stdio、设备授权、工具 schema 和客户端安装向导形成完整闭环。
- 自托管交付经验:Compose、单镜像、Helm、drim 和 Cloud 双轨同时维护,积累的是部署边界与用户踩坑知识。
- 产品哲学的一致性:less is more 从 README 延伸到依赖复用、核心模型和界面目标,减少了功能堆叠造成的认知负担。
- 持续演化的产品资产:19 个月、2,313 次 commit、100 个 Release 和社区反馈带来的迁移/认证经验,短期内比单个新竞品更难复制。
这些都不是永久技术壁垒。竞争优势能否保持,取决于 MCP 工具质量、self-host 首次启动成功率以及团队功能扩张是否仍然克制。
竞争风险
最现实的竞争风险有三类:
- Plane 等头部项目补齐 MCP 后,Kaneo 的 AI 叙事会被更大生态吸收。
- Linear、Jira 或其他商业工具把 Agent 操作直接做进官方工作流,可能让用户不再寻找独立 MCP 层。
- Kaneo 为追赶企业功能而不断增加权限、附件、字段、通知和报表,最终失去「小而快」的品牌优势,却仍没有 Plane 的生态规模。
生态定位
Kaneo 位于「传统企业 PM」和「个人 Kanban」之间,更具体地说,是自托管优先、现代 TypeScript、对 Agent 友好的轻量项目管理层。它不是 OpenProject 的企业治理替代,也不是 TaskBoard 的个人待办替代;它争夺的是小型产品团队、独立开发者和希望掌握数据的技术团队。
套利机会分析
- 信息差:Kaneo 已不是低关注度项目,6,193 stars 说明市场注意力并不稀缺。真正容易被忽略的是它的 MCP 实现和部署架构:多数介绍只把它写成「开源 Jira 替代」,没有解释它如何把任务系统接入 Agent。
- 技术借鉴:可以直接学习 MCP HTTP/stdio 双 transport、设备授权、请求上下文驱动的实时广播去重、首用户 advisory lock、OpenAPI 合并以及单镜像到 Helm 的部署分层。
- 生态位:围绕 Kaneo 仍有工具机会,例如 MCP 工具质量/权限审计、从 Jira/Plane 的迁移器、self-host 配置诊断、数据库备份与升级检查、实时连接健康监控,以及面向 Agent 的项目管理工作流模板。
- 趋势判断:AI Agent 操作项目管理系统、自托管和数据主权都符合 2026 年的产品趋势;MCP 使 Kaneo 有后发切入点。但 star 增长曲线本次无法验证,不能据此宣称它正在爆发式增长;同时,MCP 会逐渐成为竞品的基础能力,先发优势需要靠工具覆盖度和真实使用体验兑现。
风险与不足
- 自托管的跨域与认证摩擦。 Issue #593 暴露了 v2 无域名部署时的 CORS 问题,Issue #591 暴露了 v1 到 v2 迁移后的登录/session 问题,Issue #1034 则涉及 OAuth2 redirect URI。它们共同说明「默认可自托管」不等于「任何拓扑都能无配置运行」。
- 测试投入相对功能扩张偏弱。 仓库有 API unit test、MCP 测试和 11 个 API integration test,也有 CI 的 lint/build/integration job;但相对于 2,313 次 commit、30+ 数据表和大量认证/集成边界,业务逻辑的单元回归网仍不够密,尤其是跨域、迁移、权限和 MCP 工具契约。
- 核心维护者集中。 git 统计中的机器人会放大 commit 总量,真正的人类核心主要是 Andrej 和 Tin。社区有参与者,但核心决策和产品知识仍集中在少数人手中,长期维护与安全响应存在 bus factor 风险。
- 认证框架与数据库迁移耦合。 better-auth 表、Drizzle schema 和多个启动时自定义迁移共同演化;升级认证插件或 workspace 语义时,可能同时影响 session、cookie、权限和历史数据。自托管用户必须重视版本说明、备份和回滚,而不能只替换镜像 tag。
- 依赖面广且 lockfile 变化频繁。 Web 端集成 Radix、TipTap、TanStack、dnd-kit 等多组依赖,
pnpm-lock.yaml是高频修改文件。依赖更新带来安全修复,也增加了供应链、构建和兼容性回归成本。 - 极简定位与团队功能之间存在结构性张力。 Issue #110 中的需求大部分是成熟团队的刚需;继续补齐它们会让产品更有竞争力,却可能违背「工具应该隐形」的初衷。
- 可观测性仍有提升空间。 API 有错误处理和 Sentry 入口,但部分 WebSocket/广播失败主要依赖 console 日志;对于多实例、Redis、OAuth 和 webhook 集成,结构化日志、追踪和诊断工具会直接影响 self-host 用户的排障成本。
行动建议
- 如果你要用它:优先把 Kaneo 作为 3~20 人团队的轻量看板、内部项目台账或自托管 Linear 替代评估。个人试用可走 Docker Compose,希望自动处理 HTTPS 可看 drim,生产 Kubernetes 再考虑 Helm chart。上线前固定版本、备份 Postgres,明确
KANEO_CLIENT_URL、API URL、CORS、HTTPS 和AUTH_SECRET,并先在实际反向代理拓扑中验证登录、OAuth 和 v1→v2 迁移。若需要企业级报表、合规和复杂治理,优先比较 Plane/OpenProject。 - 如果你要学它:建议按以下顺序阅读:
README.md和ENVIRONMENT_SETUP.md,理解产品哲学与部署边界;apps/api/src/index.ts,看路由、认证、WebSocket 和 MCP 如何装配;apps/api/src/auth.ts与packages/permissions,理解 workspace、动态 RBAC、cookie 和 bootstrap admin;apps/api/src/events、apps/api/src/ws,学习事件总线、回声抑制和 Redis 广播;apps/api/src/mcp与packages/mcp,重点看设备授权、工具 schema、stdio/HTTP 双 transport;apps/api/src/database/schema.ts和charts/kaneo,理解数据模型与交付形态。
- 如果你要 fork 它:优先做降低风险而非继续堆功能:
- 增加启动时的 CORS/cookie/OAuth 拓扑诊断和可读错误,针对 #591/#593/#1034 建立回归测试;
- 为数据库迁移、workspace RBAC、MCP 工具输入输出和 webhook 增加契约测试,并在 CI 中覆盖真实 Compose/Helm smoke path;
- 提供 v1→v2 数据与 session 迁移检查器、自动备份/回滚提示;
- 补充结构化日志、Redis/WebSocket 健康指标和 self-host 导出诊断包;
- 将 MCP 工具注册表尽可能从单一 schema 生成,避免服务端和 standalone 包长期漂移;
- 在加入企业功能前明确产品边界,优先把 MCP、轻量协作和部署体验做成真正的护城河。
知识入口
| 资源 | 链接 |
|---|---|
| DeepWiki | usekaneo/kaneo |
| Zread.ai | usekaneo/kaneo |
| 官方文档 | Kaneo Docs |
| 关联论文 | 无;这是应用型项目,未发现相关 arXiv 论文 |
| 在线 Demo | Kaneo Cloud |
| 一键部署 | usekaneo/drim |