openGym完全指南:规划训练、记录组数、追踪肌肉的自托管健身应用全景解析
【免费下载链接】openGymSelf-hosted gym & body-weight tracker — plan routines, log workouts (supersets, warm-ups, cardio), see which muscles are trained, fatigued or detrained, import from FitNotes/Strong/Hevy, passkey login. Your data, your server.项目地址: https://gitcode.com/GitHub_Trending/op/openGym
openGym 是一款自托管健身应用(self-hosted gym & body-weight tracker),你可以用它规划每周训练、记录每一组负重、追踪哪些肌肉在恢复、哪些已过度疲劳。与市面大多数健身 App 不同:没有账号体系、没有订阅费、没有遥测,所有数据都存放在你自己服务器上的一个文件夹里。本指南带你完整了解它的核心功能、部署方式和进阶玩法。
为什么选择 openGym:数据主权自托管健身
传统健身 App 的通病是:数据存在厂商服务器上、功能靠订阅解锁、公司停运数据就没了。openGym 反其道而行——
- 🏠你的数据你的服务器:所有记录存在
./data目录,备份一个文件夹即备份一切 - 🔑Passkey 登录:Face ID / 指纹登录,密码登录可按实例开启
- 📶离线可用:断网时本地记录不丢失,恢复联网自动同步
- 🌍17 种语言:含从右到左书写的阿拉伯语
3 步快速部署:Docker 一键搭建自己的 openGym
只需要装了 Docker Compose 的机器(树莓派或 VPS 均可):
git clone https://gitcode.com/GitHub_Trending/op/openGym cd openGym cp .env.example .env docker compose pull docker compose up -d打开http://localhost:8080,点击Create profile即可进入。首次启动会自动下载约 140 MB 的动画演示素材(仅一次)。
💡 手机上使用 Passkey 需要 HTTPS,只需在
.env中改两行配置。完整的 Cloudflare Tunnel / Caddy / nginx 教程见 docs/SELF_HOSTING.md,局域网 HTTPS 与 Kubernetes 部署另有专门文档。
训练规划:用 1324 个动作搭建你的每周计划
Plan 页签是规划的起点,openGym 提供:
- 📚1324 个动作库:带动画演示,支持按肌肉图谱(人体图)浏览、按你拥有的器械筛选
- 🗓4 套入门计划:推/拉/腿(PPL)、上肢/下肢、全身、5×5,加载后可任意编辑
- 🔄组间高级玩法:超级组、热身组、掉组(drop set)、休息暂停、计时动作(平板支撑等)、按时间与速度记录的有氧、每个动作的休息时长、计划减载周
- 📸自定义动作:上传自己的照片、GIF 或短视频,上传前会自动剥离位置信息
想省事,也可以直接把计划导出成小文件分享给训练伙伴,或打印成 PDF。
记录训练:休息倒计时、PR 检测与智能配重
Workout 页签的训练体验被刻意做得"安静"——每个动作一张卡片,组数本身就是菜单:
- ⏱休息计时器:组间自动倒计时,可配置屏幕闪烁提醒,适合嘈杂健身房
- 📈PR 实时检测:练出个人纪录时当场提示
- 🏋配重计算:根据你的杠铃/ EZ 杆/陷阱杆/史密斯机和你拥有的杠铃片,直接算出每侧挂几片
- 💪RPE/RIR 努力度列:彩色分级,每级配一句大白话解释
- 🦵单侧动作分开记录:弓步、单臂动作左右腿/左右臂可分别计次
- ⚡ 训练时屏幕常亮,上次练过的重量自动预填
肌肉追踪与进度分析:知道该练什么、该歇什么
Stats 页签是 openGym 的"数据大脑":
- 🗺肌肉图谱三种模式:哪些肌肉训练量过大、哪些还在恢复、哪些已被冷落(detrain)
- 📊1RM 预估曲线:每个动作独立的预估一次极限重量曲线
- ⚖️结构性平衡比:支持 Poliquin、Thibaudeau、ATG 三种前后链比值方案
- 🔥全年活动热力图:一眼看出训练出勤规律
- 📉体重曲线:对照目标线追踪减脂/增肌进程
渐进超负荷规则可按计划或按动作单独设置:线性渐进、Greyskull LP、双渐进(rep range 内加重量)或加时间,停滞会自动触发减载。训练逻辑全部是带单元测试的纯函数,位于frontend/src/lib/目录(如 progression.js),欢迎审计。
多设备同步:手机和笔记本如何不打架
openGym 的同步机制很简洁:每个用户的数据是一份带"版本号"的文档。设备保存时带上自己最后看到的版本;若期间别的设备写过,服务器返回 409 并附上当前文档,设备本地合并后再重试——两台设备同时改,是合并而不是互相覆盖。
整个实例的架构也很清爽:nginx 静态服务 + Node API + JSON 文件存储,外加可选的 AI 教练与 MCP 只读查询服务:
数据导入与备份:从 FitNotes / Strong / Hevy 无痛迁移
在Settings → Data里,迁移历史只需一次文件选择(详见 docs/DATA_IMPORTS.md):
| 来源 | 方式 |
|---|---|
| FitNotes / Strong / Gravl | 导出 CSV 后直接导入 |
| Hevy Pro | 用 API Key 直接拉取训练、计划、称重 |
| Apple Health | 导出export.xml,只读体重记录,每天保留一条 |
导入会智能匹配动作名称,不认识的自动变成你的自定义动作;重复导入同一天不会生成重复记录。想整体备份,随时导出一个 JSON 文件即可。
进阶玩法:AI 教练、MCP 服务与手机端
- 🤖AI 教练(默认关闭):可起草一整周的训练计划,并根据你实际记录的数据提出修改建议——每一步都需你批准。跑在你自己的服务器上,用你自己的密钥(Anthropic / OpenAI / Gemini / Ollama 等),源码见 api/coach/,教程见 docs/AI_COACH.md
- 🔌MCP 服务器:让 Claude Desktop 等 AI 助手只读查询你的训练历史,见 mcp/
- 📱Android APK:同一套代码打包成独立 App,无账号无服务器、全本地存储;iPhone 用户可自托管后把 PWA 添加到主屏幕,详见 docs/MOBILE.md
文档、源码与延伸阅读
| 想了解 | 去看 |
|---|---|
| 快速问答(成本、数据去向、iPhone) | docs/FAQ.md |
| HTTP API 完整定义 | api/openapi.yaml |
| 每个版本的改动 | CHANGELOG.md |
| 未来路线图(程序化训练、iOS App) | ROADMAP.md |
| 贡献代码 | CONTRIBUTING.md |
openGym 采用 AGPL v3 协议开源且长期免费,没有付费层级。docker compose up之后,这个健身应用就真正属于你了——规划训练、记录组数、追踪肌肉,数据永远握在自己手里。
【免费下载链接】openGymSelf-hosted gym & body-weight tracker — plan routines, log workouts (supersets, warm-ups, cardio), see which muscles are trained, fatigued or detrained, import from FitNotes/Strong/Hevy, passkey login. Your data, your server.项目地址: https://gitcode.com/GitHub_Trending/op/openGym
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考