<!-- title: 暂存区已死：jj重写版本控制 -->

**开源周报 · 第2轮挖掘 | 2026-09-30**

## 本期概述

这轮刻意绕开了 AI 编程工具和大模型基建——过去两周这两个赛道已经被写烂了。我把探照灯打向三个更值钱的暗角：一是开发者的日常重器（版本控制），二是「自托管即生意」的基建层（邮件营销、统一身份），三是硬件接入的最后一公里（气象站、动态口令、家庭书房）。六选之外还有一条暗线：把订阅费生意拆成一次部署的自托管件，是当下独立开发者最实的变现路径。本期入选标准依旧：解决单一痛点、架构值得讲、拿来就能跑。其中 WeeWX 与 2FAuth 是千星级小仓库，属于典型的「低调但离不得」。

*数据说明：本期采集通道受限，文中 Star 数为量级下限（基于公开长期数据），提交活跃度以仓库实时页面为准，发稿前建议逐仓校准。*

---

## 1. jj（jujutsu）—— 不要暂存区的版本控制

**[jj-vcs/jujutsu](https://github.com/jj-vcs/jujutsu)** | Star：1万+（量级）| 高频迭代，周更节奏

一句话定位：一个与 Git 完全兼容的现代版本控制系统，把「工作区—暂存区—提交」三段式砍成了两段。

它解决什么痛点：Git 最劝退新手的是什么？`git add` 和暂存区这个凭空多出来的中间层。jj 的答案是激进的：**工作副本本身就是一次提交**。你每改一行代码，jj 都在后台自动快照成 amend，不存在「忘了 add」这回事，也没有 `git stash` 这种权宜之计——切分支前代码自动被收好。

核心功能拆解：

- **冲突是一等公民**：rebase 撞了冲突不必当场解决，冲突本身可以作为一次提交存在仓库里，等你哪天有空再收拾。多分支长链 rebase 从此不再是心跳加速的操作。
- **一切可撤销**：内置操作日志（op log），不止提交历史可回滚，连你执行过的每一条 jj 命令本身都能 undo，撤销错了还能再撤销回来。
- **与 Git 双向兼容**：co-located 模式下同一目录既是 jj 仓库也是 Git 仓库，`jj git push` 直接推 GitHub，老团队零成本共存。
- **revset 查询语言**：`jj log -r 'ancestors(main, 10)'` 这样的表达式选提交集，比记 `git log` 的十几颗旗标清爽得多。

项目由 Martin von Zweigbergk 主导，此人是 Git 老兵、曾在 Google 从事内部版本控制工作，2019 年前后业余起步，用 Rust 写就。近几年社区扩张明显，已进入多家公司的日常工作流。

上手难度：⭐⭐⭐⭐（工具不难，难的是卸掉十年 Git 肌肉记忆）
适用人群：重度 rebase 用户、monorepo 团队、被 Git 复杂度劝退过的新人。二次开发方向：基于 jj 的代码评审托管服务——jj 的「冲突可提交」特性天然适合做异步 review，这块托管市场目前还是空白。

---

## 2. listmonk—— 邮件营销，一次部署，永无月费

**[knadh/listmonk](https://github.com/knadh/listmonk)** | Star：1.4万+（量级）| 稳定维护

一句话定位：单二进制文件的自托管 Newsletter 与邮件营销系统，对标 Mailchimp 按订阅者收费的模式。

先划清界限：前几期写过的「邮件服务器焊成一个文件」解决的是自己收发邮件的 MTA 层；listmonk 站在它上面一层——**对外批量发信的营销与订阅运营层**，这才是 Mailchimp 收你月费的那部分。

它解决什么痛点：订阅列表涨到一万人的品牌，Mailchimp 账单每月数百美元起步，且数据、退订关系全部锁在对方平台。listmonk 把这三样东西还给你：数据在你自己的 Postgres 里、发送走你自己的 SMTP、订阅页面挂你自己的域名。

核心功能拆解：

- **架构极简**：Go 编译出单个二进制 + 一个 PostgreSQL 库，管理面板直接内嵌在二进制里，docker-compose 两行服务跑完，没有微服务、没有消息队列。
- **发信全链路**：订阅者分组与属性管理、双重确认（double opt-in）、模板引擎、弹回（bounce）自动处理、退订与投诉记录，REST API 覆盖全部操作，可与任何注册流程打通。
- **多 SMTP 轮询**：可配多个发信通道按权重分流，配合廉价 SMTP 供应商把每千封成本压到几美分。
- 作者是 Kailash Nadh——印度开源社区 FOSS United 的核心人物，项目采用 AGPL 协议，多年独立维护，工程质量在自托管圈有口皆碑。

上手难度：⭐⭐（唯一门槛是要搞定域名信誉与 SPF/DKIM 配置）
适用人群：出海产品、内容创作者、做私域的电商。变现路径现成：给中小企业做「邮件代运营」，用 listmonk 当引擎收月费——工具零成本，赚的是运营服务钱。

---

## 3. Kanidm—— 中小团队的自建身份中枢

**[kanidm/kanidm](https://github.com/kanidm/kanidm)** | Star：3千+（量级）| 活跃开发中

一句话定位：Rust 写的开源身份管理与 SSO 服务，想同时吃下 Keycloak 和 LDAP 的地盘。

它解决什么痛点：公司内网第五个服务上线时，每个新工具都要再注册一个账号——这是所有中小团队的慢性病。Keycloak 功能全但重，LDAP 老而难管，Auth0 按月活收美元。Kanidm 的野心是：一个轻量服务，管住你所有系统的「你是谁」。

核心功能拆解：

- **OIDC/OAuth2 开箱即用**：GitLab、Nextcloud、Grafana 等支持标准协议的服务都能指过来，登录页统一、权限分组统一。
- **不止管网页登录**：内置 Unix 集成（kanidm-unixd），Linux 服务器的 SSH 登录、sudo 权限也能从它这里出——这是它区别于大多数 SSO 方案的杀手锏，等于顺手把 LDAP 的活也干了。
- **数据模型干净**：人（person）与服务账号（service account）分治，属性级访问控制，自助服务门户让员工自己改密码、传 SSH 公钥，IT 从工单里解放。
- Rust 实现带来内存安全与低资源占用，主创 William Brown 出身 SUSE 身份管理团队，是这个领域十多年的老兵。

上手难度：⭐⭐⭐⭐（概念多：entry、attribute、ACL 模型需要啃文档）
适用人群：10-200 人规模的自建基础设施团队、重度 homelab 玩家。商业方向：给从 Auth0/AD 迁出的企业做身份迁移与托管运维，这类项目客单价高、粘性极强。

---

## 4. WeeWX—— 屋顶气象站的十九年老内核

**[weewx/weewx](https://github.com/weewx/weewx)** | Star：1.2千+（量级，千星小仓库）| 长期稳定维护

一句话定位：把几百到几千块的消费级气象站硬件，变成一座 7×24 小时出专业数据档案的观测站。

它解决什么痛点：买的 Davis、Ecowitt 气象站，官方 App 只给你看「现在几度」，历史数据封在厂商云里、导出受限、说停就停。WeeWX 在你家里截住这份数据：本机落库、自由渲染、永久属于你。项目由 Tom Keffer 创建，2008 年前后启动，作者家里的站点多年不间断运行——这种寿命在开源硬件圈是传说级的存在。

核心功能拆解：

- **三层架构清晰**：驱动层认硬件协议（Davis Vantage、Ecowitt、WeatherFlow 等几十种社区驱动）→ 引擎层把每秒环路数据归档进 SQLite（可换 MySQL）→ 报表层用 skin 模板把数据渲染成静态网页与图表。
- **扩展生态厚**：MQTT 桥接把数据推进家庭自动化；Belchertown skin 一键生成堪比商业服务的实时大屏；对外还能同步 WeatherUnderground 等众包网络。
- v5 起改用标准 pip 安装、systemd 托管，部署心智从「玄学脚本」回归「Python 常规操作」。

上手难度：⭐⭐⭐（软件本身不难，门槛在接线与硬件协议）
适用人群：气象爱好者、农场与光伏运维、学校 STEM 课程。商业思路：给别墅/农场/农业物联网做气象站安装与数据面板定制，一套实施费加年维护费，硬件差价也是利润。

---

## 5. 2FAuth—— 把动态口令从手机里解放出来

**[Bubka/2FAuth](https://github.com/Bubka/2FAuth)** | Star：1千+（量级，千星小仓库）| 持续维护

一句话定位：自托管的网页版两步验证码管理器，替代 Google Authenticator 与 Authy。

它解决什么痛点：2FA 是安全标配，但验证码被锁死在单台手机 App 里——换机、丢失、进水，代价是逐个平台走一遍漫长的找回流程。Authy 停掉桌面端后这个问题更扎眼。2FAuth 的思路：验证码本质就是一串密钥，放在你自己部署的 Web 服务里，任何设备打开浏览器就能取。

核心功能拆解：

- **标准协议全覆盖**：TOTP/HOTP（RFC 6238/4226），市面上支持两步验证的服务几乎都能收；扫码、截图识别、手动粘贴密钥三种导入方式齐全。
- **浏览器扩展联动**：官方浏览器扩展通过 API 与服务端配对，登录网站时点一下即取码，体验不输手机 App。
- **组织能力**：分组、收藏、搜索，运维手里几十个服务的验证码终于不是一屏混沌；REST API 方便纳入自动化流程（注意：共享运维账号属高危操作，需配合权限隔离）。
- PHP/Laravel 技术栈，单个 Docker 容器 + 一个数据库卷即可跑，部署成本几乎为零。

上手难度：⭐⭐
适用人群：重度自托管玩家、需要跨设备取码的运维与开发者。变现空间有限但引流价值高——它是 homelab 套件里典型的「胶水件」，适合打包进付费的自托管部署服务包。

---

## 6. Komga—— 家庭书房的漫画与有声书中枢

**[gotson/komga](https://github.com/gotson/komga)** | Star：4千+（量级）| 活跃迭代

一句话定位：面向漫画、图像小说、杂志与有声书的自托管媒体服务器。

它解决什么痛点：照片库有 Immich，电影有 Jellyfin，但家里几个 TB 的漫画扫描件和有声书，多数人还躺在网盘文件夹里靠人肉管理。Komga 给这堆文件补上「图书馆管理员」：元数据刮削、系列归组、阅读进度同步，全平台客户端接力阅读。

核心功能拆解：

- **格式通吃**：CBZ/CBR、PDF、EPUB 一个不挑，单容器 + 挂载目录即完成部署，Java/Spring Boot 后端加 Vue 前端，资源占用温和。
- **协议生态是护城河**：OPDS v2 与页面流式传输（Page Streaming）意味着 Kobo、KOReader、Mihon（原 Tachiyomi）等阅读端原生接入——不锁客户端，这是它与同类竞品拉开差距的地方。
- **图书馆级管理**：多图书馆、合集、阅读清单、多用户与进度追踪，重复文件检测帮你清理多年攒下的双份扫描件。

上手难度：⭐⭐
适用人群：漫画/图像小说收藏者、有声书听众、家庭媒体服务器玩家。商业方向基本没有——但它是家庭 NAS 方案商的标准拼图，卖方案不卖软件。

---

## 本期横向对比

| 项目 | 类型 | Star（量级下限） | 上手难度 | 适用场景 | 商业潜力 |
|---|---|---|---|---|---|
| jj | 开发工具 | 1万+ | ⭐⭐⭐⭐ | 替代 Git 日常流 | 托管/评审服务 |
| listmonk | 邮件营销 | 1.4万+ | ⭐⭐ | Newsletter、私域出海 | 代运营收月费 |
| Kanidm | 身份安全 | 3千+ | ⭐⭐⭐⭐ | 团队统一登录 | 身份迁移托管 |
| WeeWX | IoT/硬件 | 1.2千+ | ⭐⭐⭐ | 气象观测、农业 | 安装+面板定制 |
| 2FAuth | 安全小工具 | 1千+ | ⭐⭐ | 自托管取码 | 方案打包件 |
| Komga | 媒体服务器 | 4千+ | ⭐⭐ | 家庭书房 | NAS 方案拼图 |

```mermaid
flowchart TD
    R["本期六仓地图"] --> A["开发工具"]
    R --> B["生意基建"]
    R --> C["硬件与生活"]
    A --> A1["jj 版本控制"]
    B --> B1["listmonk 邮件营销"]
    B --> B2["Kanidm 统一身份"]
    C --> C1["WeeWX 屋顶气象站"]
    C --> C2["2FAuth 动态口令"]
    C --> C3["Komga 漫画书房"]
```

## 本期观察

把这六个仓库摆在一起，能看到同一条主线：**它们都在把「按月付费的云服务」还原成「一次部署的自托管件」**。Mailchimp 卖订阅列表、Auth0 卖登录、气象厂商卖数据查看权——这些生意的共同点是边际成本极低、用户迁移成本极高，恰好是自托管软件最擅长攻击的软肋。而 jj 代表另一条线：不攻击商业模式，攻击的是十年未变的心智模型，这种「重写默认值」的项目历史上往往后期爆发力最猛（Docker、Rust 皆循此例）。

## 本期之最

- **最值得立即尝试：jj**。co-located 模式允许你在现有 Git 仓库里无痛试驾，不合口味随时切回，试错成本约等于零。
- **最有商业潜力：listmonk**。工具免费 + 明确的甲方（有发信需求的品牌）+ 现成的服务化路径（代运营、模板定制、送达率调优），是六仓中唯一能下个月就开票的。
- **最被低估：WeeWX**。十九年持续迭代、驱动生态覆盖市面绝大多数硬件，却始终停在千星级——它缺的不是质量，是一篇中文入门教程。这个空位，也许就是你的。

## 参考来源

*注：本期采集通道受限，以下为各项目官方仓库与站点（稳定地址），具体星标与更新时间请以页面实时数据为准。*

1. [jj-vcs/jujutsu - GitHub](https://github.com/jj-vcs/jujutsu) — jj 官方仓库，配套文档见 [jj-vcs.github.io/jj](https://jj-vcs.github.io/jj/)
2. [listmonk 官网](https://listmonk.app) — 项目主页与在线演示，仓库 [knadh/listmonk](https://github.com/knadh/listmonk)
3. [Kanidm 官网](https://kanidm.com) — 架构说明与部署手册，仓库 [kanidm/kanidm](https://github.com/kanidm/kanidm)
4. [WeeWX 官网](https://www.weewx.com) — 硬件支持列表与用户社区，仓库 [weewx/weewx](https://github.com/weewx/weewx)
5. [2FAuth - GitHub](https://github.com/Bubka/2FAuth) / [Komga 官网](https://komga.org) — 两项目的部署文档与功能清单

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
