⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 http://www.iocoder.cn/Fight/plane-project-management/ 「芋道源码」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言都将得到认真回复。甚至不知道如何读源码也可以请教噢。
  4. 新的源码解析文章实时收到通知。每周更新一篇左右。
  5. 认真的源码交流微信群。

Jira 功能齐,代价是配置成本高,建项目、加字段、改流程都费时间。Linear 顺手,但它闭源,数据存在别人机器上,人一多按人头计费也不便宜。

翻替代品时看到 Plane,仓库六万多 Star,简介写着是 Jira、Linear、Monday、ClickUp 的开源替代。仓库和文档都过了一遍,能挑的地方不多,任务、周期、模块、文档、统计一应俱全,一台服务器就能跑。

仓库首页实时截图,Star 与 Fork 计数同时可见

它把「自己部署」拆成了三套代码

Plane 在 2022 年 11 月建库。有件第一次装才会撞上的事,官方把自托管切成三套各自独立的代码库,各维护各的,换版本等于换库。

  • Community,开源那套,免费、人数不封顶,功能对齐云端免费档,代码能自己审自己改,拿不到 Pro 档以上的能力。
  • Commercial,闭源那套,功能与云端完全拉平,内置免费档每个工作区送 12 个座席,小团队上生产够用,要更多得挂 License Key。
  • Airgapped,把商用那套改成完全离线,更新从自己的镜像仓库拉。

三套的发版节奏也分开,新功能先在云端跑通,再进商用,最后到社区。彼此之间没有强制迁移,社区版里也没有藏起来的限制代码;离线那套只随最高一档企业方案提供,得走商务渠道。

项目首页界面

社区版不算小气,项目、任务、成员都不封顶,REST API 与 Webhook 也开放。技术上前后端同仓,后端 Django、前端 React,自托管路径有 Docker Compose 与 Kubernetes 两条,不想养机器的还有托管云版。

任务、周期、模块,是三种不同的时间尺度

任务详情界面,属性栏与下拉选项

最小的工作单位叫 Work Item。富文本编辑器、附件、子任务、关联、负责人、标签、优先级都在,编辑器认 Markdown,代码块和图片直接往里贴,评论能 @ 同事。状态列可以自己加,默认那三档 Todo、Done、In Progress 不够使,测试要的「待验证」也能建。

迭代页界面,周期进度与燃尽图

周期这一层叫 Cycles,对应 Scrum 的 Sprint。起一个两周周期,要做的事拖进去,燃尽图和完成率自动算,不用手动统计。收尾没做完的,直接转到下一期。

模块页界面,模块卡片与进度

模块这一层叫 Modules,管跨周期的工作。一次大的版本重构往往横跨三四个周期,相关任务收进同一个模块,进度条和状态分布自己出来,想知道整体走到哪看模块就够。

三层摆在一起分工很清楚。一层管单件事,一层管这两周,一层管整条线走到哪,固化成三个对象,就不必靠约定和标签凑。

同一批任务,五种版式,底下只有一份数据

多视图与筛选界面

同一批任务能换五种版式,看板、列表、日历、甘特图、表格,顺手的用哪个都行,底下同一份数据。筛选条件配好能存成视图,也能分享给团队其他人。五种版式免费档全部开放。

需求从外面进来,先进待审队列

外部的人提需求不用注册账号,客户或其他部门的同事通过一张表单把需求或 bug 递进来,先落进待审队列,内部评审过了才转成正式任务。入口收在一处,任务列表不会被塞乱。

集成方面,GitHub 与 GitLab 代码托管、Slack 沟通、Sentry 报错跟踪都有官方插件,代码合并能带着任务状态一起变,Slack 里也能直接开任务。AI 能问项目进度,也能把任务描述理清楚,自部署实例挂自己的模型 Key,请求不出自己那台机器。

文档和统计自带,少养一个工具

数据分析面板,总览卡片与项目洞察

文档是内置的,富文本编辑器,图片、视频、Figma 设计稿都能嵌进去,写完能一键转成任务。项目层面有 Pages,工作区层面还有 Wiki,以前 Jira 和 Confluence 两头开的团队能省一个工具。

统计是一块跨项目的实时面板,任务按负责人、状态、优先级摊开,还带趋势图。开站会前扫一眼,哪块落后心里有数。

一条命令装完,但版本要先选对

装这种工具通常都不省心,Plane 这块比预期简单,社区版官方给的是一键脚本。

mkdir plane-deploy
cd plane-deploy
# 下载官方脚本
curl -fsSL -o setup.sh https://github.com/makeplane/plane/releases/latest/download/setup.sh
# 赋权并运行
chmod +x setup.sh
./setup.sh

最后一行跑完还不算装好,脚本弹出菜单,八项有 Install (arm64)、Start、Stop、Restart、Upgrade、View Logs、Backup Data、Exit。选 Install 会建出 plane-app 目录,把 compose 与 environment 文件拉下来,改完变量再选 Start,日常运维都在这一个菜单里。

环境文件里四个键值得先看,HTTP 与 HTTPS 端口默认 80 和 443,WEB_URL 与 CORS_ALLOWED_ORIGINS 默认指向本机,要换成实际域名加端口,改前先停服务。

商用版走另一条线,一行管道命令装完,再用 sudo prime-cli 配数据库与存储。

装完之后,要管的是这几件事

机器门槛不高,2 核 4G 能跑。只想先看看的话还有单容器版,十来分钟能起来,官方说它只适合体验,别上生产。更要紧的一条写在警告里,生产环境建议把数据库与对象存储挪到外面,别用容器里那套,机器一崩数据跟着没。容器里默认装 Postgres 15.5、Redis 7.2.4 和 MinIO。

想换外接,商用版用 sudo prime-cli 进 configure 逐项填,可改的有反向代理监听端口、单文件上传上限(默认 5 MB)、外部 Postgres 与 Redis、对象存储。对象存储只认 S3 兼容,地址不能填本机,密码别塞特殊字符,否则预签名上传会失败。

Kubernetes 那条路官方备了 Helm Chart。加完仓库用 PLANE_VERSION 指定版本号,有个坑,官方明说不要写 stable,必须写具体版本号。快速安装会把 Postgres、Redis、MinIO 起成有状态服务,配 longhorn 存储类与 nginx 入口。

还有一块容易被忽略,实例管理。一个实例能放多个工作区,管理员有专门一条路径叫 God mode,实例名与 ID、匿名遥测、SMTP、SSO 与 OAuth、免邀请注册、普通用户能否建工作区都在这里。SMTP 早点配,不然邀请邮件发不出去。

谁适合拿它当主力,谁要为高级功能付钱

想跑完整敏捷流程,又不愿把时间耗在 Jira 配置上,中小研发团队挑它不会错,开源项目里它最贴近商业产品。在意数据归属的团队也合适,整套装在自己服务器上,数据攥在自己手里,闭源工具做不到。预算紧张的初创团队更省事,社区版免费、人数不限、功能够用。研发之外的团队也用得上,市场、运营拿看板和日历排期都能干,界面对非技术同事也友好。

要掏钱的是另一头,单点登录、审计日志这类能力在商用版付费档里,还按座席收费。

它的位置

开源的项目管理工具不少,Redmine 与 OpenProject 这类老项目活了十几年,功能不缺,界面和交互却停留在上一个时代。全团队推广时,同事肯不肯用才是关键。

Plane 在这件事上做对两处,体验做到了商业产品的水平,数据所有权又留在用户手上。这两样同时占住的目前不多。约束也说清,AGPL 3.0 对打算二次开发再商用的团队有影响,团队内部自用不受限制。

想找顺手、数据攥在自己手里的项目管理工具,开源那套够用。仓库地址是 https://github.com/makeplane/plane 。最后交代一句,我没有实际部署过 Plane,文中功能与部署描述来自官方 README、开发者文档与来源正文,三套版本边界与座席、付费档口径都按官方文档核过,上生产建议先拿测试机跑一遍。

文章目录
  1. 1. 它把「自己部署」拆成了三套代码
  2. 2. 任务、周期、模块,是三种不同的时间尺度
  3. 3. 同一批任务,五种版式,底下只有一份数据
  4. 4. 需求从外面进来,先进待审队列
  5. 5. 文档和统计自带,少养一个工具
  6. 6. 一条命令装完,但版本要先选对
  7. 7. 装完之后,要管的是这几件事
  8. 8. 谁适合拿它当主力,谁要为高级功能付钱
  9. 9. 它的位置