Skip to content

Requirements & Caveats

  • Nix: nix on PATH, plus common utilities (uname, id, echo, cat, readlink, curl, tar) that run on the target machines during Inspect, Bootstrap, and Rollback
  • rsync: on the control host and targets for file transfers (included in kexec images); version 3.2.3 or newer, since Panix passes --mkpath
  • kexec memory: 1GB RAM minimum without swap for kexec bootstrap
  • SSH key auth: password authentication is not supported
  • Flakes: only Nix flakes are supported

Lix is a Nix fork that Panix detects and supports automatically. Detection runs on the local machine only; the local nix flavor decides behavior for all targets. Panix adjusts:

  • Store URL format: Lix uses ?port=N query params instead of :port in the host.
  • nix profile command: Nix 2.30 renamed nix profile install to nix profile add (keeping install as an alias), but Lix only supports install. With Lix detected locally, Panix uses nix profile install for package activation on all targets.
  • Nix store location: Panix expects the store at /nix/store; build outputs are validated against that prefix, so non-standard store roots are not supported.
  • Nix store locking: concurrent builds of identical packages serialize on the store lock, so some builds briefly show a waiting for store lock warning.