首页 / 资讯中心 / 文章详情

自托管健身平台 Workout.cool:训练计划、进度追踪、动作库一站搞定(附部署实测)

自托管健身平台 Workout.cool:训练计划、进度追踪、动作库一站搞定(附部署实测) ★ FEATURED ARTICLE
想找一个能自己部署、数据自己能掌控的健身管理工具结果翻到了这个项目。我最近在找一个能自己跑的健身管理平台。需求其实挺朴素的能写训练计划能记录每次练了什么最好还能直接看动作视频。但一圈看下来要么是商用 App 把数据锁在云端、订阅越来越贵要么是一些小工具做着做着就停了数据导入导出都费劲。后来翻到Workout.cool。它是原workout.lol项目的主要贡献者 Snouzy 在原项目被转手、新 owner 也停止维护之后重新做的一套开源健身平台。目前 GitHub 上8.5k star、753 fork最新 release 是v1.3.2最近一次代码提交是 2026 年 9 月 20 日——至少在维护状态上这个项目还活着。它到底能干什么一句话概括Workout.cool 是一个用 Next.js TypeScript Prisma PostgreSQL 写的健身教练平台可以部署在你自己的服务器上。核心就三块对应健身场景里最常用的需求训练计划像排课表一样安排每周练什么。动作数据库自带大量动作能看视频、看说明、看目标肌群。进度追踪记录每次训练的重量、组数、次数生成趋势图。Next.jsReact 的全栈框架一个项目里既能写页面也能写后端接口。Prisma一种 ORM对象关系映射把数据库表当成 TypeScript 对象来操作不用手写太多 SQL。PostgreSQL开源的关系型数据库这里用来存动作、计划、训练记录。我为什么愿意把它下载下来试试自托管数据放在自己机器上不用担心厂商突然改订阅或关停服务。开源 MIT商用也没问题想二次开发直接改。动作库带视频这是很多开源健身工具没有的部分。多语言界面支持中文、英文、日文、韩文、法文、德文、西班牙文、葡萄牙文、俄文等。Docker 一键跑对不想一步步配环境的人来说很友好。本地跑起来需要多久我按 README 的 Docker 方式试了一遍十几分钟就能看到界面。# 1. 克隆项目 git clone https://github.com/Snouzy/workout-cool.git cd workout-cool # 2. 复制环境变量 cp .env.example .env # 3. 启动开发环境 make devmake dev这一条命令背后会自动做几件事启动 PostgreSQL 容器、跑数据库迁移、塞入种子数据、启动 Next.js 开发服务。完事后打开http://localhost:3000就能看到界面比自己手动装库、配数据库省不少事。# 停止服务 make down三个核心功能拆开看1. 训练计划编排逻辑上很像给自己排一张“健身课表”选周几练、每次练哪个部位、每个动作做几组几次。项目支持多天计划也支持循环计划比如一个计划重复 4 周还提供了一些模板可以直接从模板改起。2. 动作数据库这是我觉得最实用的一块。市面上很多开源健身工具的动作库只有文字列表Workout.cool 的动作条目却更像视频卡片有名称、说明、主要肌群、动作类型还有视频演示链接。你搜“深蹲”这类动作出来的是带视频入口的结果而不是一行干巴巴的文字。动作数据还能用 CSV 批量导入。项目里自带了一个示例文件data/sample-exercises.csv格式大概长这样id,name,name_en,description,description_en,full_video_url,full_video_image_url,introduction,introduction_en,slug,slug_en,attribute_name,attribute_value 157,Fentes arrières à la barre,Barbell Reverse Lunges,pStand upright.../p,pStand upright.../p,https://youtube.com/...,https://img.youtube.com/...,slug-fr,slug-en,TYPE,STRENGTH 157,Fentes arrières à la barre,Barbell Reverse Lunges,pStand upright.../p,pStand upright.../p,https://youtube.com/...,https://img.youtube.com/...,slug-fr,slug-en,PRIMARY_MUSCLE,QUADRICEPS导入命令pnpm run import:exercises-full ./data/sample-exercises.csv也就是说如果你有自己的动作数据整理成这种 CSV 就能一次性灌进数据库。3. 进度追踪每次训练完把重量、次数、组数记下来系统会帮你画趋势图。长期看就像给自己建了一本带图表的训练日记而不是在备忘录里写一堆零散数字。代码结构长什么样项目用了Feature-Sliced DesignFSD来组织代码。简单理解就是不按“页面、组件、工具”这种文件类型来分而是按“功能”来切。FSD一种前端架构方法论把代码分成 shared、entities、features、widgets、app 等层级业务功能之间边界更清晰。目录大概长这样src/ ├── app/ # Next.js 页面与路由 ├── processes/ # 跨功能业务流程 ├── widgets/ # 可组合 UI 组件比如 Sidebar、Header ├── features/ # 业务功能认证、动作管理、训练计划 ├── entities/ # 领域实体用户、动作、训练计划 ├── shared/ # 通用代码UI 组件、工具函数、类型 └── styles/ # 全局样式这种分层对中大型 Next.js 项目比较友好改某个功能时相关的 UI、状态、API 调用基本都集中在同一层不用满世界找文件。不想用 Docker 也可以手动跑如果你本地已经有 PostgreSQL手动跑也很快# 安装依赖 pnpm install # 复制环境变量 cp .env.example .env # 创建数据库 createdb -h localhost -p 5432 -U postgres workout_cool # 跑迁移 npx prisma migrate dev # 启动开发服务器 pnpm dev生产环境部署# 构建 pnpm build # 设置生产数据库地址并跑迁移 export DATABASE_URLyour-production-db-url npx prisma migrate deploy # 启动生产服务 pnpm start和同类工具比比看对比项Workout.cool商业健身 App简单记录工具开源MIT完全开源闭源部分开源自托管支持 Docker 一键部署仅云端不一定功能完整计划 追踪 数据库功能丰富通常单一多语言支持 8 语言视产品而定常仅英文数据控制自己掌控在厂商服务器不一定可定制可二次开发无法定制视项目而定成本免费订阅制免费这个对比不是想说商业 App 一无是处而是给“想自己掌控数据、愿意折腾一下”的人一个选项。如果你只是临时记几次训练备忘录可能更快但如果你想长期管理训练数据Workout.cool 的完整度会舒服很多。适合哪些人健身爱好者想自己写计划、追踪力量/耐力变化。健身教练给学员排训练计划学员记录完成情况后能看进度。开发者想基于健身场景做二次开发或者学习 Next.js FSD Prisma 的组合。团队/组织希望内部自托管保护用户数据隐私。几个我用下来的小体会Docker 模式确实省事make dev把数据库、迁移、种子、Next.js 一起拉起来适合想快速看效果的人。动作库是亮点有视频链接和肌群标注比自己维护一个 Excel 表强。CSV 导入很实在如果你已经有一份动作清单灌进去的难度不大。FSD 架构有学习价值代码不是乱堆在components/里而是按业务领域分好了层。相关资源GitHubhttps://github.com/Snouzy/workout-cool官网https://workout.cool文档README、Contributing Guide、Self-hosting Guide名词速查表名词一句话解释Next.jsReact 全栈框架App Router 能同时做页面和接口。Prisma类型安全的 ORM把数据库表映射成 TypeScript 对象。PostgreSQL开源关系型数据库。FSD按功能切片组织代码的前端架构方法。Better Auth项目里用的认证库支持邮箱、OAuth 等登录方式。Docker Compose多容器编排工具这里用来一次启动数据库和 Next.js 服务。写在最后如果你正好想搭一个自己的健身数据系统或者厌倦了把训练记录交给商业 AppWorkout.cool 是个值得git clone下来试试的项目。它对“点开即用”型用户不算最友好但对愿意自己部署、甚至二次开发的人来说这套代码的底子不错功能也完整。我从 README 和社区反馈来看作者一直在持续更新。如果你跑通了也可以顺手给项目点个 star或者把遇到的问题提到 GitHub Issues 里。
阅读完成 · 觉得有帮助?
咨询建站