I've been using Unraid for years now. Before that I was using just a plain Ubuntu Server OS on the same machine. Once I finally did the switch to Unraid I was pleasantly surprised at how easy it was to setup and use. I was able to move all of my applications to docker containers which had tons of benefits in security and performance over my previous Ubuntu install.
What do I host from my home Unraid server?
- Xeoma - Security camera software. I have 9 cameras that I dedicated 100GB per camera from the array. This gives me a big enough window for the archive while also giving CrashPlan enough time to back it up. I'm using Coppit's docker image.
- Ghost - The application that runs this very blog.
- fail2ban - Secures server from invalid login attempts for various of my services by monitoring log files and banning bad actor's IP addresses. The letsencrypt container actually contains this software as well but I don't want to give my webserver those sorts of permissions so I installed it separately.
- ELKStack - Entire Elasticsearch stack that I use with Nextcloud and this Ghost blog to offer advanced search functionality.
- letsencrypt - Nginx webserver and reverse proxy with php support and a built-in letsencrypt client that automates free SSL server certificate generation and renewal processes. I use it for getting all of my web services securely accessibly via the internet (such as this blog) that are all on various ports and addresses from my server. I also run Kimai2 under this container (using PHP) for tracking my work hours for various jobs.
- HDDTemp - Docker container for HDDTemp that allows Telegraf to monitor disk temperatures.
- Influxdb - Database for storing historical data for all of my various sensors gathered from Telegraf and Home Assistant. I also publish custom data from Node-RED.
- Telegraf - Logs all of my server sensor information to InfluxDB
- PostgreSQL - Database for my Matrix chat server.
- Redis - Blazing fast memory store that I use with Nextcloud to reduce MySQL DB calls.
- MariaDB - MySQL database that I use for many of my applications.
- PlexMediaServer - Basically a self-hosted Netflix that uses your own content so you can stream from anywhere on almost any device.
- Tautulli - Monitor and stores historical information about my Plex user's usage. This way I know who is watching what, one what devices, and when.
- MQTT - Basically a chat system for devices to communicate back and forth with each other in real time using channels/rooms. I use it heavily with my self-made sensors to publish data in real-time back to Home Assistant or Node-RED (I created a guide for installing MQTT in Unraid here).
- cadvisor - Monitors statistics from all of my containers and gives a live view graphing this data out. I mostly use Grafana now but this is a nice backup.
- Node-RED - Flow based programming system. Is the brains of my home automation with Home Assistant.
- Unifi - Used with Ubiquiti wireless APs for configuration and monitoring
- Matrix - Self-hosted and federated chat server (just like email). My wife and me use this as our primary messaging system (just can't trust companies these days with my data).
- Riot - Self-hosted chat client for my Matrix server.
- Grafana - Used to graph out all of my data that I log to InfluxDB in a pretty and beautiful way. I have tons of dashboards setup for all sorts of things.
- CrashPlanPRO - Backs up my security camera files, all of my media, and my various container config folders.
- Home Assistant - Handles the Frontend UI and current state storage from my sensors for my home automation setup.
- NextCloud - All of my devices backup over Nextcloud then get further backed up to CrashPlan.
- SpeedtestForInfluxDB - Runs speedtests frequently and logs the results to InfluxDB.
- ApacheGuacamole - Allows me to remote desktop into my various containers and VMs from anywhere securely through the browser.
- binhex-krusader - Binhex's docker container for Krusader. Helps me figure out what files/folders are using the most space on my system.
- Gitea - Self hosted git service.
- binhex-delugevpn - Binhex's docker container for deluge bundled with VPN software (works out of the box with Private Internet Access).
- mysql-db-backup - Handles backing up my MySQL databases.
- Sithous.com Discourse Forum
- isso - Self-hosted comments for this blog.
- FileBot - Post-processing of my downloaded files to get subtitles, rename, and move to my media folder for Plex.
- Killing Floor 2 Game Server - Public game server with takeover enabled so anyone can play on it with their friends. Is actually pretty busy.
- kf2-magicked-admin script - Adds extra functionality to Killing Floor 2 servers by plugging into the Admin Web UI.
- Ark Game Server - I run this when I want to play with friends. Not always running.
- Minecraft Game Server - I run this when I want to play with friends. Not always running.
- Zorin Core OS VM - Remote desktop that gives me access to various tools from anywhere (via ApacheGuacamole remote desktop)
- Ubuntu Server VM - This is a little dev machine that I usually run work related stuff on.
Whew! That was actually a lot once I put it all down..
What is this all running on?
Current Server Specs
- PowerEdge r710 server (Ebay link)
- Dual Intel Xeon X5650 Processors (Amazon link) (Ebay link)
- 144GB ECC Memory (Ebay)
- 500GB Samsung 860 EVO SSD (Ebay)
- 3x Hitachi 2TB HDS722020ALA330 3.5" disks (Ebay)
- 2x HGST 4TB HMS5C4040BLE640 3.5" disks (Ebay)
- 10TB total array size (One of my HGST drives is a parity)
Story behind my home server
So just this last year I bought a new server to replace my verrrry old PowerEdge 1900 that I got for free from a friend years ago. What ended up pushing me to upgrade to a new system (despite it being a 10 year old server) was seeing this reddit thread and top comment:
This actually surprised me as I was having no issues with the setup and was running quite a bit off of it (far less than I am now but still a lot). I did notice that the cost-to-performance vs newer systems was pretty terrible.
So after seeing that I went to E-Bay and saw they had a 20% off discount on the whole site. So I browsed around and found this beauty of an R710 server with 144GB of ram for only $400!
So I immediately purchased it and waited for what felt like a century but was more like 2 weeks for it to arrive. I did my research and found that I need the PERC H200 raid controller (Ebay link) in order to pass the drives through to the OS. So I purchased one off E-Bay using the same deal (make sure if you do this you buy the raid controller cables).
Once the server arrived it was the quickest server swap I have ever done in my life. You just take the drives and your bootable Unraid USB out of your current server and place it all into the new server (make sure to note all of the drive's serial numbers and their assigned ID in Unraid before doing this). Once all of it was moved over I turned on the new server and it booted up like nothing ever happened. I was at least expecting some sort of driver issue or something but nope, all good.
I have no use for the SCSI drives the new server came with so I just shelved those for now. They may come in handy if I want to get another server in the future (getting a bit addicted).
Performance
Currently my CPU & Memory is staying well within manageable levels. Just check out this graph from the last 2 days:
Plex has a memory leak (as you can see in the above image) but since I have 144GB it gives me plenty of wiggle room to just restart it every couple days until the issue is fixed. I thought about removing some of the RAM to save money on electricity but honestly it's nice not having to worry about it and that cache is awesome.
I was also able to graph out my power usage from the server and calculate out costs (check this post for more information about how to do this):
Conclusion
Unraid has made almost every aspect of home server management easier for me. It hit all of the things that I was looking for:
- Software RAID that is much safer and easier to use compared to Hardware RAID. If you suffer more than 2 drive failures you can actually still recover some of your data from the working disks. Usually with hardware RAID you will lose everything in this sort of event.
- Docker containers with built in UI for the web interface makes it super easy to keep applications up-to-date (as long as the maintainer updates their image). Once every day I go through and update all my out-of-date software. I would wait way longer on my Ubuntu OS because it was more annoying to do and package conflicts were god awful. Containers are also more secure if you set them up right because everything is separated in their own virtualized environment.
- Amazing community that will help you whenever you need it. Plus there is tons of information on the Unraid forums that will usually answer your question before you even have to ask.
I highly recommend this OS to anyone looking for a Home Server/NAS solution. Solutions like FreeNAS are nice but are very complex to setup compared to UnRAID. This alone justifies the price of the OS.
Have any feedback? Feel free to leave it below.