Today we’re happy to be releasing System Manager 1.0!
A while ago we had a project packaged with Nix. Ubuntu was the target environment. What if we could retain the properties we learned to enjoy with NixOS, even write a subset NixOS-compatible modules, and apply them to Ubuntu? That’s when System Manager was born.
Unlike Ansible, Chef or Puppet, System Manager has the packaging and configuration managed in Nix. That means that the majority of the configuration and build errors are discovered before being deployed. This is a feature we learned to enjoy a lot. Imagine having your CI report errors in minutes instead of 15-30 minute integration tests.
Then on top, we built a diff engine that mutates the host operating system. The engine has a limited surface and can only modify files in /etc and systemd units. All the changes are stored in a local state file, similar to Terraform, which makes it easy to revert change. No more “package remove” instructions.
There is no central controller or agents. The configuration is described as code and applied either locally or over SSH.
System Manager has been stable for over a year and is used in production by multiple companies (we love to hear about companies using our tool, please ping us if you do!). We added some documentation and marking it now as stable.
In terms of roadmap, it is entirely driven by the needs of our customers. For the next release, we adding support for user management and secret handling. We also accept PRs when the changes are easy to merge. This consulting-driven approach also means that you can depend on us to never bait-and-switch; our tools will always stay free and open source.
That’s it for now. We hope this tool is useful to you.
To try it out, we have a QuickStart guide and intro available at https://system-manager.net/
For support, reach out to us https://numtide.com/contact/