Welcome to Leleasley's

Personal Homelab Journey & Recommendations

Join me as I share my experiences, lessons learned, and suggestions for building your own homelab. This is my adventure into self-hosted infrastructure, and I'm excited to share what I've discovered along the way.

🐳 Docker 🖥️ Proxmox ☁️ Cloudflare 🐧 Linux

Hardware Infrastructure

The redundant metal powering my ecosystem. Built for stability, speed, and quiet operation in a residential environment.

Compute Node (Proxmox)

CPU: Intel Core i5-12500T (6C/12T) RAM: 16GB DDR4 3200MHz Storage: 2TB NVMe SSD (VMs) OS: Proxmox VE 9.1
🖥️

Storage NAS

Model: Custom Build / Synology Capacity: 8tb Cache: 500GB NVMe R/W Network: 10GbE SFP+
💾

Network Core

Router: OPNsense Switch: Ubiquiti UniFi Pro 24 PoE AP: UniFi U6-Pro x2 Uplink: 1Gbps Fiber
🌐
Total TDP ~140W Idle
Node Count 3 Active Units
Backplane 10GbE / LACP

What is a Homelab?

A homelab is a personal testbed where enthusiasts set up their own servers, networking equipment, and infrastructure at home. It's a playground for learning, experimenting, and hosting services without relying on cloud providers. Here's why I think it's worth your time:

Privacy & Control
Complete ownership of your data. No third parties, no surveillance, just you and your services.
Learn by Doing
Hands-on experience with enterprise technologies. Break things, fix them, and grow your skills.
Cost Effective
Replace monthly subscriptions with one-time hardware investments. Own your infrastructure.
Unlimited Potential
From media servers to automation, VPNs to game servers - if you can dream it, you can host it.

Virtualization: Multiple Machines, One Box

Virtualization changed everything for my homelab. With tools like Proxmox or VMware ESXi, you can run multiple virtual machines (VMs) on a single physical server. Each VM acts like its own computer with its own operating system, completely isolated from the others. I highly recommend starting with Proxmox - it's free, powerful, and has an incredible community.

Resource Efficiency Snapshots & Backups Isolation Easy Testing Hardware Passthrough
Proxmox VE
My top recommendation. Open-source, web-based management, supports both VMs and containers (LXC). Perfect for homelabs.
Snapshots Save Lives
Before major changes, take a snapshot. Broke something? Roll back in seconds. This feature alone is worth virtualizing.
Test Safely
Spin up test VMs, experiment wildly, and delete them when done. No risk to your production services.

Docker: My Go-To for Application Deployment

Docker is probably the tool I use most in my homelab. Instead of installing software directly on your system, Docker packages applications with all their dependencies into lightweight, portable containers. I run everything from web apps to databases in Docker - it's consistent, easy to manage, and if something breaks, you just delete the container and redeploy. No messy system-wide installations.

Isolation Portability Consistency Scalability Easy Deployment
$ docker run -d -p 80:80 nginx
# Deploy a web server in seconds!

My suggestion: Learn Docker Compose. Define your entire application stack in a YAML file, and deploy everything with one command. It's a game-changer for managing multiple services.

Linux: The Foundation of My Homelab

Every server in my homelab runs Linux. This open-source operating system is stable, secure, and gives you complete control. I started with Ubuntu Server because of its great documentation and community support. The learning curve exists, but once you're comfortable with the command line, you'll wonder how you ever managed without it.

Free & Open Source Extremely Stable Lightweight Customizable Powerful CLI
$ sudo apt update && sudo apt upgrade
$ systemctl status docker
# Master the terminal, master your homelab

My recommendation: Start with Ubuntu Server 22.04 LTS. It's beginner-friendly, well-documented, and has long-term support. Once you're comfortable, you can explore Debian, Rocky Linux, or other distributions.

Nginx Proxy Manager: Essential for My Setup

This is hands-down one of my favorite tools. Nginx Proxy Manager sits in front of all my services and routes traffic intelligently. I can run dozens of services on one server, each with its own subdomain, all secured with automatic SSL certificates from Let's Encrypt. The web UI makes configuration a breeze compared to editing raw Nginx configs.

SSL/TLS Encryption Domain Routing Web Interface Access Lists
One IP, Many Services
Route app1.domain.com, app2.domain.com, and app3.domain.com all to different containers on the same server.
Free SSL Certificates
Let's Encrypt integration provides SSL certificates that renew automatically. Set it and forget it.

Cloudflare: My First Line of Defense

I put all my domains through Cloudflare, and I can't recommend it enough. It provides DNS management, DDoS protection, SSL encryption, and caching - all on their free tier. Most importantly, it hides my home IP address from the public internet. Cloudflare Tunnels even let me expose services without opening any ports on my router.

DDoS Protection DNS Management CDN Caching Analytics Free SSL
IP Masking
Your real IP stays hidden. Cloudflare's network stands between attackers and your home.
Global CDN
Content cached across 300+ cities worldwide means faster access for everyone.
Cloudflare Tunnels
Expose services without port forwarding. This feature alone is worth using Cloudflare.

DNS: The Internet's Phone Book

DNS (Domain Name System) is absolutely critical to understand when running a homelab. It's what translates human-readable domain names like "myserver.com" into IP addresses. When I first started, DNS seemed complicated, but once I grasped it, everything clicked into place.

Name Resolution Local & Public DNS Split DNS Ad Blocking Network Control
Internal DNS (AdGuard Home)
Run your own DNS server at home. Block ads network-wide, create custom local domain names, and have complete visibility into what devices are querying.
Split-Horizon DNS
The same domain resolves to different IPs inside vs outside your network. Access services locally via 192.168.x.x but remotely through your public IP or Tunnel.
Fast Local Resolution
Stop typing IP addresses. Use 'plex.home' instead of '192.168.1.50:32400'. Makes managing multiple services so much easier.

How I Use DNS in My Homelab

1️⃣

Public DNS (Cloudflare)

I manage all my public DNS records in Cloudflare. When someone on the internet types "myapp.leleasley.uk", Cloudflare's DNS servers respond with either my public IP or Cloudflare's proxy IP.

# Example public DNS record:
myapp.leleasley.uk → 203.0.113.45 (Public IP)
# Or proxied through Cloudflare
myapp.leleasley.uk → 104.21.x.x (Cloudflare IP)
2️⃣

Local DNS Server (AdGuard Home)

Inside my network, I run AdGuard Home as my primary DNS server. All devices on my network use it as their DNS. This lets me create local DNS overrides, block ads, and have full logging of DNS queries.

# AdGuard Home running at:
192.168.1.2:53

# All devices configured to use:
Primary DNS: 192.168.1.2
Secondary DNS: 1.1.1.1 (fallback)
3️⃣

Local DNS Records (Split DNS)

Here's where the magic happens. In AdGuard Home, I create local DNS records that override the public ones. When I'm at home and type "myapp.leleasley.uk", AdGuard Home responds with my server's local IP (192.168.1.50) instead of going through the internet.

# Local DNS overrides in AdGuard Home:
plex.leleasley.uk → 192.168.1.50
dashboard.leleasley.uk → 192.168.1.51
proxmox.home → 192.168.1.10
4️⃣

Custom Local Domains (.home, .lan)

For services I never want exposed externally, I use custom domains like ".home" or ".lan". These never leave my network and don't require a real domain name.

# Internal-only services:
proxmox.home → 192.168.1.10
router.home → 192.168.1.1
adguard.home → 192.168.1.2

Popular DNS Solutions for Homelabs

AdGuard Home
My top pick. Network-wide ad blocking, beautiful dashboard, easy local DNS records. Runs perfectly on a Raspberry Pi or in Docker.
Pi-hole
Modern alternative to AdGuard Home with a slick interface. Better parental controls and encrypted DNS support out of the box.
Bind9
For the advanced users. Full-featured DNS servers with complete control. Steeper learning curve but incredibly powerful.

Why Local DNS Changed My Homelab

No More IP Addresses: I type 'dns.home' instead of '192.168.1.50:32400'. So much cleaner and easier to remember.
Network-Wide Ad Blocking: Every device, including smart TVs, phones, and tablets, gets ad blocking without installing anything.
Local Speed: When accessing services from home, traffic stays local. No round-trip through the internet and back.
Visibility: AdGuard Home shows me exactly what every device on my network is doing. Found so many IoT devices phoning home.
Professionalism: Using proper domain names makes your homelab feel legitimate and organized.

My Suggestions for Getting Started

Based on my experience, here's the path I'd recommend if I were starting over. Take it one step at a time, don't rush, and enjoy the learning process.

1. Choose Your Hardware

I started with an old laptop, and it was perfect for learning. Don't feel pressured to buy expensive hardware right away. A Raspberry Pi, old PC, or even a mini PC from Amazon works great. You can always upgrade later once you know what you need.

2. Install a Hypervisor (Proxmox)

This was a game-changer for me. Install Proxmox on your hardware, and suddenly you can run multiple VMs and containers on the same machine. Start with one Ubuntu Server VM and expand from there. The ability to snapshot before making changes saved me countless times.

3. Learn Docker

Once your VM is running, install Docker. This is how you will host 90% of your applications. Start by deploying a simple container like 'Heimdall' or 'Portainer' to get the hang of it.

4. Secure It (VPN)

Before you open anything to the internet, set up a VPN like Tailscale. This lets you access your lab securely from anywhere without exposing dangerous ports to the world.