Tutorials
Step-by-step homelab and self-hosting tutorials — Proxmox, Docker, VPNs, backups, monitoring — from your first VM to a full self-hosted stack.
Tutorials
Step-by-step setup guides — Proxmox on a mini PC, self-hosted LLMs on a budget GPU, photo libraries that aren’t Google Photos. Each tutorial is end-to-end: hardware picks, install commands, configuration choices, and the gotchas I hit so you don’t have to.
About this section
These guides get re-run, and that is what keeps them current. When a step breaks against a new release, the article is revised in place and the update log records the date.
Proxmox
LXC vs VM in Proxmox: When to Use Each
LXC or VM in Proxmox VE 9.2 for Docker, Home Assistant, Jellyfin, a NAS, Windows and a firewall: service choices, backups, storage and migration.
Proxmox Cluster Setup: 2-Node and 3-Node HA (2026)
Build a Proxmox cluster from scratch: 2-node vs 3-node, corosync quorum, NFS or Ceph storage, live migration, HA groups, and fencing, with config.
ZFS on Proxmox: Pool Setup, ARC Tuning, and Scrubs (2026)
Practical ZFS guide for Proxmox VE 8: create RAIDZ1/mirror pools from the CLI, tune ARC for a shared host, set compression, and schedule scrubs and snapshots.
GPU Passthrough to a Proxmox VM (2026 Setup Guide)
Pass an NVIDIA or AMD GPU to a Proxmox VE 9.2 VM: a sourced pre-flight checklist by CPU, board and GPU, the VFIO steps, and the reset bugs.
Home Assistant on Proxmox: Install HAOS as a VM (2026)
Install Home Assistant OS on Proxmox VE as a VM with Supervisor, Apps, USB passthrough, external backups, and a documented restore path.
Home Assistant Zigbee and Z-Wave Integration (2026)
Home Assistant Zigbee2MQTT and Z-Wave JS UI setup: USB coordinator choice, Proxmox VM passthrough, device pairing, and fully local automations, no cloud.
Home Assistant Automations: A Practical Guide (2026)
Write real Home Assistant automations in YAML. Triggers, conditions, and actions with working examples for lighting, presence, notifications, and schedules.
Self-Hosting
Self-Hosted Password Manager: Vaultwarden on Proxmox (2026)
Install Vaultwarden on a Proxmox LXC, set up an nginx reverse proxy with HTTPS, configure automatic backups, and connect all your devices in under an hour.
Nextcloud AIO Mastercontainer: Docker Setup Guide (2026)
Deploy Nextcloud All-in-One in Docker: Postgres, Redis, Nextcloud Office, Talk, and auto backup. Replace Dropbox, Google Drive, and Docs with a stack you own.
Paperless-ngx Docker Setup with OCR and Auto-Tagging (2026)
Full Paperless-ngx Docker Compose setup with PostgreSQL, Redis, Tika, and Gotenberg. OCR every document, auto-tag by rule, and search your whole paper history.
AudioBookshelf Docker Setup: Self-Hosted Audiobooks (2026)
Complete AudioBookshelf Docker setup: install, organize your library, set up mobile apps for progress sync, and add podcasts. Replace Audible in under 30 min.
Networking & Remote Access
Tailscale Remote Access for the Homelab (2026 Setup Guide)
Set up Tailscale on your homelab fast: install on Proxmox, configure subnet routing, enable MagicDNS, and reach every LAN device without port forwarding.
AdGuard Home + Local DNS on Proxmox (2026 Setup Guide)
AdGuard Home in an unprivileged Debian 13 LXC on Proxmox VE 9.2: port 53 with no config edits, *.lan rewrites, DHCP, optional Unbound, and a check table.
WireGuard Self-Hosted VPN on Proxmox (2026 Setup Guide)
Run your own WireGuard VPN in a Proxmox LXC: server setup, phone and laptop client configs, split vs full tunnel, and a comparison to Tailscale.
OPNsense on a Mini PC: Firewall Router Setup Guide (2026)
Replace your ISP router with OPNsense on a cheap mini PC: install, set up WAN/LAN, DHCP and DNS, enable IDS/IPS with Suricata, and connect your homelab.
VLANs for the Homelab: Network Segmentation Guide (2026)
How to set up VLANs in your homelab: isolate IoT, separate a guest network, add a management VLAN. Covers OPNsense, MikroTik, and Proxmox VLAN-aware bridges.
Self-Hosting (Media & AI)
How to Install Jellyfin with Docker: Setup and Ports (2026)
Install Jellyfin in Docker with hardware transcoding (Quick Sync, NVIDIA CUDA, AMD VAAPI), Nginx Proxy Manager HTTPS, and Tailscale remote access.
Self-Hosted Photo Library 2026: Immich vs PhotoPrism vs Ente
Immich vs PhotoPrism vs Ente in 2026: current versions, each project's hardware minimums, self-hosting and hosted costs, and how to get your library out.
Immich Setup and Google Photos Migration Guide (2026)
Install Immich on a Proxmox LXC or VM, migrate from Google Photos via Takeout, enable CUDA/QSV hardware ML, set a backup strategy, and configure the mobile app.
How to Self-Host a Local LLM on a Single RTX 5060 in 2026
Run a private LLM on a $300 RTX 5060. VRAM tradeoffs, software stack picks, Windows + Linux setup, real tokens/sec numbers, and a verdict.
Backup & Storage
More from this section
Home Assistant + llama.cpp: Fully Local LLM Voice, Measured (2026)
Home Assistant's llama.cpp integration for fully local LLM voice: measured STT/LLM/TTS latency per model, RTX 5080 vs CPU, and a 24-command accuracy test.
Jellyfin Remote Access: Pick the Right Path for Your Situation (2026)
Jellyfin remote access routed by situation: Tailscale, reverse proxy, VPS relay, or Cloudflare Tunnel - which works on TVs, behind CGNAT, and for family.
Uptime Kuma Docker Setup, and Where to Actually Run It (2026)
Uptime Kuma in Docker Compose, plus the part most guides skip: a monitor that lives inside the network it watches cannot tell you that network went down.
Ollama in Docker with GPU: Stop Installing CUDA Inside WSL2 (2026)
Ollama with NVIDIA acceleration in Docker, on native Linux and WSL2, plus Open WebUI. Why the CUDA install everyone does inside WSL is unnecessary.
Dockge Setup: The Compose Manager That Does Less On Purpose (2026)
Install Dockge with Docker Compose, and the one mistake its own README warns about: mismatched stacks paths that write your data somewhere else.
Docker Compose Environment Variables: .env Is Not env_file (2026)
The .env file next to compose.yaml puts nothing in your container. What each mechanism does, the exact precedence order, and why unset vars fail silently.
Docker Cleanup: Which Prune Command Eats Your Data (2026)
Reclaim Docker disk space without losing a database: what system prune removes, why --volumes is narrower than its reputation, and the one to fear.
Adding a User to the Docker Group Is Not a Convenience Setting (2026)
The command every tutorial gives you to stop typing sudo. What Docker's docs say it actually grants, why re-login is required, and when to use rootless.
Proxmox Upgrade 8 to 9: Preflight Checks and Gotchas
Upgrade Proxmox 8 to 9 with a preflight checklist covering backups, pve8to9, repositories, LVM autoactivation, NIC renames and cluster order.
Move a Proxmox VM to a New Host Without a Cluster (2026)
Move a Proxmox VE 9 VM or LXC between standalone hosts with qm remote-migrate, a vzdump or PBS restore, or ZFS send: commands, storage rules and errors.