Hey, it would be nice if you could add some sort of real-world example so users would not need to go through 764line documentation
Sidenote:
I see that this project is also capable of deployments, I would love it if someone could write some deep-dive (or even shallow-dive) on all the nixos machine deployment options since it is starting to feel overwhelming. In fact, for one of my projects, I could not get some tool to work properly and thus I ended up writing a justfile for that
I will publish my own nix configuration soon. It contains a Mac, a nixos desktop, one router, and one web server.
For deployment tools, a quick rundown of the tools I know:
deploy-rs: can’t do parallel deployments.
colmena: can do parallel deployments, but mostly just a deployment tool.
nixos-rebuild: can’t do parallel deployments.
Nixverse simply calls nixos-rebuild under the hood, and feature wise is a different beast. For example, groups in nixverse is much more than just a way of tagging multiple nodes, it can define configurations that can be overriden by descendants, it can define secrets that can be overriden by descendants, etc.
inherit configurations from a group.
I use POP to solve the inherited configurations problem.
Based on the hive, I rewrite the implementation so it can be running without the std framework.
I will not get involved in user configuration and some customization, the user only needs to write the purest module configuration and the straightforward attreset that would be enough.
The big difference between tao3k/hive and nixverse is that it has not yet developed a specific CLI support.
Asking to experience users because I’m a noob, and my dotfiles flake got already complex enough to understand it. So I’m looking for ways to make it simpler and work better, but there are many alternatives and I’m currently in a paralysis.
Currently I’m using flake-parts, but I feel I need something giving better structure
Thank you very much!
Snowfall was indeed also in my list, but thanks for the tips on it.
Something I like about nix-unified (in theory, I didn’t tested it in practice) is they claim to provide you a flake app you can execute in any host to “bootstrat” your personal flake.
Not sure how that works in practice, but I think not Nixverse nor Snowfall support that.
Maybe is something trivial to implement? I don’t know, I’m just trying to cleanup the mess my current flake is
At least now, I don’t yet need to deploy to several systems in paralell.
Does that rebuild also clone the repo? Or just adjust the system to follow whatever that flake says?
It will be ideal if you have the option of also “install” the flake source, and not only apply it
Sure, but you probably don’t want to do that, because everything in a derivation is:
public to every user on your computer.
read only.
You can clone it properly in an activation script, but then you need to know the absolute path to clone it to, and also some guard against cloning it repeatedly. This feels a bit messy.
But If you have a better solution, I’d be happy to learn.