首页 › weekly › 把人生数据搬回家:8个开源小仓库

开头说明一句:本期所有候选均经过环境限制下的最大可行性核验,未能实时联网抓取的部分,星级与更新状态均按撰写时公开快照给出量级描述,请以仓库页面实时数据为准——量级判断有把握,精确到个位的数字本期不编。


本期思路:把「量化自己」这件事从云手里抢回来

前三轮我们看过配音棚、家庭图书馆、桌面工厂,这期换个一直没人写过、但每个人天天都在产生数据的领域:个人数据主权。你的屏幕时间在手机厂商手里,你的体重体脂在秤厂 App 手里,你的跑步轨迹在运动平台手里,你的投资记录在券商手里,甚至连你家祖上三代的家族记忆,都躺在某个 genealogy 平台的付费墙后面。本期 8 个仓库,全部围绕一条主线:数据在你自己的硬盘上,服务由你自己托管,格式开放随时搬走。其中既有两万星级的现象级爆款,也有三位数星级的冷门手艺活,硬件门槛最低为零(浏览器就能跑),最高的不过一根 USB 气象传感器。


1. changedetection.io | 两万星级上下 | 持续高频更新

一句话定位:给互联网装一个「变化警报器」——哪个页面变了、哪个商品补货了、哪家降价了,它比你先知道。

网页变化监控这事儿听起来朴素,但 changedetection.io 把它做到了现象级:单开发者项目(dgtlmoon)长年霸榜 GitHub Trending,靠的是把一个痛点切得极细——只监控变化,别的都不做。核心能力三层:普通 HTML 文本 diff(抓价格、抓「有货/无货」状态词);XPath/JSON 路径精确提取(只盯某个 DOM 节点,页面改版也不误报);配上内置 Playwright 浏览器后能渲染 JavaScript 页面,连单页应用、登录后才可见的内容都能盯。触发条件支持「价格低于阈值」「关键词出现」再报警,通知走 ntfy、Discord、Telegram、Webhook 等上百条通道。稀缺商品监控、机票价格蹲守、竞品页面巡检、导师主页放出新招生通知——都是典型用法。

上手难度:⭐⭐(docker run 一条命令)

适用人群:剁手党、薅羊毛党、做电商选品和竞品监控的小团队。它本身也是「开源核心 + 官方付费托管版」商业模型的教科书,想研究怎么把一个开源工具卖成订阅服务的,这个仓库值得当案例拆。


2. ActivityWatch | 1.3 万星级左右 | 多端持续维护

一句话定位:开源版 RescueTime——全平台记录你每一分钟花在了哪个窗口、哪个标签页、哪个应用上,数据 100% 本地。

ActivityWatch 的架构值得单独说:它不是一个大而全的 App,而是「核心服务 + 一堆 watcher 插件」的模块化设计。桌面端有窗口 watcher、AFK watcher(判断你是不是真在电脑前)、编辑器 watcher;浏览器端有 Chrome/Firefox 扩展记录标签页停留;Android 端独立 App 记录应用使用时长。所有数据进本地 SQLite,通过统一 REST API 暴露,官方自带 Web 界面做时间线可视化和分类统计(哪个域名算「工作」哪个算「摸鱼」可自定义规则)。

它的杀手锏是那条 API:数据是你的,意味着你可以写自己的分析脚本——比如每周自动生成一份「深度工作时长」日报推送到自己邮箱,或者把数据喂给 Grafana 画年度报告。这正是云厂商的屏幕时间功能永远做不到的。

上手难度:⭐⭐(各平台装客户端即用,进阶玩法要写点代码)

适用人群:自由职业者、按小时计费的顾问、想治「时间失忆症」的知识工作者。二次开发方向:给它写行业专用的分析报告插件,或者接 LLM 做自动时间审计——这是个没人占住的坑。


3. Ghostfolio | 5000 星级上下 | 活跃迭代中

一句话定位:自托管的投资组合看板,把散落在券商、基金平台、加密钱包里的资产拼成一张实时总表。

大多数人炒股买基金的真实痛点不是交易,是看不清全貌:A股一个 App、美股一个 App、定投又一个 App,收益归因全靠心算。Ghostfolio(TypeScript + NestJS + PostgreSQL)解决的就是这件事:手动录入或导入持仓后,它统一计算多币种市值、股息现金流、年度绩效,还有个招牌功能叫 X-Ray——组合透视,能发现你的「两只基金」底层重仓了同一批股票,你以为分散了其实重仓了三遍。对 FIRE(财务提前退休)人群,它内置了 FIRE Number 计算和被动收入覆盖率追踪。

许可证是 AGPL-3.0,官方同时运营付费云版——自托管完全免费无功能阉割,懒得运维就付费用托管版,这个模型跑了好几年,验证过商业闭环。

上手难度:⭐⭐⭐(Docker Compose 起,首次录入持仓要点耐心)

适用人群:多平台投资者、FIRE 实践者、家庭财务的主理人。注意它偏「组合追踪」而非「记账」,和 Firefly III 这类记账工具是互补关系。


4. Gramps | 2000 星级上下 | 二十余年长青

一句话定位:从 2001 年活到今天的家谱软件老祖,把家族记忆从商业化族谱网站的付费墙里解放出来。

家谱是典型的「平台锁定重灾区」:在某个商业网站上录了十年家族资料,想搬家时发现导出格式处处受限,甚至人走了资料就没了。Gramps 是 GNOME 生态下的开源答案:GPL 协议,数据存本地 SQLite/XML,支持完整的个人、家庭、事件、来源引用、媒体档案模型——「来源引用」这点是它和玩具软件的分水岭,正规家谱研究要求每个事实都能追溯到史料,Gramps 的数据模型就是按 genealogy 学术规范设计的。GUI 之外还有配套的 Gramps Web 项目,可以自托管一个全家协作的族谱站,让长辈在浏览器里补资料、看树。

对普通用户它是「给家族留档」的工具;对 genealogy 爱好者它是标准基础设施。Star 数不高是因为受众天然垂直,但项目 24 年不断更,社区稳如老狗。

上手难度:⭐⭐⭐(单机版容易,Web 协作版要一点 Docker 功底)

适用人群:修家谱的家庭、地方志工作者、口述历史记录者。变现思路几乎写在脸上:面向宗亲会、家谱修撰工作室的托管服务。


5. WeeWX | 1000 星级出头 | 长期稳定维护

一句话定位:业余气象站的操作系统——接上你的桌面气象设备,自动记录、归档、出报表、发数据。

买过百元级气象站的人都知道那套体验:设备配个粗糙的 App,数据锁在厂商云里,想导历史记录门都没有。WeeWX 是整个业余气象圈公认的解法:这个 Python 项目从 2008 年写到现在,支持 Davis Vantage、Ecowitt 等几十种主流气象硬件,也支持纯软件数据源。它的架构极干净:驱动层收硬件数据 → 归档进 SQLite/MySQL → 报告引擎按模板生成静态页面(自家网页、月度年报表、图表)→ 想进阶就把数据桥接进 InfluxDB + Grafana 自由可视化,或者上报 WeatherCloud 等社区网络。5.x 版本后改用 pip 安装,树莓派上十分钟起步。

它和本期其他仓库的气质不同:不是「App」,是「基础设施」——低调、稳定、一次装好跑十年。气象数据讲究的是长时序连续性,WeeWX 用户里跑着十年不断档档案的大有人在。

上手难度:⭐⭐⭐(要一台常开的小主机和一块气象硬件)

适用人群:气象爱好者、农业大棚主、太阳能电站运维、需要本地环境数据做决策的极客。二次开发:给茶园、养殖场做「小气候档案」服务,是条没人卷的路。


6. openScale | 约 1000 星级 | Android 端持续维护

一句话定位:让小米、Beurer、Medisana 等几十款蓝牙体脂秤甩掉官方 App,数据直接进你自己的库。

体脂秤是隐私重灾区:秤本身只是个电阻测量仪,真正算出体脂率的是厂商 App——顺手把你的体重曲线、住址、作息一起收走。openScale 的思路是釜底抽薪:直接在 Android 端和秤蓝牙通信,破解并实现了几十款主流秤的私有协议,本地完成体脂、水分、肌肉量、骨量的阻抗公式换算。数据存在手机本地,也可以选择同步到自托管方案,彻底绕开厂商云。它还内置了体重趋势平滑(体重日波动很大,它用移动平均看真实趋势)和目标追踪。

作为「逆向工程 + 健康自持」二合一的项目,它 1000 星的体量严重低估了其技术含量——每个被支持的秤型号背后都是一次协议逆向。

上手难度:⭐⭐(装 App 配对即用,先查支持列表确认自己的秤)

适用人群:减肥/增肌人群、不信任厂商 App 的隐私党、给爸妈装秤的子女。和下一款的 OpenTracks 搭起来,就是一套完整的「身体数据自持」组合。


7. OpenTracks | 2000+ 星级 | 活跃维护

一句话定位:一个连「网络权限」都不申请的跑步骑行记录 App——轨迹数据出不了你的手机。

运动 App 的商业模式大家都懂:免费记录,数据变现。OpenTracks(Apache-2.0,F-Droid 可装)把姿态摆到了极致:不联网、无广告、无账号,GPS 轨迹、配速、爬升全部本地存储,支持蓝牙心率带、踏频器、车速传感器等 ANT+/BLE 外设。记录完想分享?它有个聪明的「Dashboard API」设计:生成一个仅在本机的统计页,通过系统分享调用其他 App 展示——全程不经任何服务器。轨迹可导出 GPX/KML,和任何地图工具兼容。

它不提供社交、不提供路线推荐、不提供训练计划,就是一个纯粹的记录仪。在运动健康数据频繁被曝滥用的今天,「功能做减法」反而是最强的产品语言。

上手难度:⭐(装上就跑)

适用人群:跑者、骑行党、徒步客中的隐私敏感者;开源硬件玩家(配合自建轨迹可视化管线)。


8. Healthchecks | 3000 星级上下 | 稳定运营多年

一句话定位:死人开关式监控——不检查你的服务活不活,而是检查你的定时任务「有没有来报到」。

传统监控盯的是「出错了报警」,但定时任务最阴险的故障是静默失败:备份脚本没跑、证书续期没触发、爬虫悄悄挂了——没有报错,什么都不会响,等你发现时已经损失了三个月的备份。Healthchecks 的模式反过来:你的 cron 任务每次跑完就向它发一个 HTTP ping,如果约定时间没等到 ping,它才报警。就这一个动作,覆盖了所有「该发生而没发生」的故障。Python/Django 写成,自托管极轻,集成 Slack、邮件、Webhook、ntfy 等一堆通知通道,还支持「任务跑太慢」告警(grace 超时)。

它同样是开源商业化的经典样本:作者 Pēteris Caune 靠官方托管版的付费团队功能养了这个项目多年——证明「监控」这个品类,个人用免费自建、公司用付费托管,两个市场可以由同一份代码吃下。

上手难度:⭐⭐(会写 crontab 就会用)

适用人群:独立开发者(监控自己的 VPS 定时任务)、小团队运维、写自动化脚本的任何人。个人自建零成本,团队场景可以直接抄它的收费模型。


横向对比

仓库 领域 星级量级 平台 上手难度 一句话场景
changedetection.io 网页监控 ~20k 自托管 Web ⭐⭐ 蹲降价蹲补货
ActivityWatch 时间追踪 ~13k 全平台 ⭐⭐ 治时间失忆
Healthchecks 任务监控 ~3k 自托管 Web ⭐⭐ 备份静默失败报警
OpenTracks 运动轨迹 2k+ Android ⭐ 无网记录跑步
Gramps 家谱 ~2k 桌面+Web ⭐⭐⭐ 家族记忆留档
Ghostfolio 投资组合 ~5k 自托管 Web ⭐⭐⭐ 全资产一张表
WeeWX 气象站 ~1k 树莓派/主机 ⭐⭐⭐ 屋顶气象数据管线
openScale 体成分 ~1k Android ⭐⭐ 体脂秤去厂商化

本期版图

mindmap
  root((个人数据主权))
    看时间
      ActivityWatch
      本地SQLite加REST API
    看身体
      openScale
      OpenTracks
      蓝牙直连不上云
    看钱包
      Ghostfolio
      组合透视X-Ray
    看家庭
      Gramps
      来源引用可追溯
    看环境
      WeeWX
      十年气象档案
    看世界
      changedetection
      Healthchecks
      变了和没来都报警

本期之最

参考来源

  1. changedetection.io - GitHub — 网页变化监控主仓库,功能说明参考其 README
  2. ActivityWatch - GitHub — 时间追踪架构与 watcher 模块说明来源
  3. Ghostfolio 官网 — 功能列表与开源+云版商业模型说明
  4. WeeWX 官网 — 硬件支持列表与 5.x 安装方式
  5. Healthchecks 官网 — dead man's switch 模式与托管版说明

[!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学通信知识星球海报-扫码加入