Edit: wow, this is a never ending comment section!
NixOS, I find the config very easy and quick
I’ve just dipped my toes into it, but I imagine migrating to another machine to be just gorgeous…
NixOS
Currently I am using Arch Linux. I am in the process of switching to NixOS.
I still use Arch btw.
A few actually.
Rocky Linux 9, XCP-NG, Windows server 2022 datacenter
Different usecasses.
My setup consists of the following:
Unraid, most services I self host run in docker here. Things like plex/jellyfin, nextcloud, unifi could controller.
Proxmox, used to virtualize my pfsense after I moved away from my unifi USG router. A few Linux and Debian headless virtual machines run here as well. Had pihole virtualized here as well but switched over to pfBlockerNG to consolidate.
TrueNAS, all my media shares. I also sync my desktop environments here to have a consistent windows desktop across my desktops and laptops.
Home assistant running on home assistant yellow. Runs a few add-on services.
Debian for all things.
Debian all the way
Fedora Server, with most of the services I need running via Docker.
TrueNAS Core as main OS and a few jails for the services I run on the machine.
Depends on what you want to do with it. But for most things Debian or Fedora (Server edition) work fine.
i hear bad things about it, how does fedora server compare to debian?
Cockpit was east harder than Proxmox for me.
It’s much more up to date and in my experience works fine.
Mythbuntu. It started its life as a MythTV server.
Currently Ubuntu server 22.04
Previous was ESXi
Next one will be Proxmox
NixOS
Same here. I came for the integrated ZFS support and stayed for the declarative config.
how is nix better than debian for servers?
It isn’t, it’s just different. I use NixOS because of stupid easy rollbacks, which is great for experimenting in production, and its declarative nature, which is great in a server setting.
Everything is declared, from packages to configuration, and then I can put it in a git repo locked to versions. If something breaks on updates, you have free rollbacks. Which means you can’t screw up too much. Also it has almost all the software.
Declarative configuration of services and the rest of the entire system, and everything that brings with it.
- Want to test some new service, or make changes to an existing one, but don’t know if you want to keep it? Sure, just temporarily switch to the new configuration, you can always switch back to the old one and everything will be back as it was.
- Have multiple servers and want to share configuration between them? Absolutely, just import the same file from both. I have a git repo storing configurations for 10 machines and a huge part of it is shared configuration.
- Want to use one service’s endpoint (such as a socket path) in another? Sure, just use the socket path configuration option for the first service in the configuration for the second, such as here. This works since everything is a single tree of options which all the service configuration files are then generated from, so interpolate stuff as you wish.
- Checks for configuration correctness during build of the system (NixOS options are type checked during evaluation, and then during the actual system build there’s more checks, like nginx config has to succeed
nginx -t
, otherwise the system build fails and you can’t switch to it) - Want to spin up a VM to test changes before putting it on the actual target? There’s a builtin command (nixos-rebuild build-vm) that makes a script that starts a QEMU VM with your configuration running in it. It’s as fast as building the real system, so a couple seconds if you’re making small changes.
- Setting up services is also often as easy as putting
services.foo.enable = true;
in your configuration. And, if you remove that line, the service is gone, so you’re never left with “the random package or file you installed once to test something and has been forgotten about”. That’s the biggest thing it has over any kind of imperative solution IMO.
I feel like even if I want to distro hop again and end up putting something else on my desktop, NixOS is going to stay on my servers indefinitely. It’s pretty much a perfect fit for servers.
I just heard of NixOS for the first time because of this thread. Looked up some videos on it, and my jaw hit the fucking floor.
I really liked https://www.youtube.com/watch?v=AGVXJ-TIv3Y - step by step, with examples and great explanations. Warning: it’s long, but I watched it in one session.
Here is an alternative Piped link(s):
https://www.piped.video/watch?v=AGVXJ-TIv3Y
Piped is a privacy-respecting open-source alternative frontend to YouTube.
I’m open-source; check me out at GitHub.
OpenMediaVault
Windows 7
Win7 and Win10.
Windows Hyper-V Server on the host with most of the VM’s split between Ubuntu and Debian. I also have two Windows VM’s that I keep out of necessity.