For some context, let me tell a quick story about my first experiences with a homelab. Though it was quite a while ago now, I very clearly remember the feeling of setting up my first homelab – absolutely overwhelmed by excitement at all the possibilities! I was initially frustrated by finding no accessible options for me to sandbox programming in between paying for hosting somewhere and running locally on my dev box and figured, hey, why not try building a server at home? After all, I had tinkered with Ubuntu before, I thought to myself.
My wife teases that I went from "I want to try building a home server" to leaving a stranger's house with a beat-up Dell Optiplex to "it's up and running!" faster than she could chime in with very valid concerns like "where is this box going to live, in our apartment?". (It stayed on the dining table for at least a year and a half)
Once the OS was installed, I realized that I now had to get my LAMP stack installed and stay up to date with patches and updates. And make sure that I am up to speed with Nginx and web service security best practices. And networking security best practices. And backup strategy best practices. And disaster recovery best practices. And... you get the picture. A lot was standing between me and the programming sandbox that I set out after.
In all of the years since then, I picked up all of these server administration concepts and so much more, but these roadblocks caused enough friction that when this Ubuntu box caked its shorts a few years in, I gave up on the homelab concept for a while. Enter: Unraid.
After a few years of showing me how easy it was to get started, my best friend convinced me to give it a shot. Unraid, at its core, is a NAS OS but exposes a great toolbox of plugin support and Docker & VM management tools which allow me to focus on the parts of the homelab that I want to focus on – the apps and integrations that power my smart home, personal finance, organization, etc. The Community Apps Store plugin provides a marketplace-style interface for community-submitted Docker installations, called templates, which in many cases provide one-click installations for the containers. Configuring and managing virtual machines is also a sinch, with out-of-the-box instrumentation and observability tooling that just makes VM life easy. Vast community support and extensibility mean that when I do hit snags, I look no further than the community forum and there is bound to be a post outlining what I need to do.
One of the main draws of Unraid is that you can add disks to an array of varying makes, models, ages, and most importantly – capacities. My current array is comprised of 1x1TB, 2x2TB, 1x4TB, and 2x8TB HDDs with only the 8TB drives sharing models/ages since I grabbed these at the same time. This means that whenever I acquire a drive and want to expand my array, I just throw it right on in and let Unraid take care of the rest. The only limitation here is that since the array is protected by bit parity, the storage drives must be the same or smaller capacity than my parity drives. Check out this great video by Spaceinvader One on how Unraid deals with this drive parity operation and what makes it cool!
Right now I'm running a ton of stuff on my Unraid box and it's so easy to spin up new projects and take them down when you're done tinkering. I'm running a Home Assistant VM which acts as the central nervous system for all of my smart home operations and helps communicate with a broad spectrum of home automation devices from different brands and developers. I'm also leveraging Unraid's ability to use cache SSDs to balance speed and performance with the main array's ability to store loads of data along with paperless-ngx to keep track of all of my important documents (and tons of unimportant docs too!) in a way that allows my wife and I to access them easily and quickly when the time comes and without worrying about running low on space or lack of privacy with a cloud provider. For game night, I'm even running a Foundry VTT instance that the other players can log right into from anywhere rather than having to spin up a local instance each time or paying lots of money for cloud hosting when it only gets used a few times a month.
The list goes on – so be sure to check back for future information about how I use Unraid to make tinkering easier and make my home life have a little less friction! Since I set up my Unraid box, I have enjoyed a renewed sense of focus toward my homelab endeavors. The ease of use with Unraid and Docker means that I can safely try a container for - say - invoice generation, and if I have gripes about it, I tear the container down and go shopping in the Community Apps store for something else. Give it a shot and let me know what you spend all of your spare time looking into!
Happy hosting, cheers!