发现 
网站 / Web 应用生活服务
openGym:自托管健身训练记录工具
自托管的开源健身训练记录工具,提供网页版与 iPhone、Android、Apple Watch 应用。
- 浏览
- 4
- 访问
- 0
- 下载
- 0
- 版本
- v1.4.3
该作品还没有经过官方审核。访问演示、下载或复制命令前,请自行确认来源可信。
详细介绍
项目简介
openGym 是一个开源的健身与自重训练记录工具,数据保存在你自己的服务器上。它提供网页版(可安装到主屏幕、支持离线、手机与电脑之间同步),以及 iPhone、iPad、Android 应用和 Apple Watch 应用。没有订阅、没有广告、没有遥测,执行一条 docker compose up 就能运行。想先试用,可以直接打开浏览器内的演示(真实应用 + 示例数据)。
主要功能
训练计划
- 内置超过 5600 个动作,带动态演示,可按肌群在身体图上浏览,并按你拥有的器械筛选。
- 四套起步计划(Push/Pull/Legs、Upper/Lower、Full Body、5×5),加载后就是普通可编辑的计划。
- 支持按星期排课,也支持轮换(A、B、C……)形式;可以把某次训练挪到其他日子,而不改动周计划。
- 支持超级组、热身组、递减组、rest-pause、按时间计的动作(平板支撑、悬挂、负重行走)、按时间和速度的有氧、每个动作的休息时间,以及计划性减载。
- 自定义动作,可以上传自己的照片、GIF 或短视频;上传前会在设备上去除位置信息。
训练过程
- 引导式训练:今天的训练会自动开始,重量按上次预填,组间有休息计时,并实时检测 PR。
- 可选 RIR 或 RPE 强度列,带颜色和文字说明;杠铃片计算器会根据你拥有的杠铃片来计算。
- 自重动作只记次数,可使用负重腰带;支持单侧次数;训练时屏幕保持常亮;休息提醒可以闪屏。
- 某组左滑删除(可撤销)、右滑复制;支持金字塔组;休息滚轮最长可设到 15 分钟,也可以不计时。
- 器械被占用时可以一键换成备选动作,并保留该动作的组数与次数。
进度与分析
- 每个计划或动作都可以设置进阶规则:线性、Greyskull LP、双重进阶、三重进阶、加时间;未完成的次数不加重量,停滞会触发减载。
- 估算 1RM 曲线、结构性平衡比例(Poliquin、Thibaudeau、ATG),以及一年活动热力图。
- 肌群地图有三种模式:训练量分布、仍在恢复、尚未训练。
- 体重曲线可对照目标线,显示每周变化速率,进度照片按时间线排列并带前后对比滑块。
- 已保存的训练可以在事后编辑,也可以补录纸质记录或改日期;记录会按修正后的历史重新计算。
账户与数据
- 使用 Passkey(Face ID、Touch ID、指纹)登录,多个资料档案可跨设备同步;可按实例开启密码登录;新设备通过一次性验证码或二维码配对。
- 两台设备同时编辑时,会按字段合并,而不是互相覆盖。
- 可从 FitNotes、Strong、Hevy(CSV 或 API key)和 Apple Health 体重导出导入;全部数据可导出为单个 JSON 文件,训练与身体数据可导出为 CSV。
- 计划可分享为小文件,也可打印为 PDF;可选的管理后台支持仅限邀请注册和活动日志。
- 支持 20 种语言,包括繁体中文和从右到左的阿拉伯语。
手机与手表
- iPhone、iPad 与 Android 应用既可独立使用(无需服务器、无需账号),也可连接你自己的服务器;支持通知栏休息计时、提醒,并与 Health Connect 或 Apple Health 双向同步。
- 健身房提醒为可选功能,默认关闭:当你走进常去的健身房时,手机最多每天一次提示开始训练。
- Apple Watch 应用:可用数码表冠勾选组数、直接在手腕上记 RPE/RIR、全屏休息倒计时、每组心率、锁定按钮和表盘复杂功能。
- iPhone 小组件与实时活动:不打开 App 就能在锁屏上记录一组、跳过休息或跳到下一个动作。
可选的额外功能(默认关闭)
- AI 教练:起草一周计划、根据记录提出调整建议并回答训练问题,所有改动都需要你确认;它可以运行在你自己的服务器或手机上,并使用你自己的服务商密钥(Anthropic、OpenAI、Gemini 或任意 OpenAI 兼容端点,包括 Ollama)。
- MCP server:让 Claude Desktop 之类的助手查询训练历史,或按你的描述记录一次训练。这个 MCP server 在本地运行,不包含在 Docker 镜像中。
安装与使用
需要安装 Docker 和 Compose:
git clone https://github.com/DuarteSantos8/openGym
cd openGym && cp .env.example .env
docker compose up -d
打开 http://localhost:8080,点击 Create profile 即可开始。动作动画已包含在镜像里,不需要另外下载。
若想让手机通过 passkey 访问,需要在域名上启用 HTTPS,改 .env 里的两行即可。自托管指南包含 Cloudflare Tunnel、Caddy、Traefik 与 nginx;另有局域网 HTTPS、Mac + Tailscale 和 Kubernetes 的单独文档。
注意事项
- 镜像同时发布到
ghcr.io/duartesantos8/opengym-{api,web}和registry.gitlab.com/duartesantos8/opengym/{api,web},你可以替换image:行,也可以运行docker compose up -d --build在本地构建;这两种方式都不需要在宿主机上安装 Node。 - 所有配置都通过
.env管理,项目许可证为 AGPL-3.0。
本作品整理自 GitHub 开源项目 DuarteSantos8/openGym,原作者 @DuarteSantos8,许可证 AGPL-3.0。中文介绍由 AI 根据项目 README 整理,以原仓库为准。
更新记录
- v1.4.3当前版本
社区版:修复 iOS 15.5–16.3 启动一直停在 logo 的问题(重写正则检查、构建目标对齐 Safari 15、新增语法测试),恢复该区间缺失的界面着色,并为 Apple Watch 加入多项新功能。
评论