核心问题: 你的团队能否稳定运维 13 个容器?AGPL-3.0 能否通过法务审核?
RepoDaily 采用评分
RepoDaily 将该项目的采用分评为 90/100(强):分数来自文章来源、安装路径、生产风险、差异化、许可证清晰度以及 AI/Agent 适配度。
包含 5 个来源、覆盖 3 类来源;如有 RepoDaily 独有模块,会进一步提高证据分。
检测到 6 个工作流步骤、5 个下一步动作,以及 7 个命令/安装信号。
趋势热度为 +577 stars;如内容中有 release、issue 或维护信号,会提高维护可信度。
采纳风险标记为 medium,并包含 5 条安全说明与 4 条跳过条件。
3 个机会视角、6 个替代方案,以及 4 个类型化模块支撑差异化判断。
文章中包含许可证来源或许可证表述。
文章正文和元数据中检测到 4 个 AI/Agent 相关信号。
项目概览
Plane(makeplane/plane)是一个开源项目管理平台,README 直接把它定位为 Jira、Linear、Monday 和 ClickUp 的替代品。它以 Work Items 承载问题跟踪(富文本编辑器、文件上传、子属性与关联问题),用 Cycles 运行迭代并配燃尽图,用 Modules 拆解复杂项目,用 Views 保存并分享过滤视图,用 Pages 记录文档并附带 AI 能力,再通过 Analytics 输出实时洞察。package.json 声明版本为 1.4.1,整个项目是 monorepo:Django 后端位于 apps/api,TypeScript 前端应用各自用独立 Dockerfile 构建。
本项目本期以 577 星位列趋势榜第 11 名。吸引点不只是“Jira 替代”的口号:Plane 给出了完整写明的自托管路径——带固定版本镜像的 docker-compose.yml、developers.plane.so 上的 Kubernetes 部署文档、Zenith 托管部署,以及免费注册即用的 Plane Cloud。能把四条路线全部写进文档的竞品并不多。
Plane 与轻量级跟踪工具的差别在于:自托管它等于运维一个小型分布式系统。Compose 文件定义了 13 个服务:web、admin、space、api、worker、beat-worker 六个应用容器,加上 live 服务、一次性的 migrator,以及五个基础设施容器——postgres:15.7-alpine 的 plane-db(max_connections=1000)、valkey/valkey:7.2.11-alpine 的 plane-redis、rabbitmq:3.13.6-management-alpine 的 plane-mq、对象存储 plane-minio,以及负责 HTTP/HTTPS 的 proxy。
代价同样写得明白:CONTRIBUTING.md 建议本地开发至少 12 GB 内存,并警告 8 GB 机器在 Docker 容器构建或依赖安装阶段可能失败或内存崩溃;package.json 标注许可证为 AGPL-3.0。这两点都不藏着,应当直接决定你是先在空闲主机上试,还是先用 Plane Cloud 起步。
为什么现在变热
- 截至 2026-08-22 的周期内拿下 577 星,趋势榜排名第 11。
- README 直接点名 Jira、Linear、Monday、ClickUp,精准承接重新审视托管工具的团队。
- 自托管三条路线全部成文:Docker Compose、Kubernetes、Zenith 托管。
- 功能对齐付费产品:Cycles 燃尽图、可保存分享的 Views、附带 AI 的 Pages。
- package.json 显示版本 1.4.1、许可证 AGPL-3.0,配合公开的 SECURITY.md 报告流程,是商业化开源项目的维护节奏。
解决什么问题
- 问题、路线图和文档被锁在供应商云端;README 开篇承诺“无需为管理工具本身操心”,正是对这种痛点的回应。
- 大型项目容易失控:Plane 用 Modules 把复杂项目拆成更小、可管理的单元。
- 迭代进展难看清:每个 Cycle 自带燃尽图等进度工具。
- 不同角色需要不同视角:Views 允许成员自建过滤器并保存、分享。
- 传统自托管工具常在功能上妥协;Plane 的卖点是功能与控制兼得。
工作原理
- 选择部署方式:免费注册 Plane Cloud、Docker Compose、Kubernetes 或 Zenith 托管。
- Compose 路径下,proxy 容器在 web、admin、space 之前承担入口,转发到 Django API。
- api、worker(容器名 bgworker)、beat-worker 共用 Dockerfile.api,仅入口脚本不同(docker-entrypoint-api.sh、-worker.sh、-beat.sh);migrator 以 restart: no 一次性执行数据库迁移。
- plane-db(Postgres 15.7)、plane-redis(Valkey 7.2.11)、plane-mq(RabbitMQ 3.13.6)与 plane-minio 分别提供持久化、缓存、队列和文件存储,上传文件落在命名卷中。
- 实例管理员通过 /god-mode/ 的 God mode 配置实例。
- 团队随后使用 Work Items、运行 Cycles、按 Modules 分组、共享 Views、撰写 Pages 并查看 Analytics。
产品演示与界面预览

RepoDaily 架构解读:13 个容器各自做什么
docker-compose.yml 是理解 Plane 形态最直接的材料。六个应用容器分别从 monorepo 路径构建:web(apps/web/Dockerfile.web)、admin(apps/admin/Dockerfile.admin)、space(apps/space/Dockerfile.space)、api(apps/api/Dockerfile.api)、live(apps/live/Dockerfile.live),proxy 使用 apps/proxy/Dockerfile.ce。api、worker 与 beat-worker 复用同一 Dockerfile.api,只靠入口脚本区分 API 服务、后台任务和定时任务,保证后端版本三者对齐。
状态落在四个命名卷:pgdata、redisdata、uploads、rabbitmq_data,分别由 postgres:15.7-alpine(max_connections=1000)、valkey/valkey:7.2.11-alpine、rabbitmq:3.13.6-management-alpine 和 minio/minio 支撑。migrator 是一次性任务(restart: no),在 API 对外服务前执行 docker-entrypoint-migrator.sh。proxy 暴露 LISTEN_HTTP_PORT 与 LISTEN_HTTPS_PORT,FILE_SIZE_LIMIT 默认 5242880 字节(5 MB),MinIO 桶名默认 uploads。
RepoDaily 上手路径:从克隆到登录的本地开发
- CONTRIBUTING.md 列出的要求:运行中的 Docker Engine、Node.js 20+ LTS、Python 3.8+、Postgres v14、Redis v6.2.7,以及最少 12 GB 内存。
- git clone https://github.com/makeplane/plane.git,然后 chmod +x setup.sh 并执行 ./setup.sh。
- 启动容器栈:docker compose -f docker-compose-local.yml up。
- 用 pnpm dev 启动前端;monorepo 由 turbo 编排,package.json 固定 pnpm 11.3.0。
- 先到 http://localhost:3001/god-mode/ 注册实例管理员,再用相同凭据登录 http://localhost:3000。
- 注意:package.json 的 engines 要求 node >=22.18.0,而 CONTRIBUTING.md 写的是 Node 20+——安装 22.18 以上最稳妥。
部署笔记:三条自托管路线与管理面
README 把自托管者引导到 developers.plane.so/self-hosting,列出三种方式:Docker Compose、Kubernetes、Zenith 托管(zenith.hosting/host/plane)。God mode 是实例管理面,README 与本地搭建流程(/god-mode/)都指向它。Compose 路径要求通过 .env 提供 POSTGRES_USER、POSTGRES_DB、POSTGRES_PASSWORD、RABBITMQ 凭据,以及供 MinIO 使用的 AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY;proxy 再从同一环境读取 LISTEN_HTTP_PORT、LISTEN_HTTPS_PORT、FILE_SIZE_LIMIT 和桶名。
容量规划比多数跟踪工具更关键:十二个容器均为 restart: always,而 12 GB 内存只是本地开发的底线,尚未计入生产流量。默认 5 MB 的 FILE_SIZE_LIMIT 上传限制也应在真实团队上传设计稿之前复核。
RepoDaily 维护解读:版本、工具链与需求漂移
- package.json 声明版本 1.4.1、许可证 AGPL-3.0——强著佐权许可,要把 Plane 嵌入对外分发的产品,通常先过法务。
- monorepo 由 turbo 脚本(build、dev、check、fix)驱动,husky 配合 lint-staged 在每次提交时执行 oxfmt 与 oxlint --fix --deny-warnings,贡献代码风格被强制统一。
- CONTRIBUTING.md 要求所有功能和修复附带单元测试,且 bug 必须先给出最小复现(仓库或 Gist)才会被调查。
- 需求口径存在漂移:CONTRIBUTING.md 写 Node 20+、Postgres v14、Redis v6.2.7,而生产 Compose 用的是 Postgres 15.7 与 Valkey 7.2.11——规划主机规格时以 Compose 文件为准。
- Issue 有明确命名规范:🐛 Bug:、🚀 Feature:、🛠️ Improvement:、📘 Docs: 前缀让问题列表保持可扫读。
谁适合关注
适合关注
- 已有 Docker/Kubernetes 能力、且能拿出 12 GB 内存的团队。
- 因数据驻留要求必须把问题数据放在自有基础设施上的组织。
- 想要 Cycles 燃尽图、又不想依赖托管厂商的迭代型小队。
- 希望通过 setup.sh 进入 turbo/pnpm monorepo 的贡献者。
可以先跳过
- 个人或两三人的小团队——单容器轻量看板更省心。
- 不愿同时运维 Postgres、Valkey、RabbitMQ、MinIO 和 proxy 的运维团队。
- 法务政策一票否决 AGPL-3.0 的公司。
- 只有 8 GB 内存的主机——CONTRIBUTING.md 明确警告会构建失败或内存崩溃。
风险与注意事项
Plane 文档齐全、版本清晰,但自托管意味着在 AGPL-3.0 之下运维 13 个服务,且主机内存底线为 12 GB。
- 十二个 restart: always 容器加一个 migrator,状态横跨 pgdata、redisdata、uploads、rabbitmq_data 四个卷。
- AGPL-3.0 在任何接近分发的场景前都需法务确认。
- 8 GB 内存会失败不是猜测,而是文档明示的失败模式。
- CONTRIBUTING.md(Node 20+)与 package.json engines(>=22.18.0)口径不一致,说明文档略滞后于代码。
- 漏洞报告发往 [email protected],需附完整复现信息,包括受影响的 IP 或 URL。
- 承诺三个工作日内确认收到的报告,并给出预计修复时间。
- 遵守报告准则的提交者不会被告;报告保密,经同意后可公开致谢。
- 未经允许不得对 Plane 基础设施或面板跑自动扫描;需要沙箱环境可联系团队。
- 不在范围内:MITM 或物理接触攻击、无明确攻击向量的文本注入、邮件伪造、缺 DNSSEC/CAA/CSP 头、非敏感 Cookie 缺 secure/HTTP-only 标记。
替代方案比较
| 方案 | 适用场景 | 代价 |
|---|---|---|
Jira | 需要 Atlassian 市场,以及与 Confluence、Bitbucket 管线的深度打通。 | 按席订阅的商业 SaaS |
Linear | 产品小队优先追求极快的问题界面与类似 Cycles 的循环规划。 | 按席订阅的商业 SaaS |
ClickUp | 希望一份订阅同时覆盖任务、文档和白板。 | 按席订阅的商业 SaaS |
OpenProject | 经典瀑布场景:甘特图与工作包优先于迭代与 AI 页面。 | 开源自托管免费,企业版付费 |
Taiga | 专注 Scrum/Kanban、想要更轻量开源技术栈的团队。 | 开源,云托管付费 |
Focalboard | 已用 Mattermost、希望看板内嵌聊天。 | 免费开源 |
这个趋势说明了什么
面向数据驻留的跟踪平台
Compose 栈让 Postgres、Valkey、RabbitMQ、MinIO 的所有数据卷完全由你掌控,这正是受监管团队在问题数据不得离开自有硬件时最看重的属性。
在一台 16 GB 节点上跑通 docker-compose 方式;验证 Work Items、带燃尽图的 Cycle、经 MinIO 的文件上传全部可用;再对 pgdata 与 uploads 卷做一次备份恢复演练。
目标明确的首个贡献
setup.sh 流程、强制单元测试与 OxLint/oxfmt 让首次 PR 的门槛变低,而且文档里现成就有一处可修的不一致。
提一个 📘 Docs: 议题,把 CONTRIBUTING.md 的 Node 20+ 与 package.json engines >=22.18.0 对齐;README 也明确欢迎通过论坛和 GitHub 议题参与。
量化自托管与托管的总成本
免费的 Plane Cloud 账号与自托管路径提供同一产品,正好用来对比订阅支出与十二个常驻容器的运维成本。
让一个真实小队完整跑完一个 Cycle;记录升级、备份与故障响应的耗时,再与现有工具的账单对比。
RepoDaily 判断
Plane 是少数把自托管故事写全的 Jira 替代品:13 个 Compose 服务、固定版本的基础设施镜像、God mode 管理、公开的安全政策一应俱全——但你引入的是一个小型分布式系统,而不是单个应用。请为 12 GB 内存底线、五个有状态后端服务的运维投入和 AGPL-3.0 法务审核留出预算;若暂不具备,先从免费的 Plane Cloud 账号起步,等约束真实存在时再迁移到自托管。