上周三深夜,我盯着 Strava 开发者页面上一行冰冷的变更通知,终于动了删掉五年绑定的念头。API 免费套件对普通用户关上了大门,原本那个连接 Apple Watch、Garmin 和各色穿戴设备的枢纽突然就断了。我不在乎排行榜,也不关心陌生人刚跑完几公里,我只是需要一条自动传送带,把不同设备产生的数据汇总到一个地方。这份便利一消失,第一次晨跑后的手忙脚乱就逼我走进了自建之路。

一直泡在自托管圈子里,我挑方案只有一个硬标准:不能哪天又因为别人改规则把我的运动档案锁死。我需要一个属于自己、能持续保留几十年的健身数据库,不是某个随时涨价的订阅服务。试过几个选项后,我最终勾定了两个风格迥异却刚好互补的开源项目——Endurain 和 FitPub。一个管数据的严肃沉淀,一个补上我想要的轻量展示,两样东西搭起来,相当于从零手搓了一套不依赖任何商业平台的健身跟踪宇宙。

打开网易新闻 查看精彩图片

Endurain 最抓我的地方是它对数据所有权的态度。整个应用不往任何厂商服务器上丢东西,直接跑在我自家的 NAS 上。训练记录、活动文件、路线、健康指标,每一步都躺在自己的硬盘里。运动数据是经年累月的东西,那些反复跑过的路线、穿坏的跑鞋里程,本来就该像旧日记本一样,不是非得上传到哪家公司的云端才算数。而且标准格式 GPX、TCX 通吃,不怕以后换表换生态;甚至在我 API 权限还没完全回收时,它还能从 Garmin Connect 和 Strava 把旧数据直接抓进来,过渡得无声无息。

用上之后最大的快乐,其实是终于告别了 Strava 拼命推送给我的“社交激励”。打开 Endurain 仪表盘,扑面而来的是训练视图、配速曲线、距离分段和装备磨损追踪,没有一条我压根不关心的动态。最近我开始刻意记录跑鞋的累计里程,以前全靠 Garmin Connect 做这件事,现在 Endurain 同样完成得利落,甚至让我更清楚地看到每双鞋的服役曲线——这大概就是数据真正在自己手上的踏实感。

FitPub 的角色要轻巧得多,更像是搭建在 Endurain 数据库上的一个小前端。它只做一件事:让部分想分享的活动记录以极简的静态页面形式对外,而不是非要回到某个封闭平台去复制一条社交动态。两个项目一起,我的健身流水线变成了:设备自动记录 → 文件同步到 NAS → Endurain 归整分析 → FitPub 挑着展示。没有哪个环节需要靠第三方 API 的施舍。

回过头看,Strava 关闭免费接口那一下,反而替我解开了一个隐形枷锁。与其依赖一个随时可能转向的聚合服务,不如把控制权要回来,按自己的习惯搭一条轻量且永久的健身数据管道。对不在乎排行榜、只想安全保管自己每滴汗的人来说,这套组合或许比任何大厂订阅都更解渴。