openGym 是一个开源、自托管的健身追踪应用,解决传统健身 App 将用户数据锁定在云端、强制订阅或存在隐私泄露风险的问题。它允许用户在本地服务器上运行完整的健身管理系统,支持跨设备同步、通行密钥登录以及离线使用,且无需注册账户或观看广告。
- GitHub:https://github.com/DuarteSantos8/openGym
- Demo:https://duartesantos8.github.io/openGym

核心特性
- 🔒 数据主权与隐私:
- 所有数据存储在用户控制的文件夹中,支持一键 JSON 导出/导入。
- 无遥测、无广告、无订阅费。
- 支持通行密钥(Passkeys)登录,利用 Face ID / Touch ID / 指纹进行安全认证。
- 🏋️ 智能训练管理:
- 每周计划:基于包含 1,324 个练习的库(可搜索,带动画演示),为每个工作日安排常规计划。
- 引导式训练:自动识别当天训练内容,预填上次负重,提供休息计时器和 PR(个人纪录)检测。
- 灵活调整:支持重新安排训练日期,处理生病或漏练情况而不破坏整体计划。
- 超级组与计时练习:支持构建超级组,并为平板支撑等计时类动作提供独立计时器。
- 📈 科学渐进与数据分析:
- 多种渐进模式:支持线性、Greyskull LP、双重渐进等规则,自动计算目标负重并解释原因。
- 1RM 预估:基于最佳合格组自动估算单次最大重量,并提供进度曲线。
- 努力程度记录:可选记录 RIR(剩余次数)或 RPE(自觉运动强度),不影响核心进度计算。
- 可视化图表:包括体重追踪交互式图表、GitHub 风格的活动热图以及肌肉训练量图谱。
- 📱 多平台与无障碍体验:
- PWA 支持:可作为主屏幕应用安装,支持浅色/深色主题及 8 种强调色。
- 多语言:UI 支持 12 种语言,练习说明提供 10 种语言本地化。
- 屏幕常亮:训练期间自动保持屏幕唤醒,结束后立即释放。
- 推送通知:支持休息计时提醒及未训练日提醒。
- 🤖 AI 集成(可选):
- 提供 MCP 服务器,允许 Claude Desktop 或 Cursor 等客户端通过自然语言查询本地训练历史(如“我上周卧推了多少?”),数据仅在本地处理,不上传云端。
快速开始(自托管)
openGym 推荐使用 Docker Compose 进行部署,支持 amd64 和 arm64 架构。
git clone https://github.com/DuarteSantos8/openGym
cd openGym
cp .env.example .env
docker compose pull
docker compose up -d
启动后访问 http://localhost:8080 即可创建个人资料并开始使用。首次启动会自动下载约 140 MB 的练习媒体文件。若需通过互联网从手机访问,需在 .env 中配置 HTTPS 域名以支持通行密钥。
移动应用
- Android:提供可侧载的 APK 文件,完全离线运行,数据保留在手机上。
- iOS:由于 Apple 限制,建议通过自托管 PWA 方式添加到主屏幕,或通过 Xcode 自行构建原生应用。