As shown by awesome-nix NixOS is plagued with a large number of deployment tools.
When I first started converting my home network to NixOS (several years ago), I used deploy-rs, which worked great…until it didn’t. I may be an idiot, but when I had trouble with configurations, particularly any trouble that made server inaccessible, deploy-rs left me frustrated, because although I had to get in to the remote system to figure out what was wrong, I had to fix it on the deployment side.
Since then, I just do everything manually. All the systems share a nix flake in a local git repo, and to update a remote machine, I ssh hostname 'sudo; cd /etc/nixos; git fetch; nixos-rebuild switch'. This way, I can make changes from any machine in the network, but the changes are always editable from the remote machine.
I’m wondering if it’s worth trying another tool, or if I should just stick to what I have.
With that in mind, I guess my creteria are:
- Must be able to recover from the target machine.
- Don’t make configuration more complicated than it needs to be.
comin looked interesting, but feels a little opinionated, and doesn’t seem to put the git repo in /etc/nixos, so I don’t know if it meets criteria 1. Also, a pull model might be a little too automatic for my updating tastes.
Clan looks very intriguing, but tears me between “this does everything I’m looking for” and “this adds layers of abstraction that overcomplicates an already complicated thing.”
Or perhaps I should give deploy-rs another whirl?
Any feedback is greatly appreciated ![]()