# Development

The host only needs Docker. Rust, Node, Go, maturin and build outputs stay in containers and their cache volumes, with the source mounted read-only.

```sh
./scripts/test-container.sh          # full verification: crate tests, feature matrix, bindings, UI build, Web smoke test
./scripts/run-container.sh cli …     # run the CLI in a container; data lives in the cipherfs-data Docker volume
./scripts/run-container.sh web       # build and run Web, mapped to 127.0.0.1:3000
```

The workspace commits `Cargo.lock` and the UI `package-lock.json`. Verification results are recorded per source stage in `docs/IMPLEMENTATION_AUDIT.md` and `docs/evidence/`; a script existing is not evidence that it passed.
