Quick overview of the Hardware and Software infrastructures.
So far, the homelab infrastructure consists of 3 main segments:
- Physical Hardware (This lives with me at home and is documented in the Hardware section).
- Cloud Services (Mainly using hetzner cloud instances for redundancy and external access).
- Overlay Network (Documented in the Network section).
Physical Hardware
Compute
Most of my Compute hardware are second-hand devices sourced from eBay or local marketplaces. Most of them are compact mini-PCs or small form-factor devices such as HP Prodesk Minis Optiplexes or Minisforum units. I do also use a few Raspberry Pis for IoT and lightweight tasks. The baremetal hardware is mainly used to run Proxmox as the hypervisor, hosting multiple VMs and containers for various services. More details can be found in the Hardware section.
Networking
Currently, my network infrastructure is built around GL.iNet devices. I use a GL.iNet Flint 3 as the mai home router I also have a MikroTik hAP refresh as my main homelab network router. This allow me to physically separate my homelab network from my home network. the Flint 3 also provides wifi to my users devices and guests (on a separate VLAN of course). The MikroTik hAP refresh handles all the routing, firewall, and VPN duties for my homelab. This is documented in more details in the Network section and is managed using Infrastructure as Code.
Storage
For storage, my primary solution is using a DAS connected to my main Proxmox server. With 2x 4TB drives with no RAID, I get around 7.2TB of usable space. This is mainly used for VM storage, backups, and media. A VM running a Samba server provides file sharing capabilities across the network. More details can be found in the Storage section.
Cloud Services
To complement my physical hardware, I also use Hetzner Cloud instances for redundancy and external access. Currently, I have two instances:
-
diamondarm: This instance acts as a VPN gateway and reverse proxy for accessing my homelab services from outside my home network. Maybe using something like netbird or pangolin. #TODO: yet to be implemented. -
red-matter: This instance is used for hosting core services that is a fallover for my core vm's at home. #TODO: yet to be implemented.
Overlay Network
To securely connect my physical homelab with my cloud instances, I use netbird or pangolin to create a zero-trust mesh VPN. This allows all my devices, both at home and in the cloud, to communicate securely as if they were on the same local network. This setup is documented in more details in the Network section.
Infrastructure as Code
To manage and automate the deployment of my infrastructure, I use Infrastructure as Code (IaC) principles. This involves using tools like Ansible and OpenTofu to define and provision my hardware, network configurations, and services. This approach ensures that my infrastructure is consistent, reproducible, and easy to manage. More details can be found in the Infrastructure as Code section.