My Homelab

The hands-on portion of my studying is done within a homelab I have put together after graduating college so I may continue to learn and expand my knowledge.

This serves my needs for the educational aspect, and practical self hosting for uses such as NextCloud (formly OwnCloud) hosting. Hands-on practice is important, learning how to update, configure, manage, secure, etc systems takes a lot of learning. A lot of this can be learned on the job, and you're prepared for it some through formal education, but this hands on practice equates to experience. It may not be real world experience, unless you are running some public services perhaps, but it is valuable nonetheless.

Network diagram

As pictured above, my lab consists of:


On the PfSense router the following services are configured to serve my home network:

  • DHCP

  • DNS

  • NTP

  • Snort IPS running on the WAN link

  • OpenVPN configured as a client

  • Pf firewall

  • OpenVPN server VPN to connect to my NextCloud instance remotely in a secure fashion. My IP is not static although it does not change often, so I use a dynamic DNS service so I can always connect to my OpenVPN server.

Virtualization Server

At one point I was using vSphere for my hypervisor but I switched to ProxMox due to the integration of essential features into the base system. Things such as clustering, HA, automated backups, easier updating, etc. without needing additional VMWare products was quite nice and very benefical for a homelab setting. My important virtual machines were backed up using ghettoVCB, a free vmware community developed script for backups. It is simple, robust, and does the job. It was done over NFS to my storage server. I had used vSphere and vCenter long enough to get a grasp on the platform because it was common to find it in Enterprise business environments so being familiar with it is important.

At this point I have two virtualization servers, both of which are ProxMox. One is a custom built server on commodity hardware and it has an AMD FX-8300 Eight-Core Processor and 16 GB of RAM. The other is an IBM x3650 M2 with 2x Intel(R) Xeon E5530 and 64 GB of RAM.

Storage Server

A FreeNAS box which contains my media and backups, and runs some services in Jails.

I have two pools setup, one for media, and another for everything else. The first pool is raidz1 and the other is a mirror. The media pool only has one dataset since its not split up as that is not necessary, while the other pool has various datasets such as for vmware backups, jails, my backups, etc.

FreeNAS has been great, its been capable of everything I've wanted and has been stable. Sticking to the Stable train has been best, and I've waited to upgrade after each update and version. I waited about two months for the issues to be ironed out with the upgrade, so going from 9.10.x to 11.x was even easy as an example.