今天不聊复杂的代码,咱们来聊点带劲的,跟身体有关的。
你有没有过这样的经历:一款健身 App,用得好好的。突然有一天,打不开了。训练记录没了,计划没了,连客服都联系不上。
今天要介绍的这个项目 workout-cool,就是因为经历过这种事,才被逼着诞生的。
项目简介
workout-cool 是一个开源健身管理平台,简单说就是三件事:制定训练计划、记录锻炼进度、外加一个内容详尽的动作数据库。


个人健身、教练带学员都能用。而且支持自托管,数据放在自己服务器上,不用担心平台突然跑路、训练记录说没就没。
这个项目的由来挺有意思。

作者原本是另一个健身开源项目 workout.lol 的主力贡献者,那个项目当年也有 1.4k star。可惜运动视频版权成本太高,项目被卖给别人,新东家接手不久也因为同样的原因摆烂停更。
作者不甘心,连续 9 个月发了 15 封邮件想挽救,结果杳无音信。
与其等一个不回信的人,不如自己重写一个。workout-cool 就这么来了。
目前项目在 GitHub 已经拿下 8.3k star,用的是 Next.js + TypeScript + Prisma + PostgreSQL 技术栈,代码质量在同类项目里算能打的。

功能特性


- 进度追踪不糊弄: 每次训练记组数、次数、重量,历史一目了然,力量曲线自己长出来。

- 真自托管: Docker 一条
make init 起 Postgres + 迁移 + 服务端,数据不出本机。
- 多语言与离线: 界面含中/英/法/日/韩等,Service Worker 缓存后能断网看计划,器械区没信号也不慌。
快速安装、使用
装 workout-cool 不难,两条路线选一条就行。
先克隆项目:
git clone https://github.com/Snouzy/workout-cool.git
cd workout-cool
如果你机器上有 Docker,走这条最省心:
cp .env.example .env
make dev
这一条命令会自动拉起数据库、跑迁移、灌测试数据,顺便把 Next.js 开发服务器也启动了。跑完打开浏览器访问 http://localhost:3000 就能看到界面了。
不想用 Docker 也行,手动装:
pnpm install
cp .env.example .env
npx prisma migrate dev
pnpm dev
前提是本地要装好 PostgreSQL,自己建个叫 workout_cool 的数据库。
想往里灌运动动作数据的话,项目自带一份 CSV 导入脚本:
pnpm run import:exercises-full ./data/sample-exercises.csv
想自己搞更多动作数据,作者甚至贴心地留了一份 ChatGPT 提示词模板,让你自己生成。
小结
说实话,workout-cool 的功能设计不算多复杂,训练计划、动作库、进度追踪,健身圈这套东西大家都懂。
但它有一点挺打动人:这是一个被“背叛”过的用户,自己动手把东西修好了。
作为想搭建自己训练计划、想摆脱商业 App 数据绑架的健身爱好者,workout-cool 值得一试。
如果你也讨厌辛辛苦苦攒的健身数据说没就没,不妨去 GitHub 上给它点个 star。
项目地址:https://github.com/Snouzy/workout-cool
本文由云栈社区编辑整理。