Homelab Self-Hosting Guide
From a Debian server to a production setup – the curated learning path
This guide is a through-line across my homelab, not a single tutorial. Each stop links the article that covers the topic in detail. The order is a recommendation – if a Debian server is already running, jump straight to containers or the reverse proxy.
A Linux server (Debian, in my case) with SSH access. We build everything else step by step – no enterprise hardware needed, a mini PC is plenty.
In my setup this all runs on a small, power-efficient mini PC instead of a loud server tower – enough for a good dozen containers and a few VMs:
Ad · Affiliate link – if you buy through it, I may earn a commission. It doesn’t change the price for you.
1. Virtualization & Basics
Before containers can run, the question is: bare KVM or Proxmox on top? And when is a VM actually worth it instead of a container?
- Proxmox vs. plain KVM: when it’s worth switching – the fundamental decision for your virtualization base.
- Home Assistant OS in KVM/QEMU – a dedicated system as a VM, with full add-on support.
- I know Docker – LXC too? – when a system container is the better choice than a Docker container.
2. Reverse Proxy & Network
As soon as more than one service runs, you need clean routing and HTTPS – without opening ports to the internet.
- Traefik vs. Nginx Proxy Manager – which reverse proxy really fits you.
- Local domains with SSL: Nginx Proxy Manager in the home network – real Let’s Encrypt certificates via DNS challenge, internally.
- Symlink for ttyUSBx – stable device names so USB sticks don’t wander after a reboot.
3. Storage & Backup
Data you don’t want to lose belongs on reliable storage – and in a tested backup.
- The end of MicroSD: NVMe in the homelab – why SD cards die in continuous operation and NVMe is the fix.
- Postgres backup for self-hosted apps: pg_dump to PITR – from logical dumps to point-in-time recovery.
4. Operations, Updates & Deployment
Once everything runs, the real work begins: keeping it current, shipping changes, staying in control.
- Automatically updating Docker containers: Watchtower, Diun & Renovate – automate updates without losing control.
- Production server for a Django app – Nginx Unit as a lean alternative for your own apps.
- GitLab CI for Wagtail/Django: build, migrations, deploy – automated deployment baked into the Docker image.
Related topics
Prefer to browse instead of following a path? Then head here:
- All homelab articles – the full, chronological overview.
- Home Automation – smart home, ESPHome and Home Assistant.
- Software & Web – development, MCP servers and web topics.