Over the past couple of years I’ve put together a small home network with a number of services/applications that I find particularly useful. The following paragraphs provide a high-level overview of the most important components.
Servers and Networking
I have a pair of SuperMicro servers hosting virtual machines that run all of my services. Each server has 32Gb of RAM and approximately 40 TB of storage. I use Ubuntu server as the OS, KVM for virtualization, and Docker to run applications in containers.
My network equipment is all Ubiquiti gear resulting in a fully managed network that allows me to monitor and provision the various network devices from a single console. I use the Firewall on the USG-PRO router to control access to my internal network and have enabled Intrusion Protection (IPS) to further protect my home network from common security threats.
Server Management and Monitoring
I use a combination of Webmin for Linux server management, Virtualmin for provisioning and managing websites, and Zabbix for server monitoring. Zabbix gives me real-time insight into the health and performance of my servers.
Backups are handled using a collection of scripts that are scheduled to run periodically as cron jobs.
Plex Media Server
My Plex Media Server is the most heavily utilized application running on my network. Plex allows me to stream recorded movies, TV shows, and music to the all of the TV’s and mobile devices that I use no matter where I am. I have a fairly large library of content that can be streamed locally or over the internet to mobile devices.
Over the Air broadcasts are handled by a pair of HD Homerun Connect devices integrated into Plex. The Plex server takes care of providing Live TV and DVR functionality to all of my devices.
Pi-Hole is a network ad-blocker that I have running on my network to reduce the number of ads shown on web pages and protect against known malware sites. The amount of traffic this thing blocks is amazing. With over 750k domains blocked, I typically see 30% or more of the dns queries emanating from my network being blocked. Devices such as my Roku boxes and Amazon Alexa devices are the worst offenders often sending tens of thousands of phone home requests each day.
I use an application called Node-Red to coordinate some basic home automation tasks such as controlling my Phillips Hue lights and controlling my Z-Wave thermostat as well as provide some visualization of the sensor data that I collect.
I’ve custom built some temperature and humidity sensors using cheap ESP-8266 micro-controllers. These sensors send messages to an MQTT broker over my WiFi network where Node-Red then collects this data, stores it in a MySQL database, and displays the values on a nice dashboard accessible from a web browser.
And Finally, I use NextCloud for personal file storage. With the addition of OnlyOffice and Draw.IO I have full document editing capabilities similar to Google Docs or MS Office 365 all in a nice self-hosted server that I have complete control of.