Which OS to pick for my first home server?
Edit: I've just purchased an Unraid license. I'll give it a go and it may not turn out well, but for the time being, the question is settled. I appreciate everyone for providing insightful and informative answers!
Hey everyone,
I've recently bought myself a NUC (NUC11TNHi3) that I intend to run as a home server, using many of my external USB drives as the storage.
My use case is very narrow. I'll use it as a Plex server and seed/leech torrents with it.
I've never built a home server like this before (I did dabble with it on a RPi, but that was just for PiHole), so I've never had to research what operating systems are available to me. After some research, I narrowed it down to two options.
-
Windows
This option is the most straightforward given that it's the system I'm familiar with the most. My use case is also very narrow, so I could set everything up in a couple of hours. All I'd have to do is install Plex server, a torrent client, exposing them to the outside world with port forwarding or Tailscale (never used it before but seems easy enough), and share my external USB drives locally so that I can access them using my regular desktop computer at home. The downside of this is that Windows can be finicky. I'd also prefer to have my drives pooled under a single drive. A cursory research suggests that Windows can do this as well, but not in a way that inspires confidence. -
Unraid
I hadn't heard about this since last week, but it seems like a nice option. It costs money, it's proprietary, and I'd likely have to reformat all my NTFS drives to be able to use it but I was wondering if this would be the best long term solution. The learning curve will be there. Arrays, cache drives, share drives etc. are terms I'm not familiar with (though I can guess what purpose they serve) so it will be more time consuming to set things up properly. But given how narrow my use case is, as elegant a solution as it seems, is it necessary? I'm only considering this because seems like this is the best purpose built OS in the market right now.
Some clarifications:
-
I'm sure someone will suggest a Linux distro. I have used Fedora as my main OS for a couple of years and I was quite happy with it, however I could never wrap my head around the Linux permissions structure, which Plex is awful with, as it creates its own user and look for drives under that user. I must have spent hours and hours to make Plex read my external drives properly before, but I've never managed to make it do so without some sort of hacky way and I don't want to do that with my home server. I don't want to have any doubts that things can go wrong. I want something that just works. (If only Synology had a capable device that could handle multiple simultaneous 4K transcodings. I'd have just throw my money at them instead of buying a NUC.)
-
My use case will remain narrow. Maybe way down the road I can automate stuff with Sonarr or Radarr or stuff like that, but I don't think I'll ever consume enough recently released stuff to justify it. One thing is for certain, I'm never going to host my password server, feed reader, or something like that on this device.
That's about it. What should I do?
Given that I'm a novice is this area, I'd be all ears to listen any other related or unrelated advice for someone who's just starting to build their first home server.
Thank you in advance.
I get not wanting something you’ve previously struggled with, but just FYI re: Linux it should be pretty straightforward:
If you use the Plex docker container, you can set the UID/GID it uses to just be the same as your regular user and you can avoid the issue entirely. As long as you only mount media to the container and no sensitive user files, the risk is fairly minimal.
I really dig running everything in docker (or really podman in my case) for my home server. It makes everything easy to set up and keeps everything nicely compartmentalized, without too much overhead.
I've tried that before. It didn't work. Maybe I couldn't do it properly, despite following every guide there was under the sun to a T, or maybe something was off with my system but I don't know. All I know is it didn't work.
I have a whole section in my Obsidian where I document my tech troubleshoots and according to that, your solution is the first one I tried and it explicitly says this doesn't work. What it does say works is just having
plex
be the owner of the drives. But that solution didn't work when I had to reinstall my system from scratch, for whatever reason. Oh, it also rendered my drives inaccessible when I started dual booting, with the other OS being Windows 11.Again, it's very likely that I messed things up by not having full grasp of what I was doing. But the point is, I wasted a lot of time for what it should be a trivial task and ended up losing all my media.
This might sound a bit pedantic but Unraid is still Linux, they’ve just wrapped a lot of that stuff in a sensible way and given you a nice UI for managing Docker. I’m not saying that to push you towards a “standard” Linux distro, or to put you off Unraid (I think it’d be a much better option than Windows here), I just figure it’s a worthwhile distinction that might open up other options for you too.
TrueNAS has Linux-based and BSD-based versions, and supports Docker on the former, for example. It’s storage focused first, like Unraid and DSM are, but as with both of those it’ll also do a solid job of running other containerised services too - with the advantage of being free and open source rather than paid. Proxmox is also an option: it’s arguably more targeted at what you’re doing (running/managing VMs and containers, rather than managing storage), but it’s also not always the most user friendly, so perhaps not a great call when you just want to do one thing well.
I can absolutely see Unraid still being a good call here overall, it just seemed worth mentioning other things that are out there too.
Yep, thank you for mentioning that. I have the exact same worry and I mentioned it on here.
I did read on TrueNAS and Proxmox. TrueNAS seemed like a less polished version of Unraid that's more catered to people who know what they're doing. As for Proxmox, while it was interesting, it seemed like a half measure compared to Unraid. These are my uneducated opinions and first impressions after some cursory research, of course.
In some ways I think it's a question of perspective: Unraid, TrueNAS, and basically all of Synology's hardware and software are originally file servers. Traditionally that'd literally just mean some kind of RAID implementation and some way to get at the data over the network (SMB, NFS, etc.), and it's likely the root of why Synology don't do any hardware that suits your needs: their view would be that the NAS serves files, and it's the job of a separate application server to run the transcoding using the NAS as a data source.
Of course, that's not the world we live in anymore. Home users are buying these systems and most absolutely won't be running a rack with multiple special-purpose machines in it; "basic" processors and memory go far, far beyond what's needed to just shuttle files across the network; containers exist and make it reasonable to run multiple special-purpose software environments on the same machine. The vendors have adapted, and now features like Docker support and hardware video acceleration are selling points - but they still approach it from the perspective of add-ons to a system that's "supposed" to pretty much be a bunch of disks wired up to a network card.
None of that strictly matters to what you're doing: the end result is that they do support containers and that's that, but it's hopefully useful context for understanding the options. You've primarily got a single-purpose application serving workload, and that's now incidentally supported by environments that started life as file servers and have morphed into larger multi-application virtualisation hosts.
Now that I've said all of that: TrueNAS and Synology DSM are both still primarily file servers, and yeah it's fair to say TrueNAS is more targeted at people with additional experience in the space - the payoff for that is it's fully open source, has extra NAS features (particularly ZFS support), and is more hackable/controllable. Proxmox is purely a virtualisation host, it's the only one of the bunch that never intended to be a file server, but there's a definite learning curve. Unraid started as a file server (it's right there in the name) but has leaned heavily into virtualisation and user friendliness as features and selling points.
So, a lot of words just to circle back to "yeah, Unraid likely fits your needs well"! But hopefully the extra context helps to flesh out what to expect, what the tradeoffs are, and why.
Thank you for your post! The extra context you've provided was indeed helpful and made me more comfortable with my likely choice.
Just because it’s my personal choice and no one has advocated for it yet, I think Unraid is really a very good choice for personal media servers, NAS servers, and homelab setups. Here are the things I think it does very well:
If you or anyone else has any thoughts or questions about Unraid, don’t hesitate to ask!
That was very informative, thank you for taking the time to write about one of the options I'm considering.
Data redundancy is not important to me at this point. I will only have media (non personal films/series) on my external USB drives, totaling at around 12 TB. (That's the size available to me, not what I'm currently using.) If the worst comes to pass, I wouldn't be bothered by it too much. I do have some films that are extremely hard if not impossible to find on the internet and I'd be sad if I had lost them but I've already taken necessary precautions to prevent that from happening.
I've never used Docker but from my understanding, it's an application based VM. Assuming my understanding is accurate, this sounds great. Security is a big concern to me and it seems like containers would help with that. That being said, my concern is whether this containerization would make it hard for applications to speak to one another. I don't know to what extent containers are separated from the system, but this is something I can educate myself on.
I use Wireguard every day and I do think it's great. My concern here would be the ease of use. The main reason why I'm building this system is so that a dear friend of mine, who lives abroad, can connect to it and consume my media. Her technical knowledge of things is extremely limited and her patience is short when it comes to tech, so I want her experience to be as frictionless as possible. That's why Tailscale sounded like a better option to me, because they have better looking apps and could come up with a product that might be beneficial to me down the line. Regardless, this isn't something I'm thinking a lot on. The only reason why I even thought about it in the first place was that a setup like this would be more secure than exposing Plex to the internet by itself.
I forgot to talk about this but this is actually important for me. It's very possible that I might move my data to actual drives with a closure in a few months, so it sounds like migrating would be very easy. Even if I don't do that, and just add another external USB drive to the number of drives I have, it sounds like it'd be very easy to do. This honestly tips the scales slightly for Unraid.
I do have two worries for Unraid. One is the Plex permission thing I mentioned in my original post. Since Unraid is essentially a Linux distribution, it's likely that I'll have to deal with the same issue, if not a worse version of it because of containerization.
The other one is that Unraid has a big barrier of entry for me, meaning that unless I'm wrong, I need to format my drives to what it supports. My drives are in NTFS, so that means I have to format all of them and re-download all my media from scratch. I can also move them around while I format the drives one by one, but the point is it will take time, whatever way I decide to go on about this. This is true even if I want to just try out the system to see if I can work my way around it.
Maybe the best way to find out is set aside a single drive and see how the system works with my setup. How long do you think it'd take for a novice like me to set Unraid up? Do you think a day would be enough? (I apologize, I realize it's a very subjective question.)
Not GP, but I've been using Unraid for a long time for my home server.
Unless you're using Windows exclusively, you will probably want to move away from NTFS. It works with Linux/MacOS but it isn't rock solid and there are a few "gotchas" like how Linux/MacOS deals with unclean unmounting of an NTFS volume (they don't like it and sometimes they won't re-mount the volume until you plug it into a Windows computer to fix the issue).
You could either just buy a big external drive and copy all your files to that, wipe all the existing drives, and transfer the data back once you've got Unraid set up. Then you can either add the new drive to Unraid or use it as an offline backup. High capacity external drives are pretty cheap these days. Or if you have any friends with an extra drive, you can ask them to borrow it for a few days.
Docker on Unraid is extremely easy to use. There is an "app store" that has basically any common app you'd want to use as a ready made container. There are tons of templates that you can use. Some of them require minor tweaks like changing an IP address or adding in minor changes if you want to use a GPU with Plex.
If you prefer Tailscale for ease of use, there is a Tailscale plugin on the app store that you can use.
Unraid is very easy to set up. They have a program to automatically download the latest version and write it to a bootable USB drive. Just plug that in and boot from it. If you just want to make a simple test install, you can be up and running in under an hour.
As of right now, I am using Windows exclusively. Well, I also use macOS on the side but my drives don't need to be plugged into that machine, as I use it for work purposes. So that's why I formatted my drives to NTFS after I moved away from Fedora early this year. (I was extremely happy with Fedora and I do miss using it, but I built a gaming machine and wanted a system where everything worked out of the box.) When I was using Fedora, I believe all my drives were formatted to either btrfs or ext4.
I already do have the space to move all my data. I currently have 12 TBs available to me in total, and I only use 5 TB of that space. So I can easily follow your plan and I intend to do that. However, before spending time moving my data, I plan on having an entirely empty drive and test Unraid with that drive alone, aside from what I'll have inside the NUC as cache. (It's a 500 GB Samsung 970 Evo.)
If Unraid turns out to be something I can set up, I'll move my files with the aforementioned plan.
Yep, I have researched this. Apparently you need a plugin to take advantage of Intel's Quick Sync feature, which will be a must for me given that I need to do transcoding.
Great to hear there's a Tailscale plugin on Unraid's app store. Again, I don't know if I'll need it, but it's good to hear that it's there.
Thank you for sharing that last documentation about the test install. I do not have the NUC at hand right now, as it's still on its way, but once I do have it and have the time, I'll test the system using that guide.
Honestly, it's very likely that I'll use Unraid, so I'll just get myself a license before even trying. There's apparently a sale going on, too.
One thing I'd like to ask, since you specifically talked about file systems. Which file system should I use for my drives? I'm sure each one has pros and cons, but I'm wondering which one you'd prefer personally.
Getting hardware transcoding working with Plex is pretty easy. There are a ton of guides for it that make it super easy.
Unraid requires either XFS or btrfs for the main data disks. If you end up not using unraid, I’d recommend using exFAT in the future. It is fully supported across basically all major OSes.
Note that when you’re doing tests, unraid is a bit slower when it comes to writing, because it has to read from all the drives to write the parity protection. That’s where the cache drive comes in handy. It can write to that and just move everything overnight when you’re not using the system.
If you decide to go ahead with unraid, I’m happy to help, so feel free to DM me if you run into any roadblocks.
Thanks for your response and offer. It's very kind of you.
I actually don't intend to use any parity drives. My data is not important and if I lose everything tomorrow, I wouldn't shed a tear. If I ever get comfortable with the system to the point where I want to store my important data, I'd then have a parity drive, of course. But I don't think it's necessary right now. I've researched this bit and Unraid doesn't make it mandatory to have one either.
I do have a cache drive, a 500 GB Samsung 970 Evo m.2, which should be plenty enough for me.
I'm asking this because I do not know. Does the file system matter when I create shares using Unraid and try to access them on whatever OS I'm using at that time? I don't intend to unplug the USB drives from the NUC (or rather from the USB hub that will be connected to the NUC), ever. They will stay connected to it at all times.
I literally just installed one of these on my Unraid server as a cache drive, great choice! You’re right that you don’t need a parity drive, and I agree that you probably don’t need one if you only have downloadable media on your array.
This is a totally reasonable question, and luckily the answer is no! You’ll probably access your files over Samba, which is a remote file sharing protocol that Windows, macOS, and Linux all support, and it will work just fine regardless of how the NAS drives are formatted.
Thanks! I'm using a terabyte version of it on my desktop and I've been very happy with it, so I didn't want to risk it with some other brand/model.
I suspected this would be the case but thank you for confirming it. I'll do exactly what you describe (use Samba) when necessary. I doubt I'd use share folders all that often, but it'd certainly be a nice to have.
By default, containers are largely isolated from both the host system and each other, but both Docker and Unraid make it very straightforward to allow containers to be accessible in targeted ways. The two primary ways that you can allow a container to be accessible from the outside world are:
The good news is, as @JXM mentioned, the Unraid “app store” has configurations for volumes and ports already provided for apps there, so this is rarely something you have to figure out on your own.
I guess the summary is, there is an additional step when getting containers to talk to each other that you wouldn’t have if you were just running software directly on the host, but it’s a well thought out one that has good solutions.
Also, as an aside:
Containers aren’t quite like VMs, at least not when running on a Linux kernel (like Unraid has). Containers use that complicated Unix permission system (and some other tools) that you mentioned for good; each container is only aware of the filesystem that is provided by its “image”, plus any files that are mounted by volumes. This means that installing, say, Nextcloud as a container doesn’t risk conflicting with your host machine’s PHP version, or what-have-you, because the software in container images is isolated from the rest of the system. It makes it much easier to install software packages that might have conflicting dependencies.
There’s more to it, but the takeaway is that containers are much lower overhead to both install and run than VMs. It’s easier to give them access to hardware devices and networks, and you don’t have to pre-allocate storage and memory for them.
Anyway, I agree with @JXM; getting a trial of Unraid booted up is pretty easy, so I would try it out and report back what you think and if you have questions or get stuck!
That's very good to hear regarding the containers and how they can communicate. Sounds like it'd be secure from the start for a novice like me. Because that's one of my fears. Since this isn't something I've tried before, I was wary of making stupid mistakes that'd expose my machine(s) to outside threats.
From what you're describing, it sounds exactly like how NixOS works. I was making a connection to Qubes OS but your description sounds a lot like NixOS. It's not something I've used before but I love how elegant that system is.
I really appreciate your informative responses, thank you so much. I was leaning towards Windows when I first created this thread but your comments, as well as other's, made me realize I should just at least give Unraid a shot. From the sounds of it, I am equipped enough to handle the initial learning curve and in the long term it will serve me better.
I don't have my NUC with me yet as I've purchased it from a retailer abroad. It will be here on the second week of September and I hope to dive in as soon as possible. I can certainly try to document my experience once I set it up and start using it. Maybe it'd help someone else. If it doesn't warrant a separate post, I can make an update here. 😊
I found that Synology DSM is actually pretty awesome to use to control my Synology NAS.
Of course you're not in a great position for this because you're on non-Synology hardware.. but! According to my in-depth research consisting of a single google search, there seems to be a well-maintainer but officially unsupported option for you to run Synology DSM on your own hardware: https://xpenology.org/
YMMV. I would probably not do this as a beginner, but if you do it before you have any important data on there, well, I'd say give it a shot, it's a fun learning experience (as long as you have the ability to invest some learning time into this).
Big second shoutout for Synology NAS systems from me as well, both hard- and software are great for smaller scale operations.
We have one in the office acting as the main data storage, small scale VM-host for stuff like vaultwarden and even a RADIUS hub. All very easy to setup.
My good experiences with it where also the reason for me to buy a smaller desk station my personal use at home, much like OP describes. Everything was easy to setup and pleasant to use.
Also good to know that someone made a hardware agnostic version of the DSM, I'll keep that in mind should something come up where that could be useful.
Oh, I'd have loved to use DSM with on a first party hardware. Believe me, I've tried. But Synology makes no hardware powerful enough to serve my needs, according to this list curated by Plex itself.
I'm glad to hear that DSM can be used on other systems and you're right that it would indeed be a fun experience to figure out how it works, but I just don't have the time to spare anymore due to work. Even if I do install it and things work amazingly well out of the box (or I get it to work that way with some tweaks), I don't think I'll ever trust it enough to have it be that way for a long time.
I use Ubuntu Server for a pretty similar use case. Been working fine for me. If you're installing plex as a snap package, then it can only read/write to home. So you need to mount your hdds under home somewhere. Other than that, I've had no issues with permissions. But I did follow guides online (which are plentiful) so perhaps the permissions issues were dealt with in the procedures I followed
New to Linux I did the snap package and just ran with it. An initial PITA but got my feet wet and now, almost a year on, trucking happily w/ Linux as my DD across all my systems with only a single windows dual boot left.
Ubuntu/Linux server and setup an entire Plex stack with docker
I pulled an old Windows box to fill in as my home server after my RPi left my possession and it was a pain. More or less same use case as yours. I couldn't truly run it as headless since every month it would update and boot to the "thanks for updating, click skip to actually use your computer." Not to mention the unnecessary bloat.
So for my (more) proper setup, I started off with Debian then set up my drive to mount in the home folder on login, something like home\mnt\media. Then just pointed Plex to that folder. Not the most sophisticated solution on its own, but it was quick enough to set up while being a more stable build than Windows, no issues running it headless once it was all set up.
Not being able to run Windows completely headless is indeed a worry of mine, for the exact reason you mentioned. That's one of the reasons I'm leaning heavily on Unraid at the moment.
Unraid will be a learning curve for me but after that initial hurdle, it likely won't cause me any issues. Whereas while Windows has lower barrier to entry due to my familiarity with it, it will likely to cause issues over a longer period of time (not to mention lack of server related software compared to Linux based systems) with limited remote control options to handle them once they arise.
So I personally use UnRaid and love it. It has a few drawbacks like any other system but it holds its promises in terms of performance and data reliability.
If your use case is really that narrow, I wouldn't worry about much, honestly. Install Ubuntu/Mint XFCE on your Nuc, attach your drives, install Plex and your torrent software.
If you want, you can still install Docker at a later time and use container variants of your software.
Have you installed Plex on Linux, but used your NTFS drives with it? That could explain your pain. I had some odd issues with NTFS and Linux as well.
If you go Linux, use Linux related formats such as ext4, btrfs, xfs and alike.
If you go Windows, use NTFS.
I would use Linux for servers because of raw performance. Windows just eats too much resources on its own.
The package managers make it quicker and simpler to install and update software.
SystemD makes it simpler to manage/autostart services.
However, you are now at a point where a lot of homelab folks were in the beginning.
(I'm trying to talk myself out of stage 6 :D)
It might be worth to plan ahead a bit if you see yourself reaching stage 2-3.
For example rather investing in used PC hardware, a small PC case and a RAID card (in "IT mode") than to buy an expensive USB Raid solution to extend the NUC.
Nope. When I was using Linux (Fedora), it was my daily driver and I was using ext4. I can guess why the drives got messed up and I honestly can't really fault the OS for it. (I do blame the OS or Plex for not having an out of the box experience on Linux, however.) WSL on Windows had a bug where once you mounted a drive, you'd have to unmount it before shutting down the system, or else you'd risk corrupting the entire disk. I was obviously not aware of this rather obscure but important but, until it happened to me.
It's looking more and more likely that I'll use Unraid, so I won't for sure use NTFS in the future.
You're definitely right that I'll follow a similar path. I think it's just inevitable. I love tinkering with tech and this is an area I haven't explored at all, so everything is new to me. The thing is, I will not have the time to do so even if I want to.
I had been working remotely all my career but due to a restructuring in my company, I'll have to be in the field for at least the next two years. I'll still come back home after the work is done, but given how radical this change will be for me, I don't suppose I'll have the will to troubleshoot tech issues. Once my work in the field is over, I'll likely go back to working remotely and I will then be able to follow the path to having a small rack in my house.
Having said that, you're right that it's worth planning ahead a bit and that's one of the reasons why I'm likely going to pick Unraid as my OS of choice. Not to mention being able to control it a lot better than Windows when I'm out and about.
My eventual plan would be to have the NUC as the transcoding device and have a Synology as a storage device, using some model that has at least 4+ bays. The rest would really be an overkill for me. If Synology releases a powerful enough model by the time I'm in the market in a few years, I'd discard the NUC and just have an all-in-one solution with Synology.
Do some research into running all of your homelab stuff on top of a hypervisor like proxmox and see if it sounds like something that'd interest you. Gives you a lot of options for snapshots, backups, and containerization of services while still being able to spin up windows and linux virtual machines if you have the resources.
Leaves the most room open for expandability (adding another NUC and making a cluster is a fun project down the line) and playing around in my opinion.
I personally use proxmox and bought an lsi controller in eBay. I use OMV for my nas with a union file system and snapraid. I then use Ubuntu server for my game server and docker apps. Plex/jellyfin are in an LXC container and I pass in the integrated graphics card for transcoding.
I then have other VMs I'll spin up and use when needed. It's all managed via the Web gui. And it fits my needs perfectly.
My Plex server is running win 10 ltsb and has only seen downtime when I added drives to it. My personal advice is stick with what you know unless you are looking to do this as a project and as an excuse to fiddle with stuff. If you don't know linux well and you are looking for a trouble free experience then win 10 will do you fine. If on the other hand you want to use this as an opportunity to learn a different OS then by all means give it a go on linux. Ubuntu is probably one of the easier distros for newbies.
here is a good guide
https://tomthegreat.com/blog/installing-plex-on-ubuntu-22-04-using-docker/
Thank you for sharing the guide. It seems unlikely at the moment but I'll bookmark it in case I choose to use Ubuntu LTS or something.
I'm familiar with Linux. I have been using it on and off since I first started using Ubuntu (Lucid Lynx was my first release, I believe). It was never my full time OS, it was always something that I sometimes used for whatever reason alongside Windows. But at the very end of 2021, I started using Fedora (i3 spin) as my full time OS for about two years. It wasn't until I built a gaming computer that I switched back to Windows full time. So I'm not completely ignorant when it comes to Linux. I just have some blindsides, like the permission structure I mentioned in my post. I can and do overcome these issues but as the saying goes, Linux is only free if your time is free, and my time isn't that free anymore.
I had never heard that put into words before but that describes my sentiment as well. I have nothing against linux, but I don't have time to troubleshoot every little obscure problem any more so I switched back to windows.