I am in the process of setting up my first servers and was thinking to use nixops for that. However the documentation is so confusing, most referring to 1.7, some to 1.8presomething, and others are speaking of NixOps 2.0.
Looking into the repo and its work on nixops 2.0 milestone, one gets the feeling, that it was abandoned entirely.
Of course I don’t want to use a tool which is no longer supported. (If it matters, I want to deploy to Hetzner online - dedicated server)
I dunno the “official” status, but I don’t think 2.0 ever actually came out. In terms of project scope it was basically trying to reimplement Terraform in Nix which I just don’t think would have ever been able to match the level of attention that Terraform itself gets.
Whatever it is was trying to do, Terraform does a whole lot better anyway. NixOS does provide official AMIs, so for any sort of infra-as-code cloud provisioning I would say just stick with Terraform and use the official AMI.
Then you can use one of the many NixOS based deployment tools to manage system updates and rebuilds. Colmena is good, or the aforementioned Cachix Deploy.
This approach has the benefit of giving you a clean split between inherently stateful workflows (cloud resource provisioning a la terraform), and stateless workflows (NixOS system revisions), so there is a nice separation of concerns with this sort of model.
Of course, most of my experience is with AWS so I am not sure if this translates well to Hetzner.
Our use case allowed it, so we switched to deploy-rs and never looked back. For hetzner servers (which we only have very few (single digit)) we lustrated them by hand (I know, lame) and everything was welll since.