Title is quite self-explanatory, reason I wonder is because every now and then I think to myself “maybe distro X is good, maybe I should try it at some point”, but then I think a bit more and realise it kind of doesn’t make a difference - the only thing I feel kinda matters is rolling vs non-rolling release patterns.
My guiding principles when choosing distro are that I run arch on my desktop because it’s what I’m used to (and AUR is nice to have), and Debian on servers because some people said it’s good and I the non-rolling release gives me peace of mind that I don’t have to update very often. But I could switch both of these out and I really don’t think it would make a difference at all.
Everything-in-my-life-as-code FTW
Besides everything else you said, I especially love how you can store entire bash scripts in the nix configs, and even populate pieces of said scripts with variables if you so desire.
Also, if you run
nixops
, it’s much easier to work with if your dev system is also running NixOS.Yeah, i’m realizing more and more how convenient those variables are. I recently started using gtklock for example, a screenlocker that also has separate modules for extra functionality, which are also in nixpkgs, but the problem is that you have to explicitly specify the path to those modules in the config. So i wrote the config inside of home manager, and pointed to the modules path with the pkgs.foo variables. Worked like a charm.
What do you use nixops for?
It’s for deployments and managing many environments/machines from a single CLI interface. You can do all sorts of things like push configs based on labels/groups, gather real-time data/logs, scale up/down. It’s great when you have a lot of VPS/VDS/VMs to manage and you’re not using a platform’s specific management tools.
I mainly use NixOS as a barebones backend, keep it as minimal and hardened as I can, then most of the projects/apps that run are done through something like Docker or k8s. So for me, it’s all about managing the underlying servers that provide the tools needed for a project to operate.
The tool itself is undergoing a pretty big redesign at the moment, but you can get the gist of it from the overview in the manual of the commands.
https://hydra.nixos.org/build/115931128/download/1/manual/manual.html#chap-overview
That’s fair enough, I also host some applications on a k8s cluster, but for the underlying OS I picked talos instead.
I use NixOS and Home Manager to keep my configuration as code and shared between my PC and laptop.
The only VM I have running NixOS isn’t actually doing all that much, and I don’t mind ssh-ing into it to apply new configs from time to time.