So, I figure that now is as good a time as any to document my homelab: What it is, Why I have it and What it’s made from.
So, let’s start with the most pressing question:
What’s a HomeLab?
Well, this answer can be stolen from the homelab subreddit here:
“Homelab is a place to mess around with enterprise equipment and software in the home, and sometimes extending past this. Many of us do it to keep us at the top of our game in our jobs, some people do it on here because they want to get into IT, and others simply because it interests them.”
A lot of homelabs start small, with some labs being made up of just a single Raspberry Pi. Other labs can span multiple network racks, in multiple locations, completely filled with enterprise-grade hardware!
So why do I have one?
I never really meant to start a homelab, it just crept up on me. I originally started by wanting to provide media files (Films & Music) to my at-the-time girlfriend’s house. All I had was an old laptop scrounged from work, a 1TB hard drive and the overly-simple ISP router.
- Shared folder for her and the housemates: SMB.
- Finding the server on the network? I added DNS server functionality to the laptop Frankenserver.
- Ensure the DNS server is set without breaking their devices' network connectivity? The Frankenserver became a DHCP server.
- Remote access? OpenVPN.
- Media Requests/Issue Reporting? OSTicket.
- Improve site loading times/ Windows Update download speeds? Squid Caching Proxy.
- Protection for those who enjoyed clicking sketchy links? ClamAV add-on to squid proxy.
- Ad Blocking? Integrating DNS, Squid and a HTTP server.
- Alerts for issues/failures? Mail Server.
The poor Frankenserver.
Since then, I’ve made major changes to my lab. My girlfriend is now my wife, we have our own home and my lab has gotten a lot more expensive!
What do I use it for though?
My homelab provides my family with email and “cloud storage”. It also contains my web server, hosting a number of sites (this blog included).
I’ve also tried to include technologies actively used in my current job, such as: VMWare virtualization, VLAN networking, User Management, Log Monitoring and Intrusion Prevention Systems.
Being able to play around with these systems without risking my work reputation (or job!) has played a critical role in the development of my skills, and has lead to my increasing confidence in working with these technologies in an enterprise environment.
Also, its fun. I enjoy providing services for my family and friends. I also enjoy owning the services I use. I know how my data is stored and used, I know the measures taken to protect my privacy, and I know that if I want to stop using these services, my data is actually deleted properly.
There’s a certain rush you get when you finally get something deployed and configured just right, and that rush is addictive. The bigger the project/service, the bigger the rush!
What are the contents of my lab?
Currently, the hardware in my lab consists of:
- Dell T20 Desktop Server
- Dell R710 Rack-Mounted Server
- QNAP TS-431P NAS :- 6TB Usable storage
- Ubiquiti Unifi 8-port Switch
- Ubiquiti Unifi Access Point
- Dell UPS
- Assorted home automation systems.
What am I running now?
QNAP TS-431P NAS
- Plex Storage
- Nextcloud Storage
- Generic Fileshare for Home network devices
Dell T20 Desktop Server :- ESX Server
- NUT :- UPS Monitoring VM
- FunkWhale :- Federated audio streaming service
- MediaGet :- Hosts my media download and organisation docker images:
- Ubiquiti Controller :- Provides a management interface for my switch and access point.
- Web Hosting for a friend
- SSH Tunnel :- Endpoint for a webservice behind a prohibitive firewall
- Plex-Docker :- Dockerised Plex installation for streaming media
- Mastodon :- Federated social media, similar to Twitter
- Libertas :- Mail & Webserver (Hosting this Blog!)
- PFSense :- Handles my internet connection, firewalling, VPN, vLANs and DHCP/DNS
- VMWare vCenter Server :- Manages my ESX server and its storage cluster
- FreePBX :- VoIP server, providing local landline number
Dell R710 Rack-Mounted Server
- FreeNAS storage server, about 11TB useable storage. I’m currently in the process of migrating the data from my Qnap. Eventually, the Qnap will be used for backups and iscsi LUNs.
12U Server Rack
- I’ve gotta make it all neat and tidy! Everything sits in a single rack.
So what plans do I have for the future?
Ideally, I want more rack-mounted servers to replace my venerable T20. Also, some more switching capability, as my existing switch is already reaching capacity! I want to be able to research automation and deployment technologies, so that I can start playing around with high-availability and clustering.
That can only happen with more processing power, so I’ll have to keep my eye out for some good bargains on kit!