Russelfile.toml to a git repo, and Russel builds it with Nix and runs the result as a rootless Podman container. There are no images to build and no registry to push to: the container runs straight from the Nix store. MicroVMs (Cloud Hypervisor + KVM) are available as an experimental second runtime.
When to use Russel
How a deploy works
- Fetch. The server clones your repo and reads
Russelfile.toml. - Build. It runs
nix buildon the repo’s flake. If there is noflake.nix, Russel writes one for Rust, Go, and static sites. - Run. It starts the build output as a rootless container, with
/nix/storemounted read-only, and publishes the app on a127.0.0.1port. - Route. If you run Traefik, Russel writes a route so
app.example.comreaches the app.
Choose your path
The two programs
The control plane only speaks plain HTTP on loopback. Reach it from your laptop through an SSH tunnel or an HTTPS reverse proxy; Installation covers both.