openGym 是一个开源自托管的健身与体重追踪平台,支持制定训练计划、记录超级组、热身与有氧训练,并能可视化各肌群的训练、疲劳与退化状态。基于 React、Node.js 与 Docker 构建,采用 Passkey 无密码登录,可从 FitNotes、Strong、Hevy 一键迁移数据,让训练数据真正掌握在自己手中。
适用人群:1. 注重数据隐私与主权的健身爱好者:不想把多年训练记录交给商业平台,担心涨价、停服或数据被锁定;2. 拥有 NAS 或 VPS、热衷自托管服务的开发者与技术极客:希望用 Docker 快速搭建私有健身数据平台;3. 正在使用 FitNotes、Strong 或 Hevy 的付费用户:希望免费迁移历史数据、摆脱订阅费与广告的困扰。
适用场景:1. 日常训练执行:在手机上以 PWA 形式按周计划进行引导式训练,实时记录超级组、热身组与有氧内容,多设备自动同步;2. 长期体能管理:通过肌肉训练、疲劳与退化状态的可视化分析,结合体重曲线科学调整训练周期,避免过度训练或肌群失衡;3. 家庭私有化部署:在家庭 NAS 或个人服务器上搭建,供家人与训练伙伴共用一个完全私有的健身数据空间。
推荐理由:openGym 把商业健身应用的核心体验完整搬进了自托管世界:超级组记录、肌肉疲劳分析、Passkey 登录、PWA 体验一应俱全,还能无缝导入 Hevy 等平台的历史数据。近万 Star 与活跃的 Discord 社区证明其实力,是数据主权优先者的首选。
项目定位与背景
健身追踪市场长期被 Hevy、Strong 等商业产品占据,用户的训练数据与体重记录都存放在厂商服务器上,一旦涨价、停服或功能改版,多年积累的数据便岌岌可危。openGym 的口号直击痛点:一个你真正拥有的自托管健身与体重追踪器。项目由开发者 DuarteSantos8 发起,采用 AGPL v3 协议开源,目前已在 GitHub 收获 9812 Star 与 1211 Fork,并登上 Trendshift 趋势榜,社区活跃度可见一斑。
核心功能与技术架构
功能层面,openGym 覆盖力量训练的完整闭环:支持制定每周训练计划、引导式训练执行,可记录超级组、热身组与有氧训练等复杂动作结构,同时追踪体重变化。其独有的肌肉状态分析能直观展示哪些肌群得到了训练、哪些处于疲劳状态、哪些正在退化,为调整训练安排提供数据依据。技术栈上,前端是 React 加 Vite 构建的 PWA,手机上可像原生应用一样安装使用;后端基于 Node.js,通过 Docker 一键部署;登录采用 WebAuthn Passkey 无密码认证,兼顾安全与便捷。数据完全存储在自己的服务器上,多设备自动同步。项目标签中还包含 MCP,为接入 AI 助手预留了想象空间。
创新点与亮点
第一是数据主权:所有训练记录与体重曲线都在自己手里,配合 Passkey 登录,隐私与安全兼得。第二是肌肉疲劳与退化可视化,这在同类自托管项目中并不多见,让练没练到位变得可量化。第三是无缝迁移:支持从 FitNotes、Strong、Hevy 一键导入历史数据,大幅降低切换成本。第四是 PWA 与 Android APK 双形态,既有网页的轻量,也有接近原生的体验。此外项目提供在线 Demo、完善的自托管文档、路线图与变更日志,CI 测试与覆盖率徽章齐全,工程质量在个人开源项目中属上乘。
与同类项目对比
相比 Hevy、Strong 等商业应用,openGym 免费开源、无订阅费、无广告,数据自主可控,代价是需要自行部署维护。与 wger、FitTrackee 等老牌自托管健身项目相比,openGym 界面更现代,对超级组、热身等真实训练场景的建模更细致,肌肉疲劳分析也是差异化亮点;不过老牌项目生态更成熟、功能维度更广。总体看,它在易用性与数据主权之间取得了良好平衡,是新锐之选。
上手指南或快速开始
上手路径非常友好:可先访问官网 opengym.ch 的在线 Demo 体验完整功能;确认满意后,参照仓库中的自托管指南,用 Docker 几条命令即可部署到家用 NAS 或 VPS;随后配置反向代理与 HTTPS,注册 Passkey 即可开始使用。老用户可在设置中从 FitNotes、Strong 或 Hevy 导入数据;移动端可直接安装 PWA 或下载 Android APK。
总结与展望
openGym 精准切中了健身人群对数据主权的诉求,功能完成度高、文档完善、社区活跃,是自托管健身追踪领域值得关注的明星项目。当然它也有短板:需要自行承担运维成本,iOS 端暂无原生应用,部分高级分析功能有待路线图逐步兑现。如果你正在寻找一个不被商业平台绑架的训练记录工具,openGym 值得一试。
项目信息
| 项目名称 | DuarteSantos8/openGym |
| 编程语言 | JavaScript |
| Star 数 | 9812 |
| Fork 数 | 1211 |
| 主题标签 | bodyweight, docker, fitness, fitness-tracker, gym, health, mcp, nodejs, passkeys, progressive-web-applications, pwa, react, self-hosted, self-hosting, vite, webauthn, weightlifting, workout-tracker |