Skip to content

Infrastructure: Full Docker Compose Setup — All Services #115

Description

@0xdevcollins

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

  • docker compose up starts full stack (Postgres, Redis, API, Dashboard, Checkout, WWW)
  • Prisma migrations run automatically on API container start
  • Hot reload works in development mode
  • All Dockerfiles use multi-stage builds for production
  • README.md updated with one-command setup: docker compose up

Metadata

Metadata

Assignees

No one assigned

    Labels

    Stellar WaveIssues in the Stellar wave programinfrastructureDevOps, Docker, deployment, monitoring

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions