Setting Up a Homelab From Scratch

· 5 min read
homelab linux docker self-hosted

This is the first in a series on building and running a homelab. We’ll go from bare hardware to a working setup with virtualization, containers, reverse proxy, and monitoring.

Why run a homelab

Running your own infrastructure teaches you things that no cloud console ever will. When you’re the sysadmin, the network engineer, and the on-call responder for your own services, you develop an intuition for how systems actually behave — not just how they’re supposed to behave.

Practical reasons:

  • Learn Linux, networking, and infrastructure by breaking things in a safe environment.
  • Self-host services you’d otherwise pay for (Gitea, Nextcloud, media, dashboards).
  • Control your data — no vendor lock-in, no surprise pricing changes.
  • Have fun — it’s genuinely enjoyable to build things.

Hardware

You don’t need enterprise gear to start. A good entry point:

  • An old desktop or laptop with 16+ GB RAM and an SSD
  • A mini PC like a Beelink or Intel NUC (low power, quiet)
  • A used Dell Optiplex or HP EliteDesk from the refurb market

What matters most: RAM (VMs and containers eat it), SSD (spinning disks are painful), and a wired Ethernet connection (Wi-Fi adds latency and unreliability).

Software stack

Here’s what we’ll set up across this series:

LayerToolWhy
HypervisorProxmox VEFree, battle-tested, web UI for VM/container management
ContainersDocker + ComposeRun services without full VMs
Reverse proxyCaddyAutomatic HTTPS, simple config
MonitoringGrafana + PrometheusDashboards and alerting
GitGiteaLightweight self-hosted Git
DNSPi-hole or AdGuard HomeNetwork-wide ad blocking + local DNS

Next steps

In the next post, we’ll install Proxmox on bare metal and configure networking. After that: Docker host VM, Caddy reverse proxy with wildcard certs, and your first self-hosted services.

Stay tuned.