Rebuilding my Homelab

| Jun 12, 2022

So, after a year or two of working on my homelab on and off, I finally had some time to look at what I wanted to do with my Homelab infrastructure.

For reference, I’ve been very much using it as a ‘ooh, that looks cool, I should try that’ kind of lab - something that doesn’t quite fit it’s use-case nowadays (though I do still tinker).

So, as part of my tidying up of stuff, I opted to do a complete re-design of my entire homelab infrastructure, as well as do some tidying up of my networking that I’ve been putting off basically since it was first set up.

Phase 1 - Initial Planning

Phase 1 involved me looking at all of the current services/systems and hardware I was using and evaluating what needed to stay and what needed to go. In general, I try to make use of my hardware as much as possible, and don’t really like lingering kit just sitting there not doing anything.

In the end, I settled on the following plan:

  • My Intel NUC will be used for Docker and Podman containers and the media library.
  • My Synology NAS will be used as storage for my container data as well as an LDAP server and a couple of other small things like Amazon EC2 Glacier Backups.
  • My Old PC will be used as a Proxmox server for a couple of small occasional use VMs.
  • My Raspberry Pi will be used as a Pi-Hole and to host a couple of small services like a proxy manager (namely, NGINX).
  • The network will be split into separate VLANs for internal/personal devices, externally-facing servers and IoT devices (one VLAN for trusted, one for untrusted).

Note: The above links are Amazon Affiliate links and, as such, I receive monetary compensation for any associated purchases.

Phase 2 - Building the Lab

Phase 2 involved actually setting things up to get this working. As my other half is a full-time streamer, I can’t really just be pulling services off the network or shutting down the wi-fi willy-nilly; as such, I had to make sure that things were planned out ahead of time in order to minimise disruption.

The first changes to be made was the network setup - VLANs were prepped ahead of time and the new networks for each were created. All I needed was a couple of hours to take down the network and reconnect all the devices to the relevant VLAN networks. In the end, this went pretty much exactly according to plan, preventing any major downtime.

Once the network was completed, it was time to migrate any existing Docker containers to their new homes. As I was already using my Synology NAS as an NFS share for a couple of my docker containers, I had to re-build the NFS integrations with Docker. This time around, I opted to specify the details within the docker-compose.yml files I was using so I could more easily correct any issues with configuration.

After the containers were migrated, I started setting up the new Pi-Hole and Proxying systems for each service. This is where I ran into the first major hiccups. Unfortunately, the amount of traffic that was passing through the Pi seemed to cause some major performance issues with it, and in the end, it just could not keep up with the data - what this meant is that I ended up with the Pi just crashing and burning under the load or DNS requests timing out completely; not ideal. In the end, I opted to move the Pi-Hole and NGINX Proxy Manager to a separate machine (the NUC) and routed everything through that - if the performance becomes an issue, it has an extra network card that I can route all of the traffic through without affecting the containers too much.

As a general note: If something isn’t working, there is a 75% chance it’s DNS that’s the problem.

Conclusion

Overall, the switch over went quite well with the exception of the load-balancing issues for the Pi. I’m unsure if this was just a configuration problem (most likely) or that I was just asking too much of it - but in the end, I got the new lab up and running.

I will be posting more updates about the lab and what changes I’m making, so be sure to keep an eye out for those.