Setting Up a Homelab From Scratch
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:
| Layer | Tool | Why |
|---|---|---|
| Hypervisor | Proxmox VE | Free, battle-tested, web UI for VM/container management |
| Containers | Docker + Compose | Run services without full VMs |
| Reverse proxy | Caddy | Automatic HTTPS, simple config |
| Monitoring | Grafana + Prometheus | Dashboards and alerting |
| Git | Gitea | Lightweight self-hosted Git |
| DNS | Pi-hole or AdGuard Home | Network-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.