ADR-005 — nginx + Docker Compose deployment
Status · Superseded by ADR-014 (GitHub Actions + GitHub Pages) Date · 2026-04-01 · Superseded April 2026 TA anchor · §stack · §constraints
Context
The application needs a deployment target that is self-contained, reproducible, and runnable with a single command on any machine with Docker installed.
Decision
Single nginx:alpine container managed by Docker Compose. docker compose up installs and runs.
Rationale
Simplest possible deployment for a static application. No application server, no backend, no orchestration complexity. The data/ directory is mounted as a separate volume so mission data can be updated without rebuilding the application bundle.
Alternatives considered
- GitHub Pages / Netlify — valid for public hosting; doesn't satisfy the self-hostable, offline-capable requirement.
- Serve via
npm run preview— development only; not a production deployment. - Apache — equivalent to nginx for this use case; nginx is more commonly used for this pattern.
Consequences
Positive: single-command deploy; reproducible across environments; data updates don't require rebuild. Negative: requires Docker; adds a layer for developers who just want to open the HTML files (prototypes still work as file://).