Hey everyone!
I’ve been rocking Proxmox for a little over a year on an old Mac Mini with a failing NIC (I probably damaged it when I installed the SSD). So I decided it was time to get some new used cheap hardware and I have just received a HP Elitedesk 800 G3 SFF, going to throw 32GB of RAM, a 1TB M2 NVMe boot drive and a 4TB SATA drive for media in it (this will replace my external 4TB drive).
Right now in Proxmox I’m running a Docker VM with Debian (Transmission-VPN container, ByteStash, FreshRSS, KaraKeep), another Debian VM for Visual Studio Code so I can remote into VS Code on my Mac and iPad and couple of LXC containers (Plex, Open WebUI and Pi Hole).
Honestly Proxmox feels like overkill for what I’m doing, half of what I’m doing is either individual LXC containers or I find myself SSH’ing into the Docker VM. The Proxmox helper scripts are great, but I feel like I’m not learning much and I don’t know how much I can trust random GitHub URLs.
I’d like to start learning and becoming more self-sufficient with Linux. I was pretty excited by the idea of learning NixOS, get comfortable learning the code and then creating distinct configurations for different systems, including my Mac devices with Darwin… then I was reminded of all the recent bullshit happening in the community… I don’t want to get deep into the discussion in this thread, but I don’t really want to use/support a distro that Palmer Luckey and Anduril are trying to influence and control.
So I’m trying to decide if I should stick with Proxmox, try something like Arch or keep an eye on what’s going down with Nix and have a good backup strategy if the situation worsens.
I’d probably switch from Docker to Podman, use Wayland with Niri and learn NeoVIM and use SSH instead of VS Code remote tunnels.
Based on my current setup and my goals, what would you suggest I do?
If you want to learn, go for it! Although if you’re running anything important, be sure you’ve got backups, and can restore your system if needed. I wouldn’t personally worry about the future of NixOS. If the project “goes the wrong way”, it’s FOSS, someone will fork it.
I’ve considered Proxmox, but immediately dismissed it (after light testing) due to the lack of control over the host OS. It’s just Debian with a bunch of convenience scripts and config for an easy libvirt experience. That’s amazing for a “click install and have it work” solution, but can be annoying when doing something not supported by the project, as you have to work around Proxmox tooling.
After that, I checked my options again, keeping in mind the only thing the host OS needs is KVM/libvirt, and a relatively modern kernel. Since it’s not intended to run any actual software besides libvirt, stability over quick releases is way more important. I ended up going with Alpine Linux for this, as it’s extremely light-weight (no systemd, intended for IoT), and has both stable and rolling release channels.
It is significantly more setup to use libvirt directly. After installation, Proxmox immediately allows you to get going. Setting up libvirt yourself requires effort. I personally use “Virtual Machine Manager” as a GUI to manage my VMs, though frequently use the included “virsh” too.
Docker to Podman, absolutely. Also checkout using base images instead of random intransparent downstream ones.
VMs are debatable. They are nice for separating things way better than docker does.
As distro, NixOS is very custom and you will want to learn its way. Arch does not make sense I think, but you can use anything as a server.
Otherwise Alma or Debian? Try HeliumOS too! Or uBlue uCore
I think having a solid/stable virtualization layer is very helpful. Whether that’s Proxmox, Incus, or something else, it’s a matter of taste.
You can then put NixOS, Guix, Debian, Arch, whatever on top.
You’re more of an expert in home-server stuff than me, but here’s what I do and my reasons why, maybe they can help you find an answer yourself.
I’ve chosen Arch for my homeserver (contrary to most people prefering Debian) since:
- I’ve been using it for years and know a lot about it, so maintenance isn’t an issue at all.
- Newest software = latest bug and security fixes, features etc.
- the Wiki makes installing anything a breeze and many questions and issues are already answered in the arch forums
I don’t use a docker image and I don’t see its necessacity (again, you know better then me). I’ve seen however servers that use NixOS because they can have the whole infrastructure/system in a git repo, which makes moving to a new server easy and without issues, which is not your case since you’ll be running it on the same machine.
I’ve never used proxmox but if it’s specifically built for what you’re looking (ie. home server) then go for it even if it’s overkill. For me personally, Arch works great as a server.
fwiw, I’ve got fedora and ubuntu on the server, I don’t interact much with the underlying os, everything is in a container. The user (me) facing differences are that I’ve got podman on fedora, docker on ubuntu. Selinux on fedora vs apparmor. Cockpit on fedora vs no cockpit preinstalled on ubuntu.
I could also use arch as a base, to me, the user, it wouldn’t make much difference other than that I would have to manually install and setup all the tools that are already setup on fedora. It’s all linux.
Here’s my journey from arch to proxmox back to arch: https://bower.sh/homelab
I was in your shoes and decided to simplify my system. It’s really hard to beat arch and I missed having full control over the system. Proxmox is awesome but it felt overkill for my use cases. If I want to experiment with new distros I would probably just run distrobox or qemu directly. Proxmox does a lot but it ended up just being a gui on top of qemu with some built in backup systems. But if you end up using zfs anyway … what’s the benefit?
Proxmox. Then an Arch VM to fuck around with and break.
Arch
I daily drive Arch on my personal laptop, which is great. I also tried running an Arch server at some point… which I’m not sure about. The updates really start piling up on a server because I’m not running
pacman -Syu
all the time… which feels bad, but maybe it’s fine? idk. Not sure what other people think.NixOS
There is something called Guix, which is a hard fork of NixOS from a long time ago. It’s not a 1:1 replacement. But it does have some of the big features like reproducible builds. The Guix folks tend to be really loud about running 100% libre open source code, but don’t worry you can’t run non-foss code very easily to get your laptop working. It may not work for your usecase, but just something to know about.
Guix scares me because of all the Lisp and replacing systemd with GNU Shepherd which also uses Lisp
Proxmox is approaching enterprise class. I would go that direction without much thought.
I’d say Arch Linux if you are sure about doing something else than Proxmox. The wiki and help posted on the internet might benefit Arch switch currently. You can get the experience you are looking for and it doesn’t box you out of using Nix. Arch will get you going sooner IMO.
NixOS seems fun though and I’ve only recently starting messing with it. You will do best engaging with what you prefer best. The NixOS switch could pay better dividends in the future though.
If I recall this hasn’t been the first time NixOS has had to consider Palmer/Anduril. You could keep an eye out for the auxolotl project that is doing an alternative/fork of Nix.