Severity: MEDIUM — No One-Command Local Development
Problem
The current docker-compose.yml only includes Postgres and Redis. Every developer must manually start the API, dashboard, checkout, and www apps. There's no reproducible local environment.
Implementation Required
```yaml
docker-compose.yml
services:
postgres:
image: postgres:16-alpine
environment:
POSTGRES_DB: tavvio
POSTGRES_USER: tavvio
POSTGRES_PASSWORD: password
ports: ["5434:5432"]
volumes: [postgres_data:/var/lib/postgresql/data]
healthcheck:
test: ["CMD-SHELL", "pg_isready -U tavvio"]
redis:
image: redis:7-alpine
ports: ["6379:6379"]
healthcheck:
test: ["CMD", "redis-cli", "ping"]
api:
build:
context: .
dockerfile: apps/api/Dockerfile
ports: ["3000:3000"]
env_file: .env
depends_on:
postgres: { condition: service_healthy }
redis: { condition: service_healthy }
volumes: [./apps/api:/app/apps/api] # hot reload in dev
command: npm run start:dev
dashboard:
build:
context: .
dockerfile: apps/dashboard/Dockerfile
ports: ["3001:3001"]
env_file: apps/dashboard/.env.local
depends_on: [api]
checkout:
build:
context: .
dockerfile: apps/checkout/Dockerfile
ports: ["3003:3003"]
env_file: apps/checkout/.env.local
depends_on: [api]
www:
build:
context: .
dockerfile: apps/www/Dockerfile
ports: ["3002:3002"]
volumes:
postgres_data:
```
Dockerfiles Required
apps/api/Dockerfile — NestJS with Prisma migrate on start
apps/dashboard/Dockerfile — Next.js
apps/checkout/Dockerfile — Next.js
apps/www/Dockerfile — Next.js
Dev startup script
```bash
scripts/dev.sh
docker compose up postgres redis -d
npx prisma migrate dev
npm run dev # starts all apps via turborepo
```
Acceptance Criteria
Severity: MEDIUM — No One-Command Local Development
Problem
The current
docker-compose.ymlonly includes Postgres and Redis. Every developer must manually start the API, dashboard, checkout, and www apps. There's no reproducible local environment.Implementation Required
```yaml
docker-compose.yml
services:
postgres:
image: postgres:16-alpine
environment:
POSTGRES_DB: tavvio
POSTGRES_USER: tavvio
POSTGRES_PASSWORD: password
ports: ["5434:5432"]
volumes: [postgres_data:/var/lib/postgresql/data]
healthcheck:
test: ["CMD-SHELL", "pg_isready -U tavvio"]
redis:
image: redis:7-alpine
ports: ["6379:6379"]
healthcheck:
test: ["CMD", "redis-cli", "ping"]
api:
build:
context: .
dockerfile: apps/api/Dockerfile
ports: ["3000:3000"]
env_file: .env
depends_on:
postgres: { condition: service_healthy }
redis: { condition: service_healthy }
volumes: [./apps/api:/app/apps/api] # hot reload in dev
command: npm run start:dev
dashboard:
build:
context: .
dockerfile: apps/dashboard/Dockerfile
ports: ["3001:3001"]
env_file: apps/dashboard/.env.local
depends_on: [api]
checkout:
build:
context: .
dockerfile: apps/checkout/Dockerfile
ports: ["3003:3003"]
env_file: apps/checkout/.env.local
depends_on: [api]
www:
build:
context: .
dockerfile: apps/www/Dockerfile
ports: ["3002:3002"]
volumes:
postgres_data:
```
Dockerfiles Required
apps/api/Dockerfile— NestJS with Prisma migrate on startapps/dashboard/Dockerfile— Next.jsapps/checkout/Dockerfile— Next.jsapps/www/Dockerfile— Next.jsDev startup script
```bash
scripts/dev.sh
docker compose up postgres redis -d
npx prisma migrate dev
npm run dev # starts all apps via turborepo
```
Acceptance Criteria
docker compose upstarts full stack (Postgres, Redis, API, Dashboard, Checkout, WWW)README.mdupdated with one-command setup:docker compose up