Skip to content

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://).

Orrery — architecture documentation · MIT · No tracking