Over the last handful of years I’ve got deeper and deeper into running a home server / selfhosting apps. If you love playing around with tech, there’s so many cool and fun things you can do with a home server setup.
It started simply enough: I wanted to have a live backup for my familes files and photos at home, so I bought a little 2 bay Synology NAS (it was a DS218, but the current model is the DS223). That was a fun little machine! Synology has put a lot of work into their DSM OS and it’s very easy to use and a great entry point if you’d like to dip your toes into Home Server stuff. Obviously it’s primary purpose is for storage, but there is a great bunch of apps you can run on your Synology (it has it’s own little app store with all the basics and you can extend it with the community store for even more options), AND it supports Docker containers, which allows you to run practically anything you can imagine.
If you buy a Synology NAS keep in mind it’s not meant to be a powerhouse server, so you can’t go too crazy with the number of apps running off it. However, I was surprised just how many things I could get away with. At one time I had this blog, Plex, a file sync service, and a bunch of the default Synology apps running off it with no issues. It did start to chug when I tried to add a Minecraft server though… So like, not bad! If you want a small, quiet, power efficient, easy to use NAS that can handle a few other tasks, you’d be hard pressed to find something better than a Synology DiskStation.
(When I wrote up my last post on searching for a useable Google Photos replacement I left out Synology Moments, which is pretty great in it’s own right! You just need to have a Synology NAS to use it).
This setup worked great for a while, but then one day my brother-in-law asked me if I wanted an old Dell PowerEdge rack mounted server he wasn’t using anymore… and how could I say no to a free server?!? This thing has 2 10-core CPU’s and 96GB of RAM. I’m not even sure if I can utilize all this power even if I tried! Suddenly I’d gone from struggling to run one Minecraft server to easily running a dozen if I’d wanted.
At the suggestion of a friend with a similar setup, I decided to run UNRAID on it for the OS. UNRAID is a Linux based OS that as the name implies, doesn’t use RAID for data redundancy. Instead, it uses what are called “parity” drives, which is a drive that for each byte contains the sum of the same byte on all the other drives. That way if one drive goes down, you can reconstruct it using the others and the parity drive. I didn’t even realize that was a thing. How cool is that?
What UNRAID really offers is flexibilty. You can have any combination of hard drive sizes, speeds, or brands, no problem. It can make it all work together. The catch (and it’s a minor one) is that your parity drive needs to be your largest drive. This makes sense as how else could you calculate the sum of a byte on the drive doesn’t have bytes numbered that high on it?
The OS is accessed almost entirely from the web and is very intuitive and easy to use. Obviously it works great as a NAS and makes sharing file access over the network a breeze, but it also has Wireguard VPN built in, can run Virtual Machines, and (most importantly in my mind) has a really lovely interface for running Docker containers.
For those unfamiliar with Docker containers they are similar to running virtual machines. However, where with virtual machines we are emulating the hardware, in Docker’s case we’ve bumped that up a level and we’re emulating the operating system as well. The advantage here is that each Docker container comes bundled with copies of it’s own prerequesits, so you never have to worry about finding the right version of an application to work with all your programs. This makes deploying, maintaining, and updating Docker containers a breeze. For a great intro to Docker, I recommend Network Chuck’s Docker Containers 101 video.
Like I mentioned earlier, UNRAID has it’s own Docker container manager that works great. It’s simple and has everything you’ll need to manage containers. They also have something called “Community Apps” which are containers that come with a configuration file that allows you to easily setup a container with pre-filled defaults. Most of the popular containers have a Community App configuration setup all ready, and if they don’t? No worries! You can search the DockerHub collection of containers directly by clicking the “Click Here To Get More Results From DockerHub” button:
When you grab a container directly from Dockerhub you also have the option to attempt an automatic community conversion where it will try to setup all the ports and mapped drives the container requires. In my experience this works quiet well and I rarely have to fight with it further.
Alright, I’ve told you my entire life’s story and how I got to this point, but what am I actually running on my UNRAID server you may ask? What makes all this effort worth it?
Good question! Here’s a non-exhaustive list of some of my favorite self-hosted apps I’m running:
- Immich – Google Photos Replacement (which I talked about in my last post)
- Qbittorrent – Torrent downloader
- NGINX Proxy Manager – “Reverse Proxy” creator (lets you access web apps as subdomains)
- WordPress – This very blog!
- Navidrome – run your own music streaming service
- filebrowser – a dead-simple web based file browser
- Plex – run your own media streaming service
- Radarr/Sonarr/Prowlarr – automatic media library management for Plex, etc.
- Resilio-Sync – a file sync application
- PaperMC Server – a more optimized Minecraft server
- Vaultwarden – a selfhosted password manager (Bitwarden)
- Ubooquity – a ebook/comic reader/library manager
And here’s some of my favorite resources for learning more:
- Spaceinvader One’s YouTube Channel – Lots of great tutorials for setting stuff up on an UNRAID server
- Awesome-Selfhosted – a great resource listing selfhosted software for every puropse you can think of
- selfh.st – a weekly newsletter on the latest in the selfhosted world
What’s next? Well I haven’t got into the world of Home Automation yet, but I swear everyone I know is into it so I suspect I’m going to get sucked into that one sooner or later.