# Container plan `Dockerfile` is a multi-stage Node 25 build — Node 25 because `node:sqlite` is what the data layer uses — and `docker-compose.yml` mounts a named volume at `/data` and reads `APP_SECRET` from the host environment. The image is written but unbuilt on the development machine, which has no Docker. The build is therefore the first thing to verify on a machine that has it: `bash scripts/smoke.sh --docker`. Known rough edges carried forward deliberately: `.dockerignore` excludes tests but the image copies `node_modules` including devDependencies, and a first real build may need a tweak. Related: [[Running locally]], [[Smoke script]], [[Environment variables]].