Skip to main content
An upgrade replaces the russel-ctrl binary and restarts the service. Your apps keep running through it, and your token and state stay where they are.

What to back up

The Nix store doesn’t need a backup: Russel rebuilds anything missing on the next deploy, just more slowly.
The archive contains your secrets, so store it somewhere private. Restore it as root with sudo tar -xzpf … -C /, which keeps file owners, including the rootless Podman ids inside volumes.

Upgrade: Debian, Ubuntu, and other systemd distributions

Run the installer again with the new version:
It keeps /etc/russel/env and /var/lib/russel, replaces the binary, and restarts the service. If the new version doesn’t come up, it puts the old binary back. Upgrade the CLI on each machine the same way, with cli in place of host and without sudo. From source:
Check the result:

Upgrade: NixOS

Build the new russel-ctrl on the machine, install it at the path services.russel.bin points to, and restart:
If you set services.russel.package instead, update that package and run nixos-rebuild switch. Either way environmentFile and /var/lib/russel are left alone.

Going back to the previous version

  • Installer: if the new version fails to start, the installer restores the old binary for you. To go back later, run the installer again with the older RUSSEL_VERSION.
  • Apps: rolling back an app is separate from rolling back Russel; see Update and rollback.
Restarting or replacing the control plane never stops or removes your apps. On start it finds them and takes them back over.