Install from source
Rivet has no packaged releases yet. Build it from a checkout with Rust 1.85 or newer:
Installing to /usr/local/bin keeps sudo rivet working, since sudo resets PATH, and it is one of the locations SSH runs look for an installed runner.
If you plan to run the compile service, also build rivet-server:
Where to build it
A macOS build can’t run on a Linux host. To manage hosts over SSH from a Mac, also build Rivet on Ubuntu 24.04 for the host’s architecture and pass that binary with --runner-binary. Rivet uploads it on first use. See Linux artifacts from a Mac.
Host requirements
Applying changes requires root. Planning works without root if the user can read the objects being inspected.
Each resource relies on standard system tools: apt and dpkg for packages, shadow-utils for accounts, systemd for services and timers, util-linux for mounts, and setpriv for running commands as another user. rivet facts checks which tools are present and advertises only the capabilities the host can support. Compiling against those facts catches a missing tool before anything runs.
Some features need tools on the controller: Git and curl for remote modules, and sops for encrypted data layers.
To build and run the test suite, see testing.