首页 › weekly › 8个开源健身神器:数据归自己

本期思路:把 Keep 和 Strava 的订阅费省下来

健身赛道是订阅制的重灾区:Keep 会员、Strava 高级版、Hevy Pro,一年下来几百块只是起步,更别提你的训练数据、跑步轨迹、睡眠心率全锁在别人服务器里。本期第三轮挖掘,我们避开前两轮的地图、推送、机器人等方向,转向运动健身这条冷门但刚需的赛道——8 个仓库覆盖「力量训练、户外耐力、身体数据、硬件外设、数据底座」全链路,从开箱即用的 App 到可以二开成生意的平台级项目都有。其中有几个星数很低,但正是这种「低星精品」才是自托管社区最值得挖的富矿。

(注:文中星数为约数,随时在涨,请以仓库页面为准)


1. snouzy/workout-cool — 开源健身教练平台

仓库:snouzy/workout-cool | 千星量级,热度增长快 | 活跃维护

一句话定位:Hevy 和 Keep 训练计划功能的开源平替,核心卖点是「教练 → 学员」的双边关系。

这个项目 2025 年 3 月在 Reddit 上首发后几天内暴涨数千星,属于典型的爆款叙事:作者是一个想给学员排课的教练,发现市面工具要么收费贵要么不给导出数据,索性自己写了一套。技术栈非常现代:Next.js + TypeScript + shadcn/ui + PostgreSQL,Docker Compose 一条命令起本地。核心功能拆开看有三层:动作库(自带示范动图)、训练计划编排(拖拽式)、以及最有商业想象力的教练端——教练可以管理多名学员、下发计划、追踪完成度。

上手难度:⭐⭐

适用人群:私教、健身工作室、想给自己排计划的训练者。变现思路也现成:自托管免费,官方卖云托管订阅;二开方向是把「教练工作台」做成面向健身房门店的 SaaS,国内健身工作室管理软件普遍又贵又丑,这个赛道有空隙。

2. wger-project/wger — 老牌训练管理全家桶

仓库:wger-project/wger | 数千星,十年老项目 | 持续维护

一句话定位:自托管健身管理器的祖师爷,训练 + 营养 + 体重三合一。

wger 从 2010 年代就开始做了,Django REST Framework 后端配 Flutter 客户端,功能覆盖训练计划、营养日记、身体围度、训练日历。它真正的隐藏价值在动作数据库:wger 维护了一套结构化的运动动作库并开放 API,被大量第三方健身 App 复用——这是典型的「_application 层不值钱,数据层才是护城河」案例。官方在 wger.de 提供托管版,等于自带商业模型参照。

上手难度:⭐⭐⭐(Django 部署比 Docker 全家桶略费手)

适用人群:想要长期数据资产的重度训练者、想基于现成动作数据做衍生产品的开发者。二开方向:把 wger 的 API 当作动作数据底座,套一个微信小程序壳,就能做出一个可商用的健身小程序原型。

3. SamR1/FitTrackee — 自托管版 Strava Lite

仓库:SamR1/FitTrackee | 千星上下 | 活跃维护

一句话定位:把骑行、跑步的 GPS 轨迹从 Strava 手里拿回来。

FitTrackee 是 Python(Flask)+ Vue 的自托管户外运动平台:导入 GPX/FIT 文件、OpenStreetMap 轨迹回放、按周月年的运动量统计、分段配速。它刻意不做社交feed,只做「自己的运动档案库」——这恰好是很多骑行者转向自托管的理由:Strava 能随意改条款,你的十年轨迹档案说锁就锁。部署走 Docker,数据全在自己家里。

上手难度:⭐⭐⭐

适用人群:骑行党、跑者、轨迹数据控。二开方向:给车友会/跑团做私有活动存档站,配合手表导出 FIT 文件的批处理脚本,可以打包成「跑团数据托管」小服务。

4. joaovitoriasilva/endurain — 更年轻的耐力运动自托管服务

仓库:joaovitoriasilva/endurain | 低星小而美(数百星级别) | 持续开发中

一句话定位:FitTrackee 的年轻竞品,主打「Strava 的界面观感 + 自托管的数据主权」。

endurain 是典型的低星宝藏:项目时间不长,但功能迭代很快,Docker 部署,Web 端颜值在自托管健身项目里属于第一梯队。核心能力围绕活动管理(自动同步 Garmin/Strava 数据)、装备里程追踪(跑鞋公里数提醒换鞋)、心率区间统计。据其 README,它通过 API 桥接的方式从 Garmin Connect 拉取活动,这解决了自托管耐力运动最大的痛点——「手表数据怎么自动进来」。

上手难度:⭐⭐⭐

适用人群:有 Garmin 手表、又不想把数据全权交给 Strava 的耐力玩家。星数低意味着文档和生态还不厚,遇到坑要自己读源码——但这也意味着现在是参与共建、刷存在感的最佳窗口期。

5. OpenTracksApp/OpenTracks — 隐私硬核的 Android 运动记录

仓库:OpenTracksApp/OpenTracks | 千星量级 | F-Droid 分发,长期维护

一句话定位:一款「一次网络权限都不需要」的 GPS 运动记录 App。

OpenTracks 的硬核之处在于架构决策:整个 App 不申请任何网络权限,记录完的轨迹只存在本地,想看地图就装配套的 OSMDashboard 加载离线地图。支持 BLE 心率带、踏频器等传感器,导出标准 GPX/KML,天然能和 FitTrackee、endurain 这类自托管服务拼成完整链路——手机端采集,服务端归档。F-Droid 直接安装,零成本试用。

上手难度:⭐

适用人群:隐私敏感的跑者、户外爱好者,以及任何想给家里老人装个「不会弹广告、不会要会员」运动软件的人。它证明了没有云服务的运动 App 一样能功能完整。

6. oliexdev/openScale — 把百元蓝牙体脂秤变成开源硬件

仓库:oliexdev/openScale | 千星上下 | 维护多年

一句话定位:一个 App,接管市面上一大票蓝牙体脂秤的通信协议。

openScale 是本期最「跨界」的项目:它是 Android 端 App,通过逆向各家蓝牙体脂秤的 BLE 协议,直接读取小米、Beurer、Medisana、Yunmai 等几十款秤的原始测量数据——包括很多厂商在自家 App 里藏着不给看的阻抗原始值。你不用买昂贵的智能秤,百元级蓝牙秤 + openScale 就能得到体重、体脂、肌肉量、水分的长期曲线,数据存本地不经过厂商服务器。

上手难度:⭐⭐(买对秤型号是唯一门槛,README 有兼容列表)

适用人群:减脂期重度称重用户、硬-net 件玩家。二开方向:它本质上是一份「体脂秤协议逆向大全」,做智能健康硬件的团队可以直接拿去省掉一轮逆向工程。

7. davidhealey/waistline — 极简离线卡路里追踪

仓库:davidhealey/waistline | 低星(千星以下) | F-Droid 分发

一句话定位:无账号、无广告、无云端的体重/卡路里记录器。

Waistline 是「小而美」三个字的具象化:一个条形码扫描接 Open Food Facts 开放食品数据库,加上手动录入和体重曲线,就构成了全部。它是少数认真做离线体验的热量追踪工具——数据导出为 JSON/CSV,换手机不丢数据,不需要注册任何账号。对被 MyFitnessPal 广告轰炸过的人来说,这个项目的极简是一种救赎。

上手难度:⭐

适用人群:只想简单记个体重和热量的普通人。对开发者而言它是个好教材:如何用 Cordova/JS 在移动端做出和原生 App 体验相当的轻量工具,代码量小到可以整个读完。

8. tcheneau/GarminDB — 手表数据的终极归宿

仓库:tcheneau/GarminDB | 千星上下 | 持续维护

一句话定位:把 Garmin Connect 云端的所有数据,定时同步进自己的 SQLite 数据库。

GarminDB 是「数据主权」的终极形态:一组 Python 脚本通过 Garmin 的非官方 API,把活动、步数、睡眠、心率、静息心率、体重等全部指标拉下来,解析后落进结构化的 SQLite 表。再配一个 Grafana 就能搭出比 Garmin 官方 App 强得多的看板——比如把睡眠质量和训练负荷放在同一时间轴上交叉分析。作者本人就是用这套系统追踪自己多年的健康数据。

上手难度:⭐⭐⭐⭐(要跑 Python 定时任务,API 变动时偶尔要更新适配)

适用人群:戴 Garmin 手表的数据控、量化自我玩家。二开方向:国内高驰、佳明的用户群不小,「健康数据代管+个性化看板」可以做成面向小众硬核玩家的付费服务。


本期横向对比

仓库 方向 端 星数(约) 上手难度 一句话场景
workout-cool 力量训练平台 Web 自托管 千星级,增速快 ⭐⭐ 教练给学员排课
wger 训练+营养全家桶 Web+App 数千星 ⭐⭐⭐ 长期训练档案
FitTrackee 耐力运动存档 自托管 Web 千星上下 ⭐⭐⭐ GPX 轨迹归档
endurain 耐力运动服务 自托管 Web 数百星 ⭐⭐⭐ Garmin 自动同步
OpenTracks GPS 运动记录 Android 千星量级 ⭐ 离线隐私跑步
openScale 体脂秤协议 Android 千星上下 ⭐⭐ 白菜价体脂秤
Waistline 卡路里追踪 Android 千星以下 ⭐ 无账号记热量
GarminDB 健康数据底座 脚本+SQLite 千星上下 ⭐⭐⭐⭐ 手表数据进 Grafana

全景图

flowchart LR
  subgraph 采集端
    A["OpenTracks"]
    B["openScale"]
    C["Waistline"]
  end
  subgraph 服务端
    D["workout-cool"]
    E["wger"]
    F["FitTrackee"]
    G["endurain"]
  end
  subgraph 数据底座
    H["GarminDB"]
    I["SQLite 与 Grafana 看板"]
  end
  A -->|GPX 轨迹导入| F
  H -->|定时同步| I
  D -->|训练计划| J["自建运动数据栈"]
  E -->|动作库 API| J
  G -->|活动与装备| J

本期之最

参考来源

  1. snouzy/workout-cool — 开源健身教练平台仓库
  2. wger-project/wger — 自托管训练与营养管理器仓库
  3. SamR1/FitTrackee — 自托管户外运动追踪仓库
  4. OpenTracksApp/OpenTracks — 隐私优先 Android 运动记录仓库
  5. oliexdev/openScale — 开源蓝牙体脂秤客户端仓库

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