VibeBattle 是一个 Vibe Coding 竞赛平台 MVP。
当前仓库包含:
- 前端:Vite + React
- 后端:Node.js + Express
- 数据库:PostgreSQL + Prisma
本地开发现在默认使用真实 PostgreSQL 数据库,不再依赖后端自动 mock 数据兜底。
本地开发数据库方案:Docker Desktop + docker compose + PostgreSQL 16
选择原因:
- 保持你现在的
PostgreSQL + Prisma路线,不改成 SQLite - 不影响线上 Render + Neon 的
DATABASE_URL使用方式 - 本地和线上数据库类型一致,联调更稳定
- 对非专业开发者更简单,只要先装好 Docker Desktop
vibebattle/
src/ # 前端
backend/ # 后端
docker-compose.yml
vercel.json
复制根目录环境变量:
cp .env.example .env默认内容:
VITE_API_BASE_URL=http://127.0.0.1:4000复制后端环境变量:
cd backend
cp .env.example .env本地默认数据库连接:
DATABASE_URL="postgresql://postgres:postgres@localhost:5432/vibebattle?schema=public"线上环境继续使用部署平台自己的 DATABASE_URL,不要把真实线上密钥写进仓库。
你需要先安装:
- Node.js
- npm
- Docker Desktop
确认 Docker 已启动后,再继续下面步骤。
在项目根目录执行:
cd /Users/scrumpy/Documents/vibebattle
npm run db:up如果你想看数据库日志:
npm run db:logs执行:
cd /Users/scrumpy/Documents/vibebattle
npm run backend:setup这个命令会自动完成:
- 生成 Prisma Client
- 执行本地 migration
- 执行 seed
seed 会写入最小可用数据:
- 1 个 buyer 用户
- 1 个 coder 用户
- 多个任务
- 报名关系
- submission 数据
开一个新终端窗口,执行:
cd /Users/scrumpy/Documents/vibebattle
npm run backend:dev后端默认地址:
http://127.0.0.1:4000健康检查:
http://127.0.0.1:4000/health再开一个新终端窗口,执行:
cd /Users/scrumpy/Documents/vibebattle
npm run dev前端默认会读取:
VITE_API_BASE_URL=http://127.0.0.1:4000你可以按下面顺序检查:
cd /Users/scrumpy/Documents/vibebattle
docker compose ps你应该能看到 postgres 服务处于 running 或 healthy。
浏览器打开或命令行执行:
curl http://127.0.0.1:4000/healthcurl http://127.0.0.1:4000/api/tasks如果返回有任务列表,说明本地数据库、Prisma、后端接口已经打通。
确认方式:
- 先执行本地数据库初始化
- 打开前端首页、Tasks、Task Detail、Dashboard、Arena
- 在 Dashboard 新建一个任务
- 刷新页面后这个任务仍然存在
- 再请求:
curl http://127.0.0.1:4000/api/tasks如果能在接口返回中看到你刚创建的任务,就说明前端现在走的是:
- 前端 -> 本地后端 API
- 后端 -> 本地 PostgreSQL
而不是本地 mock 数据。
以下页面本地开发时都优先走真实 API + 本地 PostgreSQL:
- Home
- Tasks
- Task Detail
- Dashboard
- Arena
说明:
- Home 的推荐任务、首页展示列表已经来自数据库/API
- Home 中的 showcase / leaderboard 现在也是根据任务 API 数据派生,不再读取本地静态 mock 文件
线上结构不变:
- 前端:Vercel
- 后端:Render / Railway
- 数据库:Neon
线上仍然通过部署平台配置自己的 DATABASE_URL,本地 docker 数据库不会影响线上。
npm run db:upnpm run db:downnpm run backend:setupnpm run backend:devnpm run dev表现:
docker compose up失败- PostgreSQL 容器起不来
处理:
- 先打开 Docker Desktop
表现:
- PostgreSQL 容器启动失败
处理:
- 关闭本机已有 PostgreSQL
- 或改
docker-compose.yml端口映射
表现:
- Prisma 报
DATABASE_URL缺失
处理:
cd /Users/scrumpy/Documents/vibebattle/backend
cp .env.example .env表现:
- 后端能启动,但接口报数据库表不存在
处理:
cd /Users/scrumpy/Documents/vibebattle
npm run backend:setup表现:
- 页面一直加载失败
- 浏览器网络请求打到线上或错误端口
处理:
- 检查根目录
.env - 确认
VITE_API_BASE_URL=http://127.0.0.1:4000