跳到正文
发现
openGym:自托管健身训练记录工具
网站 / Web 应用生活服务

openGym:自托管健身训练记录工具

自托管的开源健身训练记录工具,提供网页版与 iPhone、Android、Apple Watch 应用。

admin
发布于 2026-10-28
浏览
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 整理,以原仓库为准。

更新记录

  1. v1.4.3当前版本

    社区版:修复 iOS 15.5–16.3 启动一直停在 logo 的问题(重写正则检查、构建目标对齐 Safari 15、新增语法测试),恢复该区间缺失的界面着色,并为 Apple Watch 加入多项新功能。

评论