ADR-002 — Development Stack (MVP Local)
ADR-002 — Development Stack (MVP Local)
Sección titulada «ADR-002 — Development Stack (MVP Local)»Accepted
Context
Sección titulada «Context»The local development stack must allow fast iteration without friction: spin up the database, backend, and frontend with the minimum number of commands, without installing system dependencies outside of Docker and Node.
Decision
Sección titulada «Decision»The local environment runs with two concurrent processes:
-
Docker Compose — spins up PostgreSQL 16 + Django API in containers. A single command from the project root:
Ventana de terminal docker compose up -dThe
apicontainer entrypoint runs migrations,collectstatic, and superuser seeding automatically on startup. -
Angular dev server — runs outside Docker, directly on Node:
Ventana de terminal cd frontend && bun startProxy configured in
angular.json: all/api/*requests are redirected tolocalhost:8000.
Environment variables: a single .env at the root, copied from .env.example. There is no .env in frontend/ or backend/; Docker Compose injects them into the container.
Stack verification:
curl http://localhost:8000/api/health/ # {"status":"healthy","database":"connected"}curl http://localhost:4200/api/health/ # same JSON, via Angular proxySub-decisions
Sección titulada «Sub-decisions»- [[adr-002-a-backend-dev-stack|ADR-002-a]] — Backend Development Stack. Pins Python, Django, DRF, psycopg, uvicorn, django-fsm-2, and PostgreSQL versions for reproducibility between dev and prod Docker images.
- [[adr-002-b-frontend-dev-stack|ADR-002-b]] — Frontend Development Stack. Pins Bun, Angular, TypeScript, PrimeNG, Tailwind, and Vitest versions; establishes Bun as the sole package manager and script runner.
Consequences
Sección titulada «Consequences»- Neither PostgreSQL nor Python is installed directly on the host system.
- Hot-reload is active on both sides:
--reloadin uvicorn,ng servein Angular. - Version and dependency sub-decisions are in [[adr-002-a-backend-dev-stack|ADR-002-a]] (backend) and [[adr-002-b-frontend-dev-stack|ADR-002-b]] (frontend).