openGym(编号:自托管健身)采用AGPL v3:训练记录保存在本地文件夹
据开源项目 openGym 的说明,这是一款可自行部署的健身训练追踪软件,授权协议是 GNU AGPL v3.0。项目团队在仓库页反复强调该应用的约定前提:用户的训练记录应当保存在自己能够掌控的目录里面,既然不想被锁在商业化平台的服务器内。技术实现上,openGym前端构建用 React 19 + Vite,未采用任何成熟后端框架内置,直接靠 Node.js原生代码收发请求;所有档案以纯 JSON 文件格式汇总在本地的项目内部数据盘./data中。用 Docker Compose一条管线即可完成整套部署,并具备 Passkey 免密身份验证、网络切断情况下的脱机记录以及多台设备之间的数据同步等选项。
原文还说明,本文所介绍的这份代码承载取自另有他人项目之后的派生仓库——先创建 DuarteSantos8/openGym 后续上游代码原先名字为 alexpcosta 有授权,按照原始仓库结构的基础上附加了可以选择开启的 AI 教练模块。围绕 openGym 提供的截图显示之处,其在手机与笔记本界面兼顾页面上呈现了肌肉激活热区、按周训练计划跟体重变化历史曲线这三个表格与图表。
动作库 1324 个动作,4 种渐进策略自动推进
首项是训练安排能力。系统附带一直可用的动作库,包含了 1,324 个动作;除了这些动作基础积累外,用户也能为一周的每一天设定训练方案。负荷递增方面,提供者以以下方式排布难度变量提示给出选项:可选的是线性递增;另外还夹杂了 Greyskull LP 设定策略,以 AMRAP作为“顶部组”(次数任务目标的核心端点)搭配末尾一次重量削减(在最后一组过后减去总体重的 10%)纳入参考清单。两种路线之外还有第三个可切换的途径:每次训练安排时double progression双渐进跟时限定时的 timed progression推进。到实际那天打开执行对应的训练项目,系统就直接按照计划把推荐重量填好留待使用。该做法还隐含一个把因果承诺合并在决策依据——如果课程日志里面确实出现某些动作目标无法做完的情况,加重则暂时不会自动铺上去;而当显示账号现有水平停止进步时该“减少总量”的保护流程会随之被触发以回落到更低标准。

可选AI教练:向用户提交的每个方案建议都不是悄悄生效
如果把项目强制“训练次数进度时间表”当作必修课,那么本节所说的特征则属于外装式可控辅助件。属于AI 辅助教练机制中包含的一个要点,用户先经过几项精简的详细发问表来补全账户原始资料后;以这初版所得输出会组成覆盖数周的完备训练安排系列步骤图,并以此转化操作基础。更值得一提的是不只输出好的一层抽象文字要求——它会跟踪浏览日记里实际发生运动本身;还包括给使用者依据完成的费力程度评级情况等经验反思表现值,参考该方案的履行率再加本身体重的起伏轨迹综合校准。出现的智能推荐与那些在任意门径之外给予打补丁内容,会通过离散型建议呈现;伴伴随支撑说明。
据其团队说后面一条是防止发生被覆盖漏审的主要原因点:AI所给出每一条修正调整结论都不会贸然生效改写你现有方案;若想启用务必先逐一点击给其中每一项改动设下拦截并允许阈值仍为你处置得决绝仍本我做到。所有改动套装里的全部可设置项均支持留下快照并随时回到保存,退到原始无干涉去恢复既存运动网格训练进度的图形。后背后台依赖框架给了两种方案可选进入开发交互,一是 Claude Agent SDK 一是 OpenAI Codex CLI,操作者做选择就能获取对应 AI产出。题图为项目给出的拆分式示意图;图片前半周以整礼拜的肌肉参与顺序顺序写应作训练日历;右边栏直接标记分析了如过往压力程度评分再加沿用时和体重评价连线后得出的应校对点子建议相应输出动作策略文本。
三大可视化面板与数据主权功能 六项自管理保底线
-视图展示里提供四类统计:追踪同一人持续性体重刻度(目标线加重下方下方上映射展示是否处在获减正背侧的上色偏差已描绘判定所属对么偏离)、双侧人体轮廓(正立面加背视图)参照当日总容纳总荷载给相关锻炼臂躯腿分组绘制色阶差异权重占比标签,连续年度的 Github 风格热力的对应频次数值视觉板,还有一个是用当期单组同时次数最大重量派生出最高理论单次容量的上升终点折线坐标系。

数据保三方向:第一是访问入口仅发放离让秘密证明物件不存在远已放在设备靠近端点用户本地装有 Passkey并且支持通过人脸影像,触摸器跟手指或是其它替代磁传感凭证出入代替明文口令))来对上软件进行辨认和解锁;此证明也不会传给远程处理结点设备便独享责任由此可以避免被远程库读到有关秘密认证材料。再就是随意图免走一条出口打包导出正在看的全部文件经线,由 JSON串一键导出落地的压缩或平文存储卷;不论处在哪个账号迁移保存路线也一样保证全有源地址都能回贯迁移还原历史。相反的反向只需要一份同样相同文卷批量合并从文件中一并合并到现有自己存放该工程的共享数据采集层级,不用另外办格式注册个人服务。另外就是完全回归主观保证的是在线授权信息许可核对都明确整款不发生报表体写入统计从Telemetry也是全部关停全位对私默堵消掉本部分通道分析流量活动传送。支持外源数据和外部现有 APP记录集体搬迁;现支撑的名单及属于首写一个就是前者记录式采用记录 (三个中:FitNotes,Strong,还有Hevy都可以加号一键从 app数据路径导出)再加一份 Apple Health导出医疗相应运动心率写入数据路径统一为按套进行认领互操作性引入数据集。它们帮助这些能兼容他人不同平台。
三层自托管部署:从 git clone 到 localhost:8080
通过原项目构架部分说明该模块清楚加载可认作整体拆分为3级架构过程。分别称呼作三层架构,代表简称下面用简短逻辑串联:用户界面也就是那一端跑在一个安装浏览包里面当成 progressive web应用 PWA包)此时透过一般约定标准的加密HTTPS设备本协议链接在线获取网页加载层内的服务。该界面站点直接使用的 Nginx服务本身就是担当直接把静态网页的文件像做内容镜像单对应地输送发出去而不是自行生产实际读取后端接口再通过向本地后方的后端 API提供路由资源数据调调用。到了后一层挂着一个直接摆在自建案架的盒子,本身即就是带系统验证接口性质的核心——基于 Node.js的事件循环处理脚本通过加进WebAuthn标准登录协议实现对所有人身份的 Passkey 等凭人的身份登录访问校验授权签发凭证码整套完整前端按钮功能用户可见的下展执行过程逻辑所在内部主机处理作业一层代理层后面附加的一个真正的结构件;跟写在账号所需本地操持行动文档是一份普通简单文本文件里后续的帐档案性承载装置专门存储其处理目的最终数据媒介本盒自持有内部固定共享访问持久 JSON内容文件文件里。
在这个具有权限构建制作部署以前的前阶:整个前面方案则直接嵌在前级加载并处于需要初次展开时的 Docker建站点该工程项目提供个主打开的一体命令:采用典型的容器组建过程直接编写前端 app的 static线上外壳。单参与着运行唯一命令即可拉自动给整个部署服务管理,全套构筑运行的套装就是容器命令栏中的这两台一体执行符进行分编,分别归属把带生产可直接交合的容器处理如使用 `docker compose up`只需要补让运维有在用户服务器已经搭过基础终端条件下手动拷贝三条最常见运行之给新入门也能整套沿画出来三步集成控制台过程正是素材中的几个基本环节脚本呈现出的内容:项目把自身仓库下载拉入本地放在文件夹再用镜像参数说明书模本复制生成配置 `.env各个人信息加入`,配置最后启动包装后台进程完成在容器端口存活.完整的启动包括其实照样分别通过三条语句类似但补充标记。就是:

`git clone https://github.com/DuarteSantos8/openGym`
`cd openGym`
`cp .env.example .env`

`docker compose up -d`
第一部署启动后顺利显示即为工作范围内看到指定站点的主卷网络开放指向一条命令等待,只需把浏览器手机开启打开本地环那一个机器的开放端口 8080见标题路径创建起始用户自己首发个人名就行开始工作。
另附说页列出面向想要实际快速寻找项目的人用的关联的外部条目给出来:该有两个 GitHub 入口:一个域名托 管可以参看克隆原作者(`https://github.com/alexpcosta/opengym`)的项目主页通道;官网在 `https://opengym.duarte-santos.ch/`;附带直接运行查看体验即 Demo挂在了在线`https://duartesantos8.github.io/openGym/`共三项目入口都给出来了。证书那一栏写的同样验证跟首章明示均对标统一成AGPL同一版本。全部技术栈标签处声明一共对应具体为这张标目录说明包含,其中的前端之前提过的 React 19 的 Vite,然后是NodeJS及 nginx负载承载服务,再是加 Docker Compose容器模块集散整合包括 WebAuthn生验证信息。
适合谁:重视个人记录、不原随便便受制厂商订阅与停服的用户
最后一段指出针对本次调查方向。目标画像瞄准怎么一种人:只要他厌烦绝大部分厂商企业开发的习惯强推会员收费,出于商业利益对用户打包记录收费不直贷以及可能由于某个项目停止运营导致年积攒健康运动找不到恢复入口的情况让练得挺着急;这一堆糟糕体验积累下来后就会想到换另外一款工具:它必须是功能齐全还开源;能够属于自己的服务器任意时候迁移。这类人非常适合当这款使用者并且具备对器材机器网络权限理解的能自己动手用户。外加结构上上面说得那块特色,那个提升用的助手功能通通报备除后的原核仍纯净若你彻底关掉所有那个对代码层面移除按等同基线自带所有功能照用不会存在任何差缺调整功能对比到的都在跟源头直接近似和别完全不同的特征只是给附加需要人工批准 另有还补充两项适配:界面通过进行12种语支持除简中多常规者广泛;也不用忍受经常都只能依赖直接从项目下载平台免费发布用的直接拿来可执行安卓独立.apk(不受商店下发架)。
小结:openGym 把“数据归自己”这条理念变成一个可直接跑起来的三层本地架构,附带 1,324 个动作与该项目的增肌/负荷推进引擎会尽可能实现。相比商用会员,AI 辅助特点刻意约束了每一次提议生效都不自动打开并留有版本恢复审计通过来留存,适用于关心本地自保、需要静态代理访问部署、也不想因商业停止运营服务导致历史一切灭零的人。此次采用的 AGPL v3 也确保了下游分支部件推各自统一向后开派项目来加固原款正常不被改不改的边界。