openGym Skill:完全自托管的健身追踪器,数据主权归你
openGym 是当前 GitHub Trending 上最热门的健身工具类开源项目之一,2026 年 10 月初单周新增 star 超过 3,000 颗。它的核心定位一句话:一个让你完全掌控自己健身数据的自托管健身追踪器,不依赖任何第三方订阅,数据存在你自己的服务器上。这恰好戳中了近年来用户对 Hevy、Strong、JEFIT 等健身 App 数据主权缺失的痛点——那些 App 往往需要付费订阅才能解锁高级功能,且你的训练记录被锁定在它们的云端。
功能与原则
openGym 提供完整的个人健身管理工作流:
- 周训练计划:支持编排超级组(Superset)、热身组、有氧训练
- 动作库:收录 1,324 个动作,带动画演示,可按肌肉群和器械筛选
- 引导式训练记录:按组记录重量、次数、休息时间,自动计算疲劳状态
- 肌群状态分析:展示每个肌群本次训练量、当前是否疲劳、是否长期未训练
- 体重追踪:支持目标线设置,与训练记录同步查看趋势
- 导入/导出:从 FitNotes、Strong、Hevy 导入历史记录,数据可完整迁出
设计原则:数据必须属于用户。所有数据存在用户自己的服务器或设备本地,passkey 登录(Face ID / Touch ID / WebAuthn)保证账号安全,多设备间通过 CRDT 机制同步而非覆盖。
认可度
openGym 在 2026 年 10 月初连续多日出现在 GitHub Trending 健身类榜首。截至 2026-10-05,GitHub 约 3,585 颗星、599 个 fork,周增长约 800–1,000 颗 star(来自多个第三方数据源交叉验证)。项目采用 AGPL-3.0 许可证,代码完全开源。
链接
GitHub:https://github.com/DuarteSantos8/openGym
原作者
GitHub 用户 @DuarteSantos8,独立开发者,专注个人健身工具与自托管应用。openGym 是其唯一大规模走红的项目,靠口碑和健身社区传播获得关注。
介绍
openGym 脱胎于一个简单的需求:现有的健身追踪 App 都要收费、数据还被锁在别人服务器上。开发者想要一个可以自己部署、完全掌控数据、同时功能又不输商业 App 的替代品。
用 Docker Compose 一行命令即可完成部署,数据默认存储在本地文件夹,passkey 登录不依赖任何外部身份提供商。多设备同步采用 CRDT(无冲突复制数据类型)机制,两台设备同时记录不会产生覆盖丢失。训练记录可以导出为完整 JSON,理论上随时可以迁出到任何其他平台。
项目还内置了 MCP(Model Context Protocol)目录和 CLAUDE.md 文件,说明开发过程中借助了 AI 编程工具,是 2026 年 AI + 自托管工具结合的一个典型案例。
特点
- 1,324 个动作库:带动画演示,可按肌肉群或器械筛选,新手也能快速找到目标动作
- 肌群疲劳追踪:训练后自动分析每个肌群的训练量与恢复状态,帮助避免过度训练
- CRDT 多设备同步:无需中心协调,两台设备同时离线记录也能正确合并
- Passkey 无密码登录:支持 Face ID、Touch ID 等生物识别,彻底摆脱密码管理
- 导入三大主流 App:FitNotes、Strong、Hevy 数据无缝迁移,降低换 App 成本
- PWA 离线可用:安装到手机桌面后即使断网也能正常记录,恢复网络后自动同步
- 自部署无订阅:Docker Compose 一键跑起来,后续零费用,数据永久属于自己
使用方法
安装(Docker Compose):
git clone https://github.com/DuarteSantos8/openGym.git
cd openGym
docker compose up -d
首次启动后访问 http://localhost:3000,用 passkey(设备生物识别)完成注册即可。
从旧 App 导入数据:
支持 CSV 导入(FitNotes)或 API key 导入(Strong、Hevy),文档中有详细步骤。
无 Docker 环境:项目也提供 Android APK 和浏览器在线演示,可在不部署的情况下先体验。
使用场景与人群
适用场景:个人健身记录、周计划制定、多设备数据同步、训练数据迁出旧 App、自托管健身数据管理。
目标用户:注重数据隐私和所有权的健身爱好者、不想付订阅费的免费工具党、Homelab 玩家、自托管软件爱好者。非适用场景:需要团队管理、教练协作功能的企业级健身管理(这类需求建议用商业平台)。
输入与输出案例
案例 1:记录一次上肢训练
输入:用户在 app 中选择「推」日计划,系统预填本周已配置的哑铃卧推、杠铃推举、双杠臂屈伸等动作组。用户按组输入重量和次数,完成后系统自动更新各肌群(胸、肩、三头)的训练量与疲劳状态。
输出:训练结束后显示本次总容量、各肌群负荷分布,以及与上次同等训练的对比(重量是否提升、容量是否变化)。
案例 2:从 Hevy 迁移数据
输入:用户进入「设置 → 导入」,选择 Hevy,粘贴 API key,系统自动读取历史训练记录并在后台完成导入。
输出:所有历史训练记录出现在 openGym 的历史页面中,包含动作、组数、重量、日期完整信息,可在导入后直接查看长期趋势图。
评论区
登录后可评论。