feat(infra): add self-hosted container stack

Run the SQLite dashboard as a Docker container on a self-hosted host,
managed by the atlantis-campus Alchemy stack. The container publishes
its port on the host loopback only; users connect through SSH port
forwarding. The stack creates no Cloudflare resources and keeps
Cloudflare only as the state store.

- ATLANTIS_DB_DRIVER=sqlite builds use @sveltejs/adapter-node.
- apps/web/Dockerfile builds with Bun and runs on Node 24.18.1, which
  avoids the Node 24.19+ better-sqlite3 GC abort (nodejs/node#65446).
- The image tag is a content hash of the build inputs, so a source
  change replaces the container and an unchanged deploy is a no-op.
- The data mount is writable because WAL-mode databases need their
  -shm/-wal sidecars; the dashboard still opens them read-only.
- LOCAL_DATA_DIR selects the dataset directory the dashboard scans.
2c079d4a47flamboh committed on 9/28/2026, 9:49:16 PMparent75182f5
18 files changedLine totals unavailable