I've started before Umbrel (at least it wasn't widely known back then). It's a hobby project. Since it's a Raspberry Pi it's quite slow to do nixos-rebuild switch and UX would probably improve if I used RaspiBlitz, Umbrel or sth. But if you have to deploy multiple nodes to some cloud provider Nix really shines.
NixOS is a great Linux distribution but idea is more that this approach replaces your other "DevOps configuration management tooling" (terraform, ansible, puppet, chef etc). Beside the reproducible builds and great caching through Cachix.
I've written unit tests against the declarative state of a node. So your pipeline can for instance fail if service X is not configured to be running or that server doesn't have user Y (all without actually having to connect to the server). And then you can have another step / automated process that syncs and applies the stuff to the server. Total GitOps :)
My main pain point was actually packaging software that requires nodejs (like RTL). Nowadays it's much easier since a lot of stuff is already in nixpkgs and also documentation got better.
Yes, it is a lot easier today. You can check out our git repo here: https://git.sovransystems.com/Sovran_Systems/Sovran_SystemsOS. It is all a NixOS flake implementation.
reply