Homelab Infrastructure: Final Architecture and Key Learnings

A complete overview of my homelab infrastructure, covering architecture, design decisions, and key lessons learned from building and operating it.

This post brings together the full homelab architecture, summarising how the system is designed, how components interact, and the key lessons learned from building and operating it.

The goal was not just to run services, but to design a structured, reliable, and observable environment that reflects real-world infrastructure principles.


System Overview

The homelab consists of:

  • Proxmox for virtualisation
  • OpenMediaVault for storage
  • Docker for containerised workloads
  • Pi-hole and Unbound for DNS
  • Nginx Proxy Manager for ingress and SSL
  • Prometheus and Grafana for monitoring

Each component has a defined role within the system.


End-to-End Flow

A typical request flows through the system as follows:

Client
  ↓
DNS (Pi-hole + Unbound)
  ↓
Cloudflare
  ↓
Reverse Proxy (Nginx Proxy Manager)
  ↓
Docker / VM Service
  ↓
Storage (if required)

This flow demonstrates how networking, DNS, and service layers interact.


Design Principles

The system is built around a few core principles:

  • Separation of concerns across components
  • Predictable networking and addressing
  • Minimal exposure of services
  • Observability and monitoring
  • Data integrity and protection

These principles guided decisions throughout the build.


What Worked Well

Several design choices proved particularly effective:

  • Centralised ingress through a reverse proxy
  • Local DNS for service discovery
  • Containerised workloads for isolation
  • Monitoring for visibility and debugging
  • RAID-backed storage for critical data

These created a stable and manageable system.


Challenges and Lessons

Building and operating the system highlighted several key lessons:

  • DNS is foundational and impacts everything
  • Docker networking requires careful understanding
  • Small misconfigurations can have wide effects
  • Monitoring is essential for diagnosing issues
  • Storage must be handled carefully to avoid data loss

These lessons came from real issues encountered during setup and operation.


Trade-offs and Decisions

Not every decision was about maximising features.

Some deliberate trade-offs included:

  • Choosing RAID1 over more complex RAID levels
  • Keeping the network simple rather than over-segmented
  • Avoiding unnecessary tooling or automation

This kept the system understandable and maintainable.


Operational Mindset

The focus throughout was not just building, but operating the system.

This includes:

  • Monitoring system health
  • Managing updates and changes
  • Validating backups
  • Troubleshooting issues

This reflects how real infrastructure environments are managed.


Key Takeaways

  • Infrastructure should be designed, not just assembled
  • Simplicity improves reliability
  • Understanding fundamentals is more valuable than adding tools
  • Observability and control are critical
  • Real learning comes from troubleshooting and iteration

Next Steps

This homelab will continue to evolve, with future focus on:

  • Kubernetes and container orchestration
  • Infrastructure as Code (Terraform)
  • Automation and CI/CD pipelines

These will build on the foundation established here.