A tool to configure Linux machines using Nix-style declarative configurations, enabling reproducible system management on any distribution.
System Manager is a tool for configuring Linux machines using Nix-style declarative configurations. It enables users to describe their system's desired state—including packages, services, and settings—in Nix code and apply changes atomically and reproducibly. It solves the problem of inconsistent and hard-to-reproduce system configurations by leveraging Nix's reliability on any Linux distribution.
System administrators, DevOps engineers, and developers managing Linux servers or workstations who want reproducible, declarative system configurations without being locked into NixOS.
Developers choose System Manager for its lightweight, Nix-based approach that provides atomic, reproducible changes and cross-distribution support, unlike heavier traditional configuration management tools. It uniquely bridges the gap between NixOS's power and the flexibility of running on any Linux distro.
Manage system config using nix on any distro
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Allows defining packages, services, and settings in Nix code for atomic, reproducible changes, as demonstrated in the cli_tools.nix example with btop and bat.
Works on non-NixOS distributions like Ubuntu, with experimental flags for others, enabling Nix-style management outside NixOS without vendor lock-in.
Leverages Nix's immutable layers for reliable changes and easy rollbacks, similar to NixOS generations, enhancing system stability.
Reuses existing NixOS modules, providing access to a mature ecosystem without requiring NixOS, as mentioned in the README's philosophy section.
Only manages a subset of system controls, unlike comprehensive tools like Ansible, which may not cover all infrastructure needs such as cloud provisioning or complex scripting.
Requires Nix installed with experimental features (flakes), adding complexity and potential setup issues, as highlighted in the quick start with extra command-line flags.
Official support is limited to NixOS and Ubuntu; using other distros requires an unsupported flag, risking stability and lack of assistance, per the warning in the README.
System Manager is an open-source alternative to the following products:
Chef is an infrastructure automation platform that uses code to automate how infrastructure is configured, deployed, and managed across network devices and cloud environments.
Ansible is an open-source automation platform for configuration management, application deployment, and task automation. It uses YAML-based playbooks to describe automation jobs in a human-readable format.
Puppet is an infrastructure automation platform that manages system configuration across servers using declarative code.