Workout.cool:现代开源健身教练平台
Workout.cool 是一个现代开源健身教练平台,支持创建训练计划、追踪进度,并提供包含详细说明和视频演示的丰富动作数据库。该项目源于对已废弃的 workout.lol 项目的复兴与改进,采用 Next.js、TypeScript、Prisma 和 PostgreSQL 构建。
社区作者 · zZz
它解决什么问题
Workout.cool 是一个开源健身教练平台,提供全面的健身动作数据库,支持创建个性化训练计划和进度追踪。项目前身为 workout.lol,因原项目被出售后废弃,原作者决定重新构建并开源。平台采用 Feature-Sliced Design 架构,使用 Next.js App Router,包含动作管理、认证、训练计划等业务模块。项目提供 Docker 和手动两种安装方式,支持导入 CSV 格式的动作数据,并允许自托管部署。项目遵循 MIT 许可证。
— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。
安装 / 开始使用
快速开始
环境要求
- Node.js (v18+)
pnpm (v8+)Docker (可选)- PostgreSQL(手动安装时需要)
克隆仓库
git clone https://github.com/Snouzy/workout-cool.git
cd workout-cool方法一:使用 Docker
- 复制环境变量:
cp .env.example .env- 启动所有开发服务:
make dev该命令会启动 PostgreSQL 容器、运行数据库迁移、填充种子数据,并启动 Next.js 开发服务器。
- 停止服务:
make down- 打开浏览器访问 http://localhost:3000
方法二:手动安装(不使用 Docker)
- 安装依赖:
pnpm install- 复制环境变量:
cp .env.example .env- 设置 PostgreSQL 数据库:
- 安装 PostgreSQL,创建数据库:
createdb -h localhost -p 5432 -U postgres workout_cool- 运行数据库迁移:
npx prisma migrate dev- (可选)导入动作数据库,见下一节。
- 启动开发服务器:
pnpm dev- 打开浏览器访问 http://localhost:3000
动作数据库导入
准备 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
导入命令:
# 从 CSV 文件导入动作
pnpm run import:exercises-full /path/to/your/exercises.csv
# 使用示例数据
pnpm run import:exercises-full ./data/sample-exercises.csv示例 CSV 格式可参考项目中的 ./data/sample-exercises.csv。
如需更多本地开发用动作数据,可使用 ./scripts/import-exercises-with-attributes.prompt.md 中的提示词让 ChatGPT 生成。
生产部署 / 自托管
使用 Docker
# 构建镜像
docker build -t yourusername/workout-cool .
# 运行容器
docker run -p 3000:3000 --env-file .env.production yourusername/workout-cool使用 Docker Compose
确保 DATABASE_URL 指向 postgres 服务(不是 localhost):
DATABASE_URL=postgresql://username:password@postgres:5432/workout_cooldocker compose up -d手动部署
pnpm build
# 设置生产数据库地址
export DATABASE_URL="your-production-db-url"
npx prisma migrate deploy
pnpm start如需在数据库填充示例动作数据,可将环境变量 SEED_SAMPLE_DATA 设为 true。完整的自托管指南可参考项目文档和视频。