☰
为什么openGym是健身数据隐私人士的终极选择:免费开源、零订阅、零遥测
2026/10/7 9:34:10 网站建设 项目流程

为什么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 值得认真看一眼。它是一款免费开源(AGPL)、可自托管的健身与体重追踪器:制定每周训练计划、记录每一次训练(超级组、热身组、有氧),查看哪些肌肉在训练、在疲劳、在退训,还能从 FitNotes / Strong / Hevy 一键导入历史数据,用 passkey(面容 ID / 指纹)登录。一句话:Your data, your server —— 你的数据,你的服务器。💪

三个扎心问题:你的训练数据现在被谁看着?

用大多数商业健身 App 时,你可能没想过这三件事:

  • 🔒数据在别人的服务器上:你的训练历史、体重曲线、甚至照片,存在厂商的云里,公司一旦关停,数据说没就没;
  • 💳免费只是入口:高级功能后面挂着订阅墙,不续费就用不了自己的历史数据;
  • 📡遥测与广告:不少 App 默认收集使用行为,甚至用你的数据做个性化广告。

openGym 对这三条的回答干脆利落:没有别人家的服务器、没有订阅档、没有遥测、没有广告。官方 FAQ 的原话是:"你的实例没有任何遥测,也不向任何人报告"(docs/FAQ.md)。

零订阅、零遥测:openGym 到底做了什么?

openGym 的全部代码以GNU AGPL v3.0协议开源(LICENSE),没有付费版本,没有给赞助商预留的后门功能。部署完成后,它由两个小型容器(nginx 前端 + Node API)和一个你自己拥有的./data文件夹组成——备份./data,就备份了全部(README.md)。

从架构图可以看出数据流向:浏览器/PWA 只通过 HTTPS 与你自己的服务器通信;API 把数据写成 JSON 存进./data;唯一的例外是默认关闭的可选 AI 教练——只有管理员开启、并填入你自己的模型服务商密钥后,它才会把必要的训练数据发给你指定的服务商(docs/AI_COACH.md)。也就是说,默认安装不调用任何 AI 服务,健身数据不出你的机器。🔐

5 分钟自托管部署:一条 docker compose 命令上线

部署是"一条命令"级别的,只需要装有 Docker 的机器(树莓派也行):

git clone https://gitcode.com/GitHub_Trending/op/openGym cd openGym cp .env.example .env docker compose pull # 预构建镜像,amd64 + arm64 docker compose up -d

打开http://localhost:8080,创建 passkey 档案即可开始使用。首次启动会自动下载约 140 MB 的动作媒体文件(仅一次)。所有配置项都在 .env.example 中逐条注释说明:域名(RP_ID/ORIGIN)、多用户邀请码(INVITE_ONLY)、审计日志(AUDIT_*)等,全部可选。完整流程(含 Cloudflare Tunnel、Caddy 等 HTTPS 方案)见 docs/SELF_HOSTING.md。

多设备同步与 Passkey:隐私友好的登录方式

openGym 默认用WebAuthn passkey登录:没有邮箱、没有密码重置邮件流程,密钥私钥只留在你手机的 Secure Enclave / 指纹硬件里,永远不上服务器。会话 cookie 由 HMAC 签名,服务端密钥存放在./data/secret,"一键全设备登出"可作废该账号签发过的所有会话(api/server.js)。

两台设备同时编辑也不会互相覆盖:每次保存都带上"上次看到的版本号",若中间有其他设备写入,服务器返回 409 和当前文档,设备本地合并后重试——健身数据在同步中不会丢(README.md)。

值得加分的隐私细节

如果你习惯先审代码再看功能,这些设计会给你安全感(汇总自 SECURITY.md):

  • 逐用户数据隔离:/api/data路由永远只读写调用者自己的state-<uid>.json,普通用户没有任何路径能指名读写别人的数据;
  • 上传媒体先"验身"再落地:服务器只凭文件前几个字节判断类型,仅接受 JPEG/PNG/WebP/GIF/MP4/MOV/WebM,且只归还给上传者本人;照片在离开手机前就重编码,EXIF 与 GPS 信息直接抹掉;
  • 审计日志默认开启但"记少不记多":登录、登录失败和管理员操作记入./data/audit.log,默认不记录任何 IP(AUDIT_IP默认off);
  • 推送端点防内网探测:Web Push 的订阅地址强制 HTTPS,且拒绝解析到回环/内网/云元数据地址,无法被当作打向你内网的跳板;
  • 依赖极简:整个 API 只有两个依赖(passkey 校验 + Web Push),训练逻辑(渐进、1RM、恢复模型)全部是 frontend/src/lib/ 下带单元测试的纯函数——攻击面小,逻辑可验证。

常用功能速览:它还是一个正经的训练 App

隐私是底线,好用是本体。openGym 内置1,324 个动作(带动画演示)、17 种界面语言,核心能力包括:

  • 🏋️计划:按星期安排动作库、四套入门计划(推/拉/腿、上/下肢、全身、5×5)、超级组、热身组、递减组、计时有氧、计划性减载周;
  • 📈进展:每动作渐进规则(线性、Greyskull LP、双渐进)、预估 1RM 曲线、全年训练热力图、体重对照目标线;
  • 🧠肌肉图谱三模式:容量去了哪、哪些肌肉还在恢复、哪些已退训——这是其他 App 很少给到的视角;
  • 📥数据迁移:FitNotes、Strong、Hevy(CSV 或 API key)开箱即用,Apple Health 体重也能导入,随时可导出为单个 JSON(docs/DATA_IMPORTS.md)。

常见问题速答

要花多少钱?0 元。开源 AGPL,无付费档、无广告、无遥测,服务器成本就是你自己那台机器。

iPhone 能用吗?可以:自托管后从 Safari 添加到主屏,它是可离线运行的完整 PWA;也可用 Xcode 把原生壳装到自己的设备上(docs/MOBILE.md)。

手机 App 要联网吗?Android 版可完全离线使用,数据只存手机本地,无需服务器和账号(docs/FAQ.md)。

会偷偷用 AI 吗?默认安装不调用任何 AI 服务;AI 教练与 MCP 服务器都是选装,且密钥、服务商都由你指定(docs/AI_COACH.md、mcp/README.md)。


📌 总结:openGym 用"两个容器 + 一个 JSON 文件夹"的极简架构,把健身数据隐私从口号做成了工程现实——免费开源、零订阅、零遥测,而好用程度(渐进算法、肌肉图谱、多设备合并同步)完全对得起一个主流商业 App。如果你受够了"数据在别人的服务器里",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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询