I have a real split opinion on Unraid.

On the one hand, It's probably one of the most versatile pieces of software that I've ever used. I use it in "production" at home and its filling half a dozen use cases for me.

The first strength is VM support. I have ~25 VMs configured as I'm in grad school and it seems like every professor has a specific OS they want you to use. I use a MacBook at home and most professors require you to download and run a different Linux distro, or they just assume you have a windows PC handy. This wasn't a problem when I was going to school in person where I has access to a computer lab, but it is a problem as a mac user at home. Fedora, Ubuntu, Kali, and Windows 10. This was the OS requirement for just one semester of Advanced Operating Systems, Computer Architecture, and Network Security classes and running multiple VMs on my old laptop at the time was very taxing.

The other beautiful thing about Unraid is how easy it is to pass through a GPU compared to other NAS distros. I have a windows VM configured with a GPU passed through that I use for gaming and the occasional CAD work (for fun). Before Unraid, I tried Proxmox, but after a month of work, I wasn't able to get GPU passthrough to work and the community wasn't any help. On unraid, it took maybe 3 days with plenty of help from the community.

I also plan on running a Home Assistant VM if I ever get more into smart home stuff and move away from Homekit.

I also have 100+ docker containers configured. Many of them are based on a home media streaming stack. *arr stack, ombi, jellyfin for movies and tv. Komga, calibre, and mylar for ebooks and comics. Podgrab and airsonic for podcasts. Jdownloader and deluge for everything else. The rest are small apps used for learning or just self hosting some apps. Things like Nextcloud, Paperless, rss, pihole, and a minecraft server. I had a data scare a couple years ago where I had written some journal entries in an app in college and the app had gone subscription and locked my access to my entries behind a pay wall. Ever since then, I use plain text and self hosted apps for everything important.

I looked at other solutions for home server operating systems but many of them ran freeBSD, and while this did add ZFS support, it came at the cost of using jails instead of docker and at the time I knew that the apps I wanted to use had docker support, but I wasn't sure if they had decent jail support.

The last selling point is the NAS features. I started with just a 1tb m.2 ssd to run a virtualization server and I was able to quickly add capacity via HDDs without screwing up my config. It started with just a small movie collection and quickly spiraled out to downloading every console game made between 1976 and 2007 so I could emulate them from any client device with almost no local storage. While the features of ZFS are great, I wouldn't want to give up the flexibility of adding one disk at a time.

Also the easy to use wireguard UI was a big selling point. I found it much easier to use than configuring it via the terminal for some reason.

On the other hand, it is also one of the buggiest pieces of software that I have ever willingly paid money for. The community support is great and a lot of the development is guided by community involvement, but as I get more familiar with homelabbing, I can feel the rough edges.

I regularly have disks just drop out of the array and when looking online, it looks like this is a well known issue. I found community posts from _years_ ago saying that all you have to do is stop the array, remove the disk, start the array, then stop it again and re-add the disk and wait ~24hr for a parity check to run. This has been a known issue for years and it's still not fixed.

Also if you don't have enough ram in the system and start a vm, the whole system just crashes and drops a random disk before making the web-ui unresponsive. Another known issue that hasn't been fixed. The VM configs also breaks sometimes for no reason. I had a bugged vm template that just froze the entire system the second I started it. No indication of what happened, just had to destroy the vm and delete the template via ssh before making a new one.

The lack of docker-compose support is also frustrating. The terminal experience is also anemic. No package manager installed by default and many other normal system utilities are not pre-installed. This makes working on the system via ssh very frustrating.

I've also lost some data because while Unraid is good at _adding_ disks, it's still terrible at _replacing_ disks. Just swapping out 2 HDDs in the array and 2 SSDs in the cache pool took weeks and the process was nerve racking due to the aforementioned disk dropping issue. I also ended up corrupting some data on some drives. I don't know how bad the damage is, but I know that some docker containers don't work anymore and my windows vm had to be completely reconfigured from scratch. I haven't even tried running some of the Linux distros I have configured but I don't have high hopes after the Windows debacle.

I imagine that the coming ZFS support with RAIDz expansion will alleviate some of these pain points (like the missing snapshots feature), but I still feel like Unraid need to stop adding new features for a year and spend a year coming out with a "Snow Leopard" release. Just something that focuses on basic system stability and usability.

Ultimately, I think I would recommend Unraid to a very small niche of people. If you are just getting started with homelabbing and want a flexable, scalable system, go with Unraid. If you care about stability, have the money to bulk buy drives, and don't mind a little more fiddling, I would probably recommend 2 systems. Something like truenas scale on a box for NAS stuff and something like a Proxmox box for VMs.

EDIT: Speaking of Snow Leopard! I forgot to mention one of my most annoying bugs. I wanted to set up a time machine share on the array to back up my MacBook and it seems like time machine support has been broken for years despite this being an advertised feature! I feel like they should either fix the issue or remove support all together, anything in between is just frustrating. Instead I have to use chronosync and just manually copy files over to an array share but it's not quite as seamless as using the built in time machine feature.