“Works on my machine” is fixed by parity: same major Postgres, Redis, proxy versions as staging.

Stack
- app, web, db, redis, caddy/nginx
- Single root .env in monorepo
Volumes
Named volume for PG; bind mount only for hot-reload code.
Seed data
Idempotent migrations + optional demo seed SQL.

Checklist
- One command docker compose up
- README with ports
- Healthchecks in compose
One-hour onboarding checklist
- README: clone, cp .env.example, compose up, migrate
- Ports and URLs on one page
- Healthchecks on db and app
- Seed covers login and one happy path
