Need help choosing software for upcoming server build

I am looking to build a server this fall with the release of all the new hardware(assuming prices are reasonable), that aside I need to figure out what software to run on it. Trying to understand what might be good software options, even if I have to pay for them, that doesn’t really matter if it is reasonable.

I have been using Linux Ubuntu and Windows for over 10 years casually, I am decent with computers. I have run a windows server 2012, 2x debian server and a ubuntu server. However I will say I do not have the enterprise knowledge, I tried to work with both proxmox and vsphere and yea… :face_with_symbols_over_mouth: It did not want to see any drives no matter what I did sooooz, so much for that experiment.

I’ll describe everything I intend to host below but I am going to require ZFS or BTRFS as I do not care to lose my files. My knee jerk thought is either Linux or TrueNas. I did see that UnRaid does offer ZFS via a plugin. I do know having docker or similar does open many easy possibilities so I would like to have it as an option.

This will be a home server and it will have a few parts

  1. Media Server - I am considering using JellyFin for this, mostly because I dislike forcing family to pay for a subscription to watch. This I do want to be available remote as I travel extensively and so do other family members and I do not care to be cut off solely because I am on the road. This will be a separate hard drive cluster.
    This will kinda be a x2? Not totally sure but I do want to put my books and music and photos on here as well.

  2. File Hosting Cloud backup - all personal stuff for myself and family. I honestly have no clue what to do here, just that it is possible.

  3. Perforce Server - because paying for one will cost me more then the buying a server in a year. Because I am an indy developer and collaborate with several (2) other developers. This will require them to remote in, I do own several domains and was considering using CloudFlare or something similar to redirect?

  4. Game Server host (x2 or more) - This is for hosting and testing a game between myself and friends. I am an indy developer so I need to be able to invite testers. This will eventually expand to potentially 200-300 people joining for testing. Games are typically hosted on linux or windows server, not to say it is the only every option. I may host a private server of a game or a few that I like to play to decompress with friends.

  5. I am not really sure what I don’t know or what else I might add in the future but for now I am looking at 3x raspberry Pi for a PiHole, a “remote in” linux box and some automation of my outside lights. I have been considering a firewall but I would really like a proper hardware box vs just virtual. Not sure if some of this can just be done on this server instead to save the money instead. I also would like to set up automatic backups for several home PCs. Maybe have some organization for all of this stored info that I am hording :rofl:

Again, looking for recommendations and knowledge. Nothing is set in stone here, just planning and learning stages.

I really do not want to work on a vacuum here as I am not terribly experienced in servers. Just a bit of self hosting in a vacuum for the last 2 years and some self hosting a bit here and there but that was all in a vacuum as well. Here are some of my ideas so far

Server Base: TrueNas _____? What version though? I am thinking scale over core. I would like enterprise but it doesn’t see that is available for download and I am not paying for their severely over priced servers.

Remote Connection: WireGuard
Proxy: Cloud Flare services - run via container

Media server: Jelly Fin

File Host: NextCloud
I would like to work obsidian into this to make data easier to find as this builds but obsidian is brand new to me.

Backup: ??? I have yet to find what I want. UrBackup seems to be one of the better choices I have found, syncthing seems to be recommend alot but its homepage doesn’t seem to tell me much… It would be nice to have the ability to say I want everything except for these select folders, or I want these folders here but nothing else. I find having a recovery can be a double edge sword so if it had that, great but if not…I don’t know if thats a big loss to me. One big point here thought is, do not duplicate files, 1 good copy is more than enough, not 50 like windows backup.

Virtualization: There are a few kinds supported and I’m not sure what is best or what will cost more.
Perforce server needs windows vm
Game servers vary needing linux or windows vm

Pihole can run on a container solution

Feel free to jump in with recommendations, thoughts, ideas, feedback. Nothing is set in stone, this is about learning.

Welcome to the forum!

The size of your build will have to either be pretty massive, or you would probably want to split the server into multiple smaller ones.

Proxmox runs Debian, so there is no reason for Proxmox not to work with your HDDs, as long as Debian does. Still, it depends on your preferences. I can always recommend just running Fedora and put libvirtd on it and call it a day, but not sure if you like all the manual setup involved in configuring your system.

Still virt-manager makes libvirt easy, so unless you don’t want to give Proxmox a try, you may use Fedora or Rocky Linux. I’d go with Fedora, because you plan on new hardware, so newer kernel releases is advised.

I would do a separate NAS running either TrueNAS Core / any Linux with ZFS / FreeBSD and mount the array on the virtualization server using NFS or iSCSI depending on your preference.

In the VMs or containers:
Media Server: probably JellyFin, but I’m not familiar with any of those, as I never used them, I just used Samba and streamed uncompressed video straight to devices… I believe you should be able to specify what files people can pick and if not, wow, media servers really suck then, compared to what a file system can do. But if you can, then I see no reason not to use JellyFin for everything.

File hosting: there’s really no beating NextCloud if you want the google drive / ms 365 vibe. Otherwise, just a file server (samba / nfs) will do.

Backup: If you have Windows PCs to backup, along with Linux boxes, then give BackupPC a try. You can select how many previous full (+ incremental) backups you want to keep, or you can have just one. I would personally do a backup server running ZFS and enable deduplication and file system compression and only do full backups, or maybe full + differentials if the size is too big. That way, duplicate files don’t even matter.

If you plan on running your server 24/7, I’d put a wireguard VPN VM / container on it. If not, I would put wireguard on a SBC.

For a backup server, I recommend you try something small like Odroid HC4, I got one of these little puppies (follow my Biky in ARMland thread) and they are pretty nifty, especially for the price. I just need to figure out how to put ZFS on it and I’ll use this as a NAS, but it makes more sense as a backup server TBH.

For routing, either get a cheap x86 low-power consumption PC, or buy a ProtectLI x86 mini-router. 2 forum members have this and they love it. You could use your new server and virtualize your router, as long as you passthrough a physical NIC with 2 or 4 ports. But the disadvantage is that if you want to restart it, your whole network will go down. Unless you want to have a NAT behind NAT, which is not great. But if your gateway will be a VPS, then it could be worth it, maybe, and just have a separate network for other devices, but you would also need to get your traffic out of your house and then back into it, which again, makes NAT behind NAT even more bad.

Router software? pfSense / OPNsense / OpenBSD.

Nextcloud! I believe Nextcloud will serve you well.

Apart from that I would normally suggest using RockyLinux, it is basically compatible to RHEL and RHEL is the defacto standard for enterprise Linux. On the other hand RHEL is pretty old code base, so I do not really now if it will serve all your applications well. Especially since you pointed out you want to run it on new hardware. You did not specify what you mean by that, but hardware support for bleeding edge hardware releases won’t be possible in RHEL and derivatives.

Since you seem to want to do different applications, I would suggest using some kind of virtualization, like VMs to have seperation between those applications.