Files
ProjectE/docker-compose.yml
T
Hermes fca56ab77e T1/Phase 1: scaffold Vite SPA + Hono API + Bun worker
- apps/web: Vite + React 19 + TanStack Router/Query + shadcn/ui
   - apps/api: Hono + Bun on :3001 with /api/health, /api/auth/*, /mcp stubs
   - apps/worker: Bun worker stub, DB connection, graceful SIGTERM
   - apps/web-legacy/: old Next.js code moved aside (preserved for T2-T8 reference)
   - Dockerfiles: api (Bun), worker (Bun), spa (multi-stage Caddy)
   - Caddyfile: serves dist + reverse-proxies /api/* + /mcp to api
   - docker-compose.yml: 4-service target (api, spa, db, worker)
   - packages/db/src/client.ts: shared Drizzle client for api + worker
   - db/client.ts: root-level alias for convenience

   Parent: t_e1cbd87d -> t_24c9c3fd (T0)
2026-08-01 01:15:31 +00:00

76 lines
1.8 KiB
YAML

services:
db:
image: postgres:16-alpine
container_name: project-e-db
ports:
- "5432:5432"
environment:
- POSTGRES_DB=project_e
- POSTGRES_USER=project_e
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:?Set POSTGRES_PASSWORD}
volumes:
- project-e-pg-data:/var/lib/postgresql/data
- ./drizzle/0000_first_mauler.sql:/docker-entrypoint-initdb.d/0000_first_mauler.sql:ro
networks:
- project-e-network
healthcheck:
test: ["CMD-SHELL", "pg_isready -U project_e -d project_e"]
interval: 10s
timeout: 5s
retries: 5
restart: unless-stopped
api:
build:
context: .
dockerfile: Dockerfile.api
container_name: project-e-api
ports:
- "3001:3000"
environment:
- NODE_ENV=production
- PORT=3000
- DATABASE_URL=postgresql://project_e:${POSTGRES_PASSWORD:?Set POSTGRES_PASSWORD}@db:5432/project_e
- AUTH_SECRET=${AUTH_SECRET:-stub-secret}
networks:
- project-e-network
depends_on:
db:
condition: service_healthy
restart: unless-stopped
spa:
build:
context: .
dockerfile: Dockerfile.spa
container_name: project-e-spa
ports:
- "3000:80"
networks:
- project-e-network
depends_on:
- api
restart: unless-stopped
worker:
build:
context: .
dockerfile: Dockerfile.worker
container_name: project-e-worker
environment:
- NODE_ENV=production
- DATABASE_URL=postgresql://project_e:${POSTGRES_PASSWORD:?Set POSTGRES_PASSWORD}@db:5432/project_e
networks:
- project-e-network
depends_on:
db:
condition: service_healthy
restart: unless-stopped
networks:
project-e-network:
driver: bridge
volumes:
project-e-pg-data: