DSH Development Container
Use a general development-container image with automatic DSH updates plus Compose and Quadlet deployment examples.
Project overview
Containerized DeepSeek Harness (dsh), built on a small debian:13-slim base with only the toolchains this project needs: Node.js LTS, pnpm, uv, Rust/cargo, Caddy, podman, and GitHub CLI. It is ready to use out of the box with optional dsh auto-update baked in. The image is published to GitHub Container Registry; both the compose.yaml and the Quadlet .container examples pull the image directly — no local build needed.
Everything else uses built-in defaults: dsh data: /.dsh (/home/dsh/.dsh) — upstream default, no DSHHOME override working directory: $HOME (/home/dsh); dsh creates folders under it as needed Rust/cargo: /.rustup + /.cargo uv: /.local/bin (managed Python/tool data in /.local/share/uv) pnpm: /.local/share/pnpm
The whole /home/dsh directory is the persistence boundary: mount it as one volume so user-level state survives while /usr/local and the rest of the system layer are reset on image upgrades. User-level tools (Rust/uv/pnpm/dsh) are baked into the image and copied into a fresh named volume on first start; system packages installed later with sudo apt live in the container/system layer and are not part of the persistent home volume.