Inside My Home Lab: A Tour of My Self-Hosted Setup

Explore a full breakdown of my self-hosted home lab setup, from Docker services and NAS storage to automation and remote access with Rustdesk and n8n.

Inside My Home Lab: A Tour of My Self-Hosted Setup
Photo by Martijn Baudoin / Unsplash

TL;DR: This post breaks down my self-hosted home lab architecture—how it’s built, what services I run in Docker, and how it all ties together. If you’re into self-hosting, automation, or IT systems engineering, you’ll find practical insights and inspiration here.

💡
This post may contain my affiliate links meaning that I make some commission on a purchase you may make. This costs you nothing and helps me buy more gadgets!

Why I Built a Home Lab

If you’ve ever wanted full control over your tech stack, building a home lab is one of the most empowering ways to do it. For me, it started as a way to experiment with Docker, automation workflows, and system architecture. Today, it’s a fully integrated environment for learning, testing, and managing self-hosted services.

Whether you’re just starting your home lab journey or looking to optimize your existing setup, there’s something here for you.

The Core Infrastructure

My home lab is a hybrid of performance and practicality. Here’s the high-level breakdown:

Primary Components

  • Ubuntu VM (Docker Host): This is where the majority of my services run via Docker containers. It is running on a very inexpensive physical tower server that I purchased from Amazon to start learning.
  • Raspberry Pi 4: Handles lightweight tasks like Pi-hole for network-wide ad-blocking. https://amzn.to/4j4xloZ
  • Buffalo LinkStation NAS: Provides persistent volume storage via NFS for Docker backup data. https://amzn.to/43iIYCW
  • UniFi Network (UDM Pro): Used for network segmentation, firewall rules, and remote access via UniFi Teleport VPN. https://amzn.to/4jbldmm
  • DNS Management: All domains and subdomains are managed via Cloudflare, routed through NGINX Proxy Manager for SSL and reverse proxy.

Services I Self-Host in Docker

Each service is containerized for portability and ease of management. Here’s what’s currently running in my stack:

NGINX Proxy Manager

A reverse proxy that handles:

  • SSL certificates via Let’s Encrypt
  • Clean, custom URLs for all services
  • Routing internal Docker containers to public-facing subdomains

Why I use it: Centralized, GUI-friendly control over inbound traffic and security.

Watchtower

Monitors and updates Docker containers automatically.

  • Keeps services patched with minimal downtime
  • Can be scoped to only update certain containers using labels

Use case: Set-it-and-forget-it security updates for my containers.

n8n (Workflow Automation)

A powerful low-code automation platform. My workflows include:

  • Generating daily language learning reminders
  • Generating daily email summaries with follow-up tasks
  • Parsing and classifying inbound emails
  • Updating Linux servers (I know I can use Ansible as I've done in the past, but n8n is just too fun!)
  • Twitch live notifications to Discord for when me or one of my friends goes live
  • Daily disk space report for my media server

Learn more: n8n.io

LibreChat

A self-hosted front-end interface for interacting with language models.

  • Used for writing assistance, debugging, and prompt testing
  • Offers an alternative to ChatGPT that stays entirely within my infrastructure

LinkStack

A minimalist, self-hosted alternative to Linktree.

  • Displays important links in a clean, mobile-friendly UI
  • Great for sharing GitHub, blog posts, or project links

You can check out mine at https://jermad14.com/

Rustdesk

My remote desktop tool of choice.

  • Hosted both locally and on a small AWS Lightsail instance
  • Enables remote access for family support, file transfers, and server control
  • Self-hosted relay server gives me complete privacy

Pi-hole

Runs on the Raspberry Pi to block ads and trackers at the DNS level.

  • Helps reduce bandwidth usage and increases privacy
  • Allows me to create local DNS records

Storage Strategy

All persistent volumes for Docker containers are mounted to my NAS using NFS. This allows:

  • Easy backups and snapshots
  • Volume sharing across different hosts
  • Avoidance of storing sensitive data on cloud services

I also selectively sync certain volumes to an AWS Lightsail instance for portability, particularly for Rustdesk’s relay server.

Network Architecture & Access

Key networking features include:

  • Cloudflare DNS for global resolution
  • NGINX Proxy Manager for centralized reverse proxy and HTTPS
  • UniFi Teleport for secure remote access to the home network

With this setup, I can securely access any internal service from anywhere without exposing raw IP addresses or ports.

Summary & Key Takeaways

  • A home lab gives you complete control over your infrastructure.
  • Docker makes service management modular and portable.
  • Centralizing proxying and DNS creates a clean, scalable architecture.
  • Automation tools like n8n bring real productivity value to a personal setup.

If you’re considering building your own lab, start small—then iterate. The beauty of self-hosting is that it grows with you.