- docker-compose.dev.yml: backend on 8000, frontend (Vite) on 5173
- Backend mounts source files + uvicorn --reload for hot reload
- Frontend uses node:20-alpine, mounts ./frontend, runs npm run dev --host
- vite.config.ts: proxy target reads from API_TARGET env var
(defaults to localhost:8000 for plain npm run dev,
set to http://backend:8000 by docker-compose.dev.yml)
Usage: docker compose -f docker-compose.dev.yml up
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>