Hey, folks I’m moving my main PC to linux soon, and for that I have settled on Mint. However, I also plan to build a homelab pc for the first time to selfhost some services, mainly Jellyfinn, some game servers, and possibly next cloud, but I’m unsure which distro to go with for that.
I have some experience running debian headless (on an orange pi) and I can use ssh and the cli just fine, however, I also want the server pc to (maybe) serve as a moonlight client in my living room, so I was leaning towards something that is not headless, and I am unsure if I should also go with Mint for that or if something else might be more suitable.
Proxmox as Hypervisor and for VMs just Debian.
This! I also have an old GPU in it, passed through to whichever VM I want to game on! Total pain to set up, but then also a pain to use! I forget why I did it…
This is the way
I agree with having the server run Proxmox like others have said. Check out these YouTube channels for helpful information/guides:
LearnLinuxTV
LawrenceSystems
CraftComputing
Sounds like proxmox would fit the bill. Virtualize everything with LXC/Docker/VM depending on the app and you should be good to go. Moonlight should work in a vm running debian desktop for example.
How do I decide what to choose between VM and LXC? For example if I want to use Paperless/Jellyfin/Immich as Docker and Nextcloud without Docker.
And would you have multiple VMs/LXCs for multiple Docker-Apps, or put them all in one?
If you want a gui on your server ignore the Proxmox just use Debian
Removed by mod
deleted by creator
If you want to get real fancy with it you could do something like Nix, but honestly I would recommend Debian first almost every time
Separate the use-case here:
-
For your desktop, whatever works. There is no one distro that gives you some leg-up on performance or anything else. You can install the same software on all, and the kernel is largely the same.
-
Just get or build a NAS for hosting media. A Synologynor Qnap has a bit of added cost, but the maintenance overhead is reduced by a LOT versus running TrueNAS, OMV, or similar. That being said, choose the right tool for the job, and don’t just run Debian for this purpose because it just adding admin overhead you don’t need. This probably has been solved from your specific angle.
a NAS in this economy? (kinda joking but damn everything is so expensive right now I would advise anyone to just use whatever they can find even if it means adding admin overhead)
Yeah, there’s no way I can build another machine in this economy haha Especially because I’m in SA, and here hardware costs 2x-4x
You literally say in your post you’re building another machine.
Make it a single purpose machine that does the thing you need it for.
They could be building with components leftover from other builds, not entirely buying them.
I get it, I live in Latin America so I doubt they will find any NAS affordable (edit i assumed SA was south africa lol, and it’s brazil so yeah everything there will be WAY MORE EXPENSIVE)
Yes, I’m building one with old components that I have been buying and saving up for the last three years. I got a good deal on an Arc A310 and that’s the newest thing in that setup, the other stuff is all 8+ years old.
Make sure your motherboard can support resizable bar. Intels arc cards require it.
Especially for older hardware that may be hidden in a firmware or uefi/bios upgrade.
-
Eventually proxmox will be the right choice for you. Right now it’s not because you’re not skilled or knowledgeable enough to be able to navigate it.
That is not a dig or a slight, it’s a very powerful and complex package built on top of an already powerful and complex package.
Just do containerless normal person Debian then when everything’s running how you’d like and you’re ready you can migrate to proxmox.
The big benefit of doing that instead of jumping into proxmox with both feet immediately is that you’ll be learning more and be able to solve your own problems as you get to the point of using proxmox.
But what would Proxmox do?
It’s the virtualisation, right? Won’t it consume extra resources? Or won’t it be unimportant, since it’s very little? (Never worked with VMs seriously, only casually ran some things here and there.)
I’m not the original poster, but I’m curious too. I think I’d pick some Fedora / Arch for the task, depending whether someone else would use it too.
there is some overhead but it’s not like running a full VM when you are talking about containers and it is way safer if you want to expose anything to the internet due to isolation
edit: i’m talking about containers in general, not proxmox exclusively
Proxmox gives you a nice (and limited!) front end to manage containers and virtualization, but it also lets you do other cool stuff like resource pooling, credential management and too much to really get into.
Really powerful enterprise and whole organization level management in that package.
It’s not the only game in town, but it’s free and well documented and I recommended bare metal Debian as a stepping stone as opposed to alternative because proxmox runs on top of Debian so knowing that system is very nice.
The overhead is real. On the other hand, all your little vms and containers are rarely doing something all at the same time so it doesn’t matter.
I did something similar. Everybody is different so maybe not the best option for you, but who knows.
I have a single mini PC that handles my stack of virtual machines hosting various things. For the main OS I went with Fedora KDE. I chose something with a GUI for two reasons, the primary being that sometimes… Maybe not as often as you get more familiar, but sometimes there is an easier way to accomplish something in the GUI than in the CLI. Things like system settings. You can save a lot of time looking up commands and syntax by flipping a switch in the settings application.
Second and most important reason for the GUI, I watch TV on this thing. Which I would not recommend if you are hosting anything that can’t handle a little downtime. Once in a while a web browser may hang, bluetooth could fail, and you end up having to restart. Nothing I host is critical to anybody so this isn’t a big deal to me. I also find a little inner peace knowing that I am interacting with the main system controlling these hosts on a daily basis. If it does get compromised in some way this makes it just a little more likely I will notice quickly.
So that’s the hardware system and I’m running Libvirt as the hypervisor. It’s pretty bare bones, but easy to use and gets the job done. Hardest step to me was generating SSH certificates/keys. Not that it was hard moreso just new to me. Libvirt will not allow you to connect remotely with plain text. So regardless of your threat model this is a required step if you want remote access to the hypervisor remotely.
If you make it that far you can start really getting into the weeds with networking. I’m not going to go into the topology of my network, but I will say if you are hosting anything public you should do as much as possible to isolate that from your home network. You can create a VM to act as a firewall/router for other VMs.
Honestly when you kind of know Debian than stay with it. It’s greater software. You can easily install a graphical desktop if you like to do so. Also it’s quit comfortable to have the same package manager on all you systems.
My server has been running Debian for over a year now with zero issues. Here is a list of the things I run:
- Invidious.
- Audiobookshelf.
- Navidrome.
- Pihole with unbound.
- Searx.
- Cloudflare
Hope this helps.
How good is invidious? At the moment I’m pulling all of my videos in with TubeArchivist and that’s been hit or miss with getting blocked by YouTube. I also don’t watch my videos fast enough so they get backed up.
How good is invidious?
The experience, at least in my case, has been the same. Invidious is very hit or miss due to YouTube’s methods of blocking connections, one day my instance will be working perfectly fine and the next will drop some obscure error. While my instance is technically public, it is only exposed to 1 country and even then hardly gets any hits off of my reverse proxy.
Thankfully they tend to update pretty frequently when YouTube starts acting up on a large scale.
At least he’s incompletely helping fight climate change, against his will
I’d still try Debian for this. Its just so rock solid, mine kills as a jellyfin server. Though I am unsure if the sometimes older packages will effect Moonlight in some sort of way. Never used Moonlight.
Everyone who said proxmox didn’t read your post to the end. Proxmox is great for people who want a machine to just self-host things and don’t care about how things work. You don’t seem like that sort of person, and you also mentioned Moonlight which will be annoying to do on proxmox as it’s not intended for that use case.
Every system capable of being used as a Moonlight client can run self-hosted services, but the other way around is not true. So it’s better to start with the Moonlight part.
So, with that in mind I imagine you want this machine to be plugged to a TV in the living room or something similar, so it needs to have a GUI, and the GUI probably needs to be something you can navigate with a controller (although the new Steam controller probably increases that definition dramatically).
You will already have one system with a GUI, so it’s easier to use the same thing. Really, don’t overthink this, if it’s good for general use it’s good for self-hosting, and you don’t want to have to learn how to solve the same problem in multiple ways because of different distros. In the future considering different distros makes sense, but when you’re just getting started nailing the basics is easier with consistency across systems. Think about it this way, if you were learning how to write mixing cursive and print at the same time would be harder than choosing one and then learning the other.
But why proxmox is great? It’s because it makes it easy and gives you a GUI to add services. How hard is it to do the same on Linux using docker? Ssh into the server, edit a small text file and run a single command, all of which should be easy for you since you’ve probably done this in the past, but for most people that is very hard and that is where proxmox shines.
Don’t believe me? You said Jellyfin, this is the whole Jellyfin file with comments:
# Services that this file creates services: # Name of the service, it can be whatever you want jellyfin: # Image this server runs, this is what tells what the service is image: lscr.io/linuxserver/jellyfin:latest # Volumes to mount. In the format <local>:<inside the image> # So this will mount the ./jellyfin folder inside /config for the image # some services require specific folders inside of them, e.g. /config to store jellyfin's configs, otherwise the folder would get lost with every restart of the service volumes: - ./jellyfin:/config # Rarely needed, but this gives hardware access to the image. Specifically access to the /dev/dri device # Jellyfin specifically benefits from this for transcoding devices: - /dev/dri:/dev/dri # This shows what ports you want to expose, again in the format <local>:<inside the image> # So if you want Jellyfin on port 8080 on your machine you don't need to change settings, just do 8080:8096 ports: - 8096:8096 - 8920:8920 - 7359:7359/udp # This tells docker to restart the service if it crashes, unless you've stopped it restart: unless-stoppedThat’s it, and this is one of the most complicated ones out there, here’s a simple one:
services: radarr: image: lscr.io/linuxserver/radarr:latest volumes: - ./radarr:/configOf course there’s more to those files, and lots of extra configurations to be used, but the core is very simple and the rest is just needed for special cases.







