Determinate Nix Installer is a command-line tool that installs Nix and flakes across a wide range of platforms and environments.
The tool solves the problem of reliably installing Nix in heterogeneous environments where the standard installation process may fail or require manual configuration. It works by using platform-specific planners that detect the target system and apply appropriate installation strategies. By default it installs Determinate Nix, which enables flakes and includes various improvements over upstream Nix, though it can also install upstream Nix if needed. The installer handles environment-specific concerns like SELinux, systemd-based multi-user setups, and macOS upgrade persistence automatically.
The tool is suitable for anyone installing Nix on macOS, Linux, Windows Subsystem for Linux, Podman containers, Docker containers, or the Valve Steam Deck. It is particularly valuable in CI/CD contexts, where it integrates with GitHub Actions and GitLab. The installer supports both single-user and multi-user configurations depending on the platform, and provides a clean uninstall path. On macOS, a graphical package installer is available as an alternative to the command-line tool.
The project maintains a troubleshooting guide for installation problems. The tool completes tens of thousands of installations daily across multiple environments including GitHub Actions and GitLab, indicating sustained production use at scale. The installer is written in Rust and offers configurable behavior through environment variables and command-line arguments, with platform-specific options documented for each supported system.