@cevenif: 健身房几百块一节的私教课,现在有个开源平替能把你安排得明明白白。 GitHub 上有个叫 workout-cool 的项目,健身党用起来很顺手: 选器械、选部位,自动给你生成训练计划,还能全程跟进度 海量动作库,图文加视频讲解,动作不容易…
摘要
workout-cool 是一个开源的健身教练平台,可以自动生成训练计划、跟踪进度,包含海量动作库和视频讲解,支持 Docker 一键部署,数据归用户所有。
查看缓存全文
缓存时间: 2026/06/18 20:21
健身房几百块一节的私教课,现在有个开源平替能把你安排得明明白白。
GitHub 上有个叫 workout-cool 的项目,健身党用起来很顺手:
选器械、选部位,自动给你生成训练计划,还能全程跟进度 海量动作库,图文加视频讲解,动作不容易跑偏 CSV 批量导入,自定义扩展随便加,Docker 一键部署,开箱即用 最关键的是:自己部署,数据归自己,还完全免费。 健身房的私教们可以看看自己饭碗还稳不稳。现在不薅,等什么时候?
https://github.com/Snouzy/workout-cool… http://workout.cool
Snouzy/workout-cool
Source: https://github.com/Snouzy/workout-cool
Workout.cool
Modern fitness coaching platform with comprehensive exercise database
Deutsch | Español | français | 日本語 | 한국어 | Português | Русский | 中文Table of Contents
- About
- Project Origin & Motivation
- Quick Start
- Exercise Database Import
- Project Architecture
- Contributing
- Self-hosting
- Resources
- License
- Sponsor This Project
Contributors
Sponsors
About
A comprehensive fitness coaching platform that allows create workout plans for you, track progress, and access a vast exercise database with detailed instructions and video demonstrations.
🎯 Project Origin & Motivation
This project was born from a personal mission to revive and improve upon a previous fitness platform. As the primary contributor to the original workout.lol project, I witnessed its journey and abandonment. 🥹
The Story Behind workout.cool
- 🏗️ Original Contributor: I was the main contributor to workout.lol
- 💼 Business Challenges: The original project faced major hurdles with exercise video partnerships (no reliable video provider) could be established
- 💰 Project Sale: Due to these partnership issues, the project was sold to another party
- 📉 Abandonment: The new owner quickly realized that exercise video licensing costs were prohibitively expensive, began to be sick and abandoned the entire project
- 🔄 Revival Attempts: For the past 9 months, I’ve been trying to reconnect with the new stakeholder
- 📧 Radio Silence: Despite multiple (15) attempts, there has been no response
- 🚀 New Beginning: Rather than let this valuable work disappear, I decided to create a fresh, modern implementation
Why workout.cool Exists
Someone had to step up.
The opensource fitness community deserves better than broken promises and abandoned platforms.
I’m not building this for profit.
This isn’t just a revival : it’s an evolution. workout.cool represents everything the original project could have been, with the reliability, modern approach, and maintenance that the fitness open source community deserves.
👥 From the Community, For the Community
I’m not just a developer : I’m a user who refused to let our community down.
I experienced firsthand the frustration of watching a beloved tool slowly disappear. Like many of you, I had workouts saved, progress tracked, and a routine built around the platform.
My Mission: Rescue & Revive.
If you were part of the original workout.lol community, welcome back! If you’re new here, welcome to the future of fitness platform management.
Quick Start
Prerequisites
Installation
-
Clone the repository
git clone https://github.com/Snouzy/workout-cool.git cd workout-cool -
Choose your installation method:
🐳 With Docker
Docker Installation
-
Copy environment variables
cp .env.example .env -
Start everything for development:
make dev- This will start the database in Docker, run migrations, seed the DB, and start the Next.js dev server.
- To stop services run
make down
-
Open your browser Navigate to http://localhost:3000
💻 Without Docker
Manual Installation
-
Install dependencies
pnpm install -
Copy environment variables
cp .env.example .env -
Set up PostgreSQL database
- If you don’t already have it, install PostgreSQL locally
- Create a database named
workout_cool:createdb -h localhost -p 5432 -U postgres workout_cool
-
Run database migrations
npx prisma migrate dev -
Seed the database (optional)
See the - Exercise database import section
-
Start the development server
pnpm dev -
Open your browser Navigate to http://localhost:3000
Exercise Database Import
The project includes a comprehensive exercise database. To import a sample of exercises:
Prerequisites for Import
- Prepare your CSV file
Your CSV should have these columns:
id,name,name_en,description,description_en,full_video_url,full_video_image_url,introduction,introduction_en,slug,slug_en,attribute_name,attribute_value
You can use the provided example.
Import Commands
# Import exercises from a CSV file
pnpm run import:exercises-full /path/to/your/exercises.csv
# Example with the provided sample data
pnpm run import:exercises-full ./data/sample-exercises.csv
CSV Format Example
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","<p>Stand upright...</p>","<p>Stand upright...</p>",https://youtube.com/...,https://img.youtube.com/...,slug-fr,slug-en,TYPE,STRENGTH
157,"Fentes arrières à la barre","Barbell Reverse Lunges","<p>Stand upright...</p>","<p>Stand upright...</p>",https://youtube.com/...,https://img.youtube.com/...,slug-fr,slug-en,PRIMARY_MUSCLE,QUADRICEPS
Want unlimited exercise for local development ?
Just ask chatGPT with the prompt from ./scripts/import-exercises-with-attributes.prompt.md
Project Architecture
This project follows Feature-Sliced Design (FSD) principles with Next.js App Router:
src/
├── app/ # Next.js pages, routes and layouts
├── processes/ # Business flows (multi-feature)
├── widgets/ # Composable UI with logic (Sidebar, Header)
├── features/ # Business units (auth, exercise-management)
├── entities/ # Domain entities (user, exercise, workout)
├── shared/ # Shared code (UI, lib, config, types)
└── styles/ # Global CSS, themes
Architecture Principles
- Feature-driven: Each feature is independent and reusable
- Clear domain isolation:
shared→entities→features→widgets→app - Consistency: Between business logic, UI, and data layers
Example Feature Structure
features/
└── exercise-management/
├── ui/ # UI components (ExerciseForm, ExerciseCard)
├── model/ # Hooks, state management (useExercises)
├── lib/ # Utilities (exercise-helpers)
└── api/ # Server actions or API calls
Contributing
We welcome contributions! Please see our Contributing Guide for details.
Development Workflow
- Create an issue for the feature/bug you want to work on. Say that you will work on it (or no)
- Fork the repository
- Create your feature|fix|chore|refactor branch (
git checkout -b feature/amazing-feature) - Make your changes following our code standards
- Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request (one issue = one PR)
📋 For complete contribution guidelines, see our Contributing Guide
Code Style
- Follow TypeScript best practices
- Use Feature-Sliced Design architecture
- Write meaningful commit messages
Deployment / Self-hosting
📖 For detailed self-hosting instructions, see our Complete Self-hosting Guide
📺 You can also watch a 3-minute video guide on self-hosting Workout.Cool.
To seed the database with the sample exercises, set the SEED_SAMPLE_DATA env variable to true.
Using Docker
# Build the Docker image
docker build -t yourusername/workout-cool .
# Run the container
docker run -p 3000:3000 --env-file .env.production yourusername/workout-cool
Using Docker Compose
DATABASE_URL
Update the host to point to the postgres service instead of localhost
DATABASE_URL=postgresql://username:password@postgres:5432/workout_cool
docker compose up -d
Manual Deployment
# Build the application
pnpm build
# Run database migrations
export DATABASE_URL="your-production-db-url"
npx prisma migrate deploy
# Start the production server
pnpm start
Resources
License
This project is licensed under the MIT License. See the LICENSE file for details.
🤝 Join the Rescue Mission
This is about rebuilding what we lost, together.
How You Can Help
- 🌟 Star this repo to show the world our community is alive and thriving
- 💬 Join our Discord to connect with other fitness enthusiasts and developers
- 🐛 Report issues you find. I’m listening to every single one
- 💡 Share your feature requests finally, someone who will actually implement them !
- 🔄 Spread the word to fellow fitness enthusiasts who lost hope
- 🤝 Contribute code if you’re a developer : let’s build this together
💖 Sponsor This Project
Appear in the README and on the website as supporter by donating:
If you believe in open-source fitness tools and want to help this project thrive,
consider buying me a coffee ☕ or sponsoring the continued development.
Your support helps cover hosting costs, exercise database updates, and continuous improvement.
Thank you for keeping workout.cool alive and evolving 💪
相似文章
@xiaoying_eth: 睡着也能帮你干活的 GitHub 仓库,10 个值得收藏: 1. OpenHands AI 自己写代码、自己跑测试。SWE-bench 得分 77.6%,目前最强自主编程代理之一。 https://github.com/OpenHands…
这篇推文整理了10个值得收藏的GitHub仓库,涵盖AI编程代理、自动化工具和协作框架,包括OpenHands、CrewAI、n8n等。
@bozhou_ai: 自学 Vibe Coding 看这三个开源项目就够,不用买课 很多 AI Coding 课程的素材都从这里来,原始版本反而更系统 1. Easy-Vibe DataWhale 出品的系统教程,5k stars。分三阶段:从 AI 编程小游…
本文推荐了三个高星开源GitHub项目,帮助开发者零成本系统地学习AI编程与Vibe Coding工作流,涵盖结构化教程、提示词技能库及全方位工具目录。
@laowangbabababa: 太牛逼了 !新东方那一套,已经被一份免费的 GitHub 仓库写完了。 46k stars,作者本人是高考英语省状元。这事儿挺多英语培训机构现在不太想让你知道。 这帮了哪些人? 工作多年想重启英语的,别再花钱报班了,先翻基础认知那章,你以…
一个免费的 GitHub 仓库(46k stars)汇总了英语学习资源,作者是高考英语省状元,旨在帮助工作多年的人重启英语学习,替代昂贵的培训机构。
@axichuhai: 发现GitHub 上免费全栈学习平台——freeCodeCamp,44w+ star,已经帮助超过 10 w人找到开发工作。 不管是想学 Python、前端还是算法,都有完整的课程 边学边写代码,还能帮你准备开发者面试、学习技术英语,甚至…
推荐GitHub上的免费全栈学习平台freeCodeCamp,拥有44万+ star,已帮助超过10万人找到开发工作,提供Python、前端、算法等完整课程。
@queen_nunaa: 有人已经在 GitHub 上弄了个仓库,能让你免费、永久地用上 Claude Code。 做法就是把 Claude Code 的请求转发到 10 个免费的服务商,比如 DeepSeek、Kimi 这些。 整个配置过程也就五分钟左右,现在已…
有人在GitHub上创建了一个仓库,通过将Claude Code的请求转发到DeepSeek、Kimi等10个免费服务商,让用户免费且永久地使用Claude Code,配置只需五分钟,已有超过两万开发者使用。