Deploy dev Option A — Docker (recommended, full stack) # First time or after dependency changes: docker compose -f docker-compose.dev.yml build # Start everything (api + all frontend apps + postgres + redis): docker compose -f docker-compose.dev.yml --profile full up # Or start only what you need (mix and match profiles): docker compose -f docker-compose.dev.yml --profile api up # api only docker compose -f docker-compose.dev.yml --profile api --profile dashboard up First run seeds the database automatically; subsequent runs skip seeding. Option B — Local (no Docker for apps) # Start infra only: docker compose -f docker-compose.dev.yml up postgres redis # Then in a separate terminal: npm run dev # starts all apps via turbo Port map (after port reassignment) ┌─────────────┬───────────────────────────────────────────────┐ │ App │ URL │ ├─────────────┼───────────────────────────────────────────────┤ │ public-site │ http://localhost:3000 │ ├─────────────┼───────────────────────────────────────────────┤ │ marketplace │ http://localhost:3001/marketplace │ ├─────────────┼───────────────────────────────────────────────┤ │ dashboard │ http://localhost:3002/dashboard │ ├─────────────┼───────────────────────────────────────────────┤ │ admin │ http://localhost:3003/admin │ ├─────────────┼───────────────────────────────────────────────┤ │ api │ http://localhost:4000 │ ├─────────────┼───────────────────────────────────────────────┤ │ pgAdmin │ http://localhost:5050 (needs --profile tools) │ └─────────────┴───────────────────────────────────────────────┘ ▎ Note: In Docker dev each app is directly accessible on its own port. The /marketplace, /dashboard, /admin proxy ▎ through port 3000 (public-site) only works when running locally (not in separate containers), since localhost inside ▎ a container refers to that container only.