# feat\(infra\): add self-hosted container stack · flambo/atlantis

[View on GitCafe](https://git.cafe/flambo/atlantis/commit/2c079d4a4784b119d43dbe1218a0d7ae07fff170)

Repository: [flambo/atlantis](https://git.cafe/flambo/atlantis)

Visibility: public

Requested revision: 2c079d4a4784b119d43dbe1218a0d7ae07fff170

Requested commit: 2c079d4a4784b119d43dbe1218a0d7ae07fff170

Commit: 2c079d4a4784b119d43dbe1218a0d7ae07fff170

Tree: 9ee583dac489b8923b331e483a83c09a1e7e9c95

Author: flamboh

Committer: flamboh

## Message

```
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.

```

## Parents

- [75182f5692cbb4979c7e3b03bc8a681a6e740ad5](https://git.cafe/flambo/atlantis/commit/75182f5692cbb4979c7e3b03bc8a681a6e740ad5?format=markdown)

[Source at this commit](https://git.cafe/flambo/atlantis/tree/2c079d4a4784b119d43dbe1218a0d7ae07fff170?format=markdown)
