HOMELAB
MASTERY

// Your home, your cloud.

STOP RENTING. START BUILDING.

Why pay monthly for cloud services when you can run them at home? A homelab lets you host your own cloud storage, media server, password manager, VPN, and more.

LEARN BY DOING.

The best way to learn DevOps, networking, and system administration is by doing. Your homelab is a safe place to experiment, break things, and learn.

BEGIN YOUR JOURNEY

// Your Training Path

Click a lesson to begin

LESSON 01

What is a Homelab?

Why build a homelab? Use cases and getting started.

Beginner
LESSON 02

Hardware Choices

Raspberry Pi, old laptops, or dedicated servers.

Beginner
LESSON 03

Network Setup

Router, VLANs, static IPs, and DNS.

Beginner
LESSON 04

Your First VM

Install Proxmox or VirtualBox. Run your first virtual machine.

Beginner
LESSON 05

Docker Basics

Containerize your services. Docker Compose.

Intermediate
LESSON 06

Storage & Backups

NAS, RAID, and backup strategies.

Intermediate
LESSON 07

Media Server

Plex, Jellyfin, Sonarr, Radarr. Build your streaming platform.

Intermediate
LESSON 08

Self-Hosted Apps

Home Assistant, Bitwarden, Nextcloud, and more.

Intermediate
LESSON 09

Remote Access

VPN, reverse proxy, and accessing your lab from anywhere.

Advanced
LESSON 10

Security

Firewall, fail2ban, reverse proxy TLS, and hardening.

Advanced
LESSON 11

Monitoring

Uptime Kuma, Grafana, and knowing when services go down.

Advanced
LESSON 12

Homelab in Production

Power management, rack setup, and scaling up.

Advanced

// Lesson 01: What is a Homelab?

×

Why Build a Homelab?

A homelab is a personal computing environment where you experiment with technology, host services, and learn new skills.

Use Cases

  • Self-hosting: Run your own cloud storage, calendar, contacts
  • Media server: Stream your own content
  • Learning: Practice Linux, networking, DevOps
  • Home automation: Smart home control
  • Development: Test your code

What You'll Learn

  • Linux system administration
  • Networking (DNS, DHCP, VLANs)
  • Virtualization and containers
  • Security and hardening
  • Networking and port forwarding

Quiz

1. What is a primary benefit of a homelab?

Show Answers
  1. Learning / self-hosting

// Lesson 02: Hardware Choices

×

Options for Every Budget

Raspberry Pi ($35-150)

  • Great for beginners
  • Low power consumption
  • Good for light services
  • 4GB+ RAM recommended

Old Laptop/Desktop ($0-100)

  • Free if you have one
  • More powerful than Pi
  • More storage options
  • Add more RAM/disk

Dedicated Server ($100-500)

  • Enterprise-grade hardware
  • More VMs/containers
  • Better reliability
  • Consider Dell OptiPlex, HP ProDesk

Minimum Recommendations

  • 4GB RAM (8GB+ recommended)
  • Two CPU cores
  • 128GB+ storage
  • Stable power

Quiz

1. What's the best starter hardware?

Show Answers
  1. Raspberry Pi / old laptop

// Lesson 03: Network Setup

×

Home Network Basics

Static IPs

Assign static IPs to your servers:

# Ubuntu/Debian - /etc/netplan/01-netcfg.yaml
network:
  version: 2
  ethernets:
    eth0:
      addresses: [192.168.1.10/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [1.1.1.1, 8.8.8.8]

Local DNS (dnsmasq)

# /etc/hosts or dnsmasq config
192.168.1.10  nas.local
192.168.1.11  pihole.local
192.168.1.12  media.local

VLANs (Advanced)

  • Separate IoT devices
  • Guest networks
  • Management network

Quiz

1. Why use static IPs?

Show Answers
  1. Consistent/reliable addressing

// Lesson 04: Your First VM

×

Virtualization Options

Proxmox (Recommended)

  • Type 1 hypervisor
  • Web UI
  • Container and VM support
  • Free and open source

Installing Proxmox

  1. Download ISO from proxmox.com
  2. Write to USB
  3. Boot from USB
  4. Follow installer
  5. Access web UI at https://your-ip:8006

VirtualBox (Simple)

# Install VirtualBox
sudo apt install virtualbox

# Or download from virtualbox.org

Creating Your First VM

  1. Download Ubuntu Server ISO
  2. Create new VM in Proxmox/VirtualBox
  3. Assign CPU, RAM, storage
  4. Mount ISO and start
  5. Install OS

Quiz

1. What is Proxmox?

Show Answers
  1. A virtualization platform / hypervisor

// Lesson 05: Docker Basics

×

Why Docker?

Docker packages applications with all dependencies. One command to run any service.

Installing Docker

# Install Docker
curl -fsSL https://get.docker.com | sh

# Add user to docker group
sudo usermod -aG docker $USER

# Start Docker
sudo systemctl start docker
sudo systemctl enable docker

Running Your First Container

# Run nginx
docker run -d -p 80:80 --name nginx nginx

# Check status
docker ps

# Stop
docker stop nginx

# Remove
docker rm nginx

Docker Compose

# docker-compose.yml
version: '3'
services:
  nginx:
    image: nginx
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html

Quiz

1. What command runs a container?

Show Answers
  1. docker run

// Lesson 06: Storage & Backups

×

Storage Options

Direct Attached

  • Internal drives
  • USB external drives
  • Simple setup

Network Attached Storage (NAS)

  • TrueNAS, OpenMediaVault
  • Centralized storage
  • RAID support

RAID Levels

  • RAID 0: Fast, no redundancy
  • RAID 1: Mirror (exact copy)
  • RAID 5: Parity (1 drive failure)
  • RAID 6: Double parity (2 failures)

Backup Strategy

  • 3-2-1 rule: 3 copies, 2 media, 1 offsite
  • Use rsync for local backups
  • Use Restic or Borg for encrypted backups
  • Test restores regularly

Quiz

1. What is the 3-2-1 backup rule?

Show Answers
  1. 3 copies, 2 media types, 1 offsite

// Lesson 07: Media Server

×

Media Server Stack

Jellyfin (Free)

  • Free and open source
  • Netflix-like interface
  • Transcoding support

Plex (Commercial)

  • Better transcoding
  • Mobile app
  • Free tier available

Media Management

  • Sonarr: TV series management
  • Radarr: Movie management
  • Bazarr: Subtitle management
  • qBittorrent: Download client

Docker Compose Example

version: '3'
services:
  jellyfin:
    image: jellyfin/jellyfin
    container_name: jellyfin
    network_mode: host
    volumes:
      - ./config:/config
      - ./cache:/cache
      - /mnt/media:/media

Quiz

1. What manages TV downloads?

Show Answers
  1. Sonarr

// Lesson 08: Self-Hosted Apps

×

Popular Self-Hosted Apps

Home Assistant

Smart home hub. Control all your IoT devices.

Bitwarden

Password manager. Host your own vault.

Nextcloud

Dropbox alternative. Files, calendar, contacts,办公.

AdGuard Home

Network-wide ad blocking. DNS-level filtering.

Portainer

Docker management UI.

Useful Docker Stack

version: '3'
services:
  homeassistant:
    image: homeassistant/home-assistant
    network_mode: host
    volumes:
      - ./ha:/config

  bitwarden:
    image: vaultwarden/server
    container_name: bitwarden
    restart: always
    ports:
      - "8080:80"
    volumes:
      - ./bw-data:/data

Quiz

1. What is Bitwarden used for?

Show Answers
  1. Password management

// Lesson 09: Remote Access

×

Accessing Your Lab

VPN (Recommended)

  • WireGuard
  • OpenVPN
  • Tailscale (easy setup)

WireGuard Setup

# Install WireGuard
sudo apt install wireguard

# Generate keys
wg genkey | tee privatekey | wg pubkey > publickey

# Configure /etc/wg0.conf
[Interface]
PrivateKey = <your-private-key>
Address = 10.0.0.1/24

[Peer]
PublicKey = <client-public-key>
AllowedIPs = 10.0.0.2/32

Reverse Proxy

  • Nginx Proxy Manager
  • Traefik
  • Caddy

Access from Internet

  • Port forwarding (less secure)
  • Cloudflare Tunnel (secure)
  • Tailscale (easiest)

Quiz

1. What is the safest way to access from outside?

Show Answers
  1. VPN

// Lesson 10: Security

×

Homelab Security

Firewall

# UFW basics
sudo ufw enable
sudo ufw allow ssh
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw default deny incoming

fail2ban

# Install
sudo apt install fail2ban

# Copy config
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

# Edit settings
sudo nano /etc/fail2ban/jail.local

Reverse Proxy TLS

  • Use Let's Encrypt
  • Auto-renew certificates
  • Always use HTTPS

Security Checklist

  • Change default passwords
  • Use strong passwords
  • Enable 2FA where possible
  • Keep software updated
  • Use firewall
  • Monitor logs

Quiz

1. What blocks brute force attacks?

Show Answers
  1. fail2ban

// Lesson 11: Monitoring

×

Monitor Your Homelab

Uptime Kuma

Self-hosted status page and monitoring.

# Docker
docker run -d --name uptime-kuma -p 3001:3001 -v ./uptime-kuma:/app/data louislam/uptime-kuma

Glances

System monitoring.

# Install
pip install glances

# Run
glances

Dashboard

  • Grafana + Prometheus
  • Check docker stats
  • Monitor disk space
  • Track bandwidth

Quiz

1. What checks if services are up?

Show Answers
  1. Uptime Kuma

// Lesson 12: Homelab in Production

×

Going Production

Power Management

  • UPS (Uninterruptible Power Supply)
  • Automatic shutdown on power loss
  • Battery backup for router/modem

Rack Setup

  • Wall-mounted rack
  • Server rack
  • Cabinet for clean setup
  • Proper cable management

Cooling

  • Case fans
  • Room ventilation
  • Temperature monitoring

Documentation

  • Network diagram
  • Service list
  • Credentials (secure!)
  • IP assignments

Congratulations!

You've completed the Homelab Mastery guide. You now understand:

  • Homelab fundamentals
  • Hardware selection
  • Network configuration
  • Virtualization
  • Docker and containers
  • Storage and backups
  • Media servers
  • Self-hosted applications
  • Remote access
  • Security hardening
  • Monitoring
  • Production setup

// Why a Homelab

A homelab is more than just servers—it's a learning environment and a way to take back control of your data.

Instead of renting cloud services, run your own. You'll learn invaluable skills and have full control over your data.

Your home, your cloud, your rules.

// Tools & References

Homelab Subreddit

Community

r/homelab

Proxmox

Virtualization Platform

proxmox.com

Docker

Container Platform

docker.com

Awesome Selfhosted

List of Apps

GitHub

LinuxServer.io

Docker Images

linuxserver.io

Spaceinvader One

YouTube Tutorials

YouTube