Assembly manual
The Build Order
Every guide on this site, arranged as the 73 steps you'd actually take building a homelab from nothing. Start at step 1 and work down, or jump to the phase you're on — the page remembers what you've finished.
73 STEPS · 15 PHASES · BARE METAL → AI AGENT
Jump to a phase
- 1Understand what you're building
- 2Plan & prep
- 3Install the base
- 4Create your first workloads
- 5Set up networking
- 6Reach it from anywhere
- 7Protect it
- 8Serve apps the right way
- 9See what it is doing
- 10Set up shared storage
- 11Run real services
- 12Build a media server
- 13Automate your media
- 14Remember what you built
- 15Go further
Understand what you're building
Brand new? Start here — what a homelab actually is, and why it's worth building.
- What Is a Homelab? (And Why You're About to Fall Down a Wonderful Rabbit Hole)A homelab is your own private cloud running on hardware you control. Here's what a homelab actually is, why people build them, what you can run, and how to start — explained for complete beginners, no jargon.6 min read→
- The Complete Proxmox Homelab Guide (2026)A start-to-finish roadmap for building a Proxmox homelab: hardware, install, clustering, networking, storage, security, backups, and the self-hosted services worth running — each step linked to a full walkthrough.6 min read→
Plan & prep
Pick the right hardware, choose a switch, and make a bootable USB — before you touch a keyboard.
- Choosing Homelab Hardware: What Actually Matters and What to IgnoreA practical hardware guide for building a multi-node homelab — CPU, RAM, storage, and power requirements explained without the jargon, with specific recommendations at three budget levels.19 min read→
- Choosing a Network Switch for Your Homelab: Speed, Managed vs Unmanaged, and VLAN BasicsWhat a network switch actually does, the real difference between 1GbE and 2.5GbE for homelab use, why managed switches matter for clustering, and how to wire up multiple Proxmox nodes correctly.10 min read→
- What Is a NAS? (And Which Kind Your Homelab Actually Needs)NAS explained in plain English — what network-attached storage does, commercial box vs DIY server vs a share on your Proxmox host, and how to choose the right one for your budget.7 min read→
Install the base
Install Proxmox, lock it down, then understand your storage options before you create anything.
- Installing Proxmox VE: Complete Step-by-Step Guide from USB to First LoginHow to download Proxmox VE, write a bootable USB drive, install it on your hardware with the correct network settings, and complete the essential post-install configuration — including fixing the subscription nag and switching to the free package repository.11 min read→
- Proxmox Security Hardening: SSH Keys, Firewall, and Locking Down a New ClusterEssential security configuration for a new Proxmox cluster — SSH key-based authentication, disabling password login, configuring the built-in firewall, securing the web UI, and the audit steps to verify nothing is exposed that shouldn't be.13 min read→
- Proxmox Storage Guide: local-lvm, ZFS, NFS, and When to Use EachA practical breakdown of Proxmox storage backends — what local-lvm actually is, when ZFS makes sense, how to add NAS storage over NFS, and the storage layout decisions that affect your cluster's performance and reliability.7 min read→
Create your first workloads
Learn the difference between a container and a VM, then build one of each.
- Proxmox VM vs LXC: When to Use EachA practical guide to choosing between a Proxmox VM and an LXC container — kernel sharing, isolation, density, performance, and a decision flowchart for every workload.7 min read→
- Creating Your First Proxmox LXC Container: Step-by-StepCreate your first Proxmox LXC container from scratch — download a template, run the wizard the right way, choose privileged vs unprivileged, and do the first-boot setup. The homelab workhorse, explained.6 min read→
- Creating Your First Proxmox VM: A Complete WalkthroughCreate a full virtual machine on Proxmox VE from scratch — upload an ISO, configure the VM wizard the right way, install the OS, and add the QEMU guest agent for clean shutdowns and live stats.9 min read→
Set up networking
Configure container networking, set up network-wide DNS with Pi-hole, and add a firewall.
- Proxmox LXC Networking: Static IPs, VLANs, and Bridge ConfigurationA practical reference for Proxmox LXC container networking — assigning static IPs, configuring the Linux bridge, setting up VLAN-aware bridges, and troubleshooting the common mistakes that cause connectivity failures.6 min read→
- Pi-hole on Proxmox LXC: Network-Wide DNS and Ad BlockingRun Pi-hole in a Proxmox LXC container for network-wide ad blocking and local DNS — install it, point your router at it, add local hostnames, and avoid the one mistake that takes your whole network offline.4 min read→
- Proxmox Firewall: Securing a Home Cluster with Zone-Based RulesA practical guide to the Proxmox built-in firewall — cluster-level rules, node-level rules, container-level rules, IPSET groups for your trusted subnets, and the exact rule order that keeps your cluster safe without locking yourself out.6 min read→
Reach it from anywhere
Install Tailscale so you can manage the whole lab securely from any device, anywhere.
- Tailscale Subnet Router: Remote Homelab Access Without Port ForwardingInstall Tailscale on one Proxmox node as a subnet router to make your entire homelab reachable from anywhere — no port forwarding, no VPN box, no dynamic DNS.4 min read→
- Tailscale Exit Node: Route All Traffic Through Your HomelabConfigure a Proxmox LXC container as a Tailscale exit node so all your device traffic routes through your home network — including split tunneling, subnet routing, and the MagicDNS settings that make it seamless.6 min read→
Protect it
Set up automated backups and a UPS-triggered safe shutdown before you start running services you care about.
- Proxmox Backup Server: Automated CT and VM Backups with DeduplicationDeploy Proxmox Backup Server (PBS) in a dedicated LXC container, configure scheduled backups for all containers and VMs, and set retention policies — with verified restore procedures.8 min read→
- One UPS, Whole Homelab: Safe Auto-Shutdown with NUTUse Network UPS Tools (NUT) so a single UPS can cleanly shut down every machine in your homelab when the power fails — one server, many network clients, step by step.12 min read→
Serve apps the right way
Run Docker, learn Compose once, then put every service behind clean HTTPS URLs with a reverse proxy.
- Docker on Proxmox: LXC vs VM, Done RightThe right way to run Docker on Proxmox — why a dedicated VM beats a privileged LXC, how to set both up, and Portainer for a web UI. Avoid the docker-in-LXC pitfalls that cost real downtime.5 min read→
- Your First Docker Compose Stack: From Zero to a Running ServiceA true beginner's guide to Docker Compose. Learn what images, containers, ports, and volumes actually are by deploying your first real service — the foundation every self-hosted app is built on.5 min read→
- What Is Traefik? Reverse Proxies Explained for HomelabsWhat a reverse proxy does, why every homelab needs one, and how Traefik gives your self-hosted services clean HTTPS URLs with automatic certificates instead of a mess of IP addresses and ports.3 min read→
See what it is doing
Start with dead-simple up/down alerts, then add deep metrics and dashboards for the whole cluster — then use that history to answer what happens when a node dies.
- Uptime Kuma: Dead-Simple Homelab Monitoring Before You Touch GrafanaUptime Kuma is the easiest way to monitor your homelab — know the moment a service goes down, with notifications to your phone. A beginner Docker guide to up/down monitoring and status pages.5 min read→
- The Docker localhost Trap: 24 Hours of Red, Zero Real DowntimeMy Uptime Kuma monitors logged 24 hours of red while every service was up. Inside a Docker container, localhost isn't your machine — here's why, and the fix.10 min read→
- Proxmox Monitoring with Prometheus and Grafana: Full Stack SetupDeploy a complete observability stack for a Proxmox cluster: node_exporter on all hosts, pve-exporter for cluster metrics, Prometheus scraping everything, and Grafana dashboards with email alerting.8 min read→
- Node Exporter + pve-exporter: Complete Proxmox Metrics in GrafanaInstall node_exporter on every Proxmox node and pve-exporter for cluster-level metrics, wire both into Prometheus, and import production-ready Grafana dashboards — with alert rules for the metrics that actually matter.7 min read→
- Homelab Capacity Planning: What If a Node Dies Tonight?I built a read-only simulator that answers whether a dead node's containers fit on the survivors — using the RAM they actually use, not the RAM you configured.17 min read→
- Real Screenshots, Zero Leaks: My Disposable Demo LabHow this site captures real, publish-safe homelab screenshots — a throwaway demo lab plus headless Chrome, with no mockups and no leaked IPs.9 min read→
Set up shared storage
Give every service one central place to read and write files — the backbone your photos and media server depend on.
Run real services
The payoff — a smart-home hub, private photo backup, a knowledge base, password manager, local AI, and an autonomous agent. Then put it all on one dashboard.
- Run Home Assistant on Proxmox the Right Way (HAOS in a VM)The correct way to run Home Assistant in a Proxmox homelab: Home Assistant OS in a dedicated VM, installed with the community helper script. Covers why a VM beats a container, and full onboarding.5 min read→
- Self-Host Your Photos with Immich: A Private Google Photos AlternativeReplace Google Photos with Immich on your Proxmox homelab. A beginner guide to installing Immich with Docker Compose, automatic phone backup, AI face and object search — all running on hardware you own.5 min read→
- Wiki.js on Proxmox LXC: Self-Hosted Knowledge Base in 30 MinutesDeploy Wiki.js in an unprivileged Proxmox LXC container with a PostgreSQL backend, HTTPS via a reverse proxy, and automatic backups — the exact setup powering this homelab's documentation.6 min read→
- Vaultwarden on Proxmox LXC: Self-Hosted Bitwarden-Compatible Password ManagerDeploy Vaultwarden (the lightweight Bitwarden-compatible server) in an unprivileged Proxmox LXC container with HTTPS, automatic backups, and mobile client access via Tailscale.6 min read→
- CPU-Only Ollama Cluster on Proxmox LXC: 3-Node Setup with Load BalancingRun local LLMs across three Proxmox LXC containers with Ollama, expose them via Open WebUI's built-in load balancer, and avoid the Docker-in-LXC pitfalls that cost me two sessions to fix.7 min read→
- Open WebUI Advanced: RAG, Pipelines, and Custom System PromptsGo beyond basic chat with Open WebUI — set up Retrieval-Augmented Generation with local documents, configure pipeline tools, create specialized assistants with custom system prompts, and use the API for programmatic access.7 min read→
- Hermes Agent: Self-Hosted AI Agent with Fallback Model ChainsDeploy Hermes Agent on Proxmox LXC — a fully autonomous AI agent with tool use, Anthropic primary routing, and OpenRouter fallback chains. Includes the Kanban integration and CLI delegation setup.6 min read→
- Track AI Token Spend in Grafana: Claude, Codex, and OllamaWire every Claude Code, Codex, and Ollama call into Prometheus and one Grafana dashboard — tokens, latency, cache hits, and real dollars vs quota burn.12 min read→
- One Dashboard for Your Whole Homelab: Set Up HomepageStop bookmarking IP addresses. Set up Homepage — a fast, self-hosted dashboard that puts every homelab service, live status, and system stats on one clean start page. Beginner Docker Compose guide.5 min read→
Build a media server
Pick Plex or Jellyfin, install it, keep playback smooth on modest hardware, and keep the library tidy.
- Plex vs Jellyfin: Which Media Server Should You Run?A practical 2026 comparison of Plex and Jellyfin — pricing, remote access, hardware transcoding, apps, and privacy — to help you pick the right self-hosted media server.6 min read→
- Install Plex Media Server on a NAS or Proxmox LXCSet up Plex Media Server on a NAS or in a Proxmox LXC container, claim it to your account, and build your first movie and TV libraries the right way.7 min read→
- Install Jellyfin on a NAS or Proxmox LXCSet up the free, open-source Jellyfin media server on a NAS or in a Proxmox LXC container, run the first-time wizard, and build your first movie and TV libraries.8 min read→
- Plex Direct Play and Transcoding on Weak HardwareWhy Plex stutters on low-power CPUs, how Direct Play avoids transcoding entirely, and how to tune Plex so 4K files play smoothly without a beefy processor.7 min read→
- Organizing a Plex Library: Naming, Agents, and MetadataName movie and TV files so Plex matches them automatically, pick the right metadata agents, and fix wrong titles and broken sort order in an existing library.5 min read→
Automate your media
The *arr stack, then a request page for the whole house: someone taps Request and it downloads, files itself, and appears in your library — and keeps healing itself when it breaks.
- What Is the Arr Stack? Sonarr, Radarr, and Prowlarr ExplainedA plain-English guide to the *arr stack — what Sonarr, Radarr, and Prowlarr each do, how they fit together, and how the automated media pipeline actually works.5 min read→
- Deploy the Arr Stack with Docker Compose (Prowlarr, Radarr, Sonarr)Stand up the full *arr stack in Docker Compose — Prowlarr, Radarr, Sonarr, and a VPN-shielded download client — with the single-root folder layout that enables instant hardlink imports.7 min read→
- Automating the Arr Stack: Import Lists, Quality Profiles, Media ServerMake the *arr stack hands-off — import lists that add titles automatically, quality profiles that grab the best release, and a notification that refreshes Plex or Jellyfin on import.7 min read→
- Jellyseerr: Let Your Family Request Movies ThemselvesGive your whole household a Netflix-style page to browse and request titles — Jellyseerr passes each approved request straight to Radarr and Sonarr, hands-free.6 min read→
- The Self-Healing Arr Stack: Why My Watchlist Silently Stopped DownloadingA real homelab incident — rotated API keys silently killed my Arr automation for days with zero errors. Here's the debugging story and the four patterns that make media automation immune to it: runtime keys, one consolidated script, an auto-detecting VPN-leak check, and a dead-man's-switch alert.9 min read→
Remember what you built
Document your homelab in a Git-backed knowledge base so you never solve the same problem twice — and so your AI tools can read it too.
- Your Homelab Needs a Second Brain — Here's WhyYou've solved the same homelab problem three times because you forgot how you fixed it. Here's the case for a single source of truth — and the payoff that compounds over years.5 min read→
- Never Lose a Homelab Note Again: A Git + Markdown VaultBuild a homelab knowledge base on Git and Markdown — the substrate that gives you version history, plain-text durability, and one authoritative copy. Includes the SSHFS-over-bashrc mount pattern.7 min read→
- Never Commit a Secret to Your Knowledge BaseNever commit a password to your knowledge base — and if you already have, scrubbing it from the working tree isn't enough. Here's the store-pointers-not-values rule and the Git history purge.6 min read→
- Never Move a Note When a Project EndsWhen a project ends, don't move its notes to an archive folder — you break every link and bookmark pointing at them. Put lifecycle in frontmatter, not the file path.3 min read→
- Turn a Pile of Notes Into a Connected BrainTurn a flat pile of Markdown notes into a connected graph. Model topics as neurons and links as synapses, then generate the maps and region tags automatically from frontmatter.6 min read→
- Share Your Vault Across Machines Without Split-BrainYour laptop, your cluster, and your agents all need the vault — but only one copy can be authoritative. Use a direct mount for editing and a read-only forced-command SSH reader for everyone else.4 min read→
- Why Auto-Syncing Your Notes Repo Will Corrupt ItBlanket auto-sync corrupts a canonical knowledge base. Replace it with a controlled write: lock, validate, commit, refresh projections, verify, unlock — so every change is atomic and every projection stays coherent.5 min read→
- Turn Your Git Vault Into a Searchable Wiki.js SiteDerive a published Wiki.js site from your Git vault as a read-only projection — one that reports the exact commit it was built from and cascades deletes so it never drifts from the source.5 min read→
- Semantic Search for Your Notes, Running LocallyGive your knowledge vault semantic search with a local embeddings index — built on Ollama and nomic-embed-text, cached by content hash, and labeled with the commit it was built from so staleness is always visible.5 min read→
- Make Your AI Agents Read the Docs First, Every TimeGive your AI agents a revision-labeled cold start against your knowledge vault — verify the canonical commit, load only the pages the task needs, fail closed on mismatch, and persist outcomes through the controlled writer.7 min read→
- Prove Your Homelab Docs Are Actually Up to DateA knowledge base with many derived views is only trustworthy if every view proves it's current. The operations chapter: consumer parity, commit-matching health checks, a backup mirror, and correct failure behavior.4 min read→
- Already Made a Mess of Your Notes? Here's the FixAlready have split-brain repos, a secret in history, and pages moved on a whim? The recovery playbook: quarantine divergent copies, pick one authority, reconcile, and rebuild every projection clean.4 min read→
- 10 Mistakes I Made Building a Homelab Second Brain (And How Each Got Fixed)What went wrong — and why — as I built a canonical Git vault, AI agent skills, write locks, and projection consumers: silent data loss, hanging CLIs, restore gaps, and the one mistake I made twice.13 min read→
- RAG for Your Homelab Wiki: Answers That Cite Their SourceTurn your homelab wiki into a cited Q&A endpoint with dependency-free Node: retrieve-then-generate, every answer naming its source page, stale ones labelled.12 min read→
Go further
Scale to a multi-node cluster, put it into code, run a game server, or build a native control app.
- Forming a Proxmox Cluster: Quorum, Corosync, and Joining Multiple NodesHow to create a Proxmox VE cluster from multiple nodes — what Corosync and quorum actually mean, the exact commands to form and join the cluster, what to verify, and how to avoid the split-brain scenarios that corrupt data.10 min read→
- Building a 4-Node Proxmox Cluster on HP EliteDesk Mini PCsHow to assemble a production-grade Proxmox VE 9 cluster from four HP EliteDesk 705 G4 mini PCs — hardware selection, quorum strategy, firewall, and the gotchas that cost a Saturday.7 min read→
- Turn a Hand-Built Proxmox Cluster Into Code Without Breaking ItIaC guides assume an empty account. Here's the import-first approach for a Proxmox homelab already running things you cannot afford to lose.10 min read→
- Import a Live Proxmox Cluster Into OpenTofu With Zero ChangesBring running Proxmox containers under OpenTofu without restarting one: import blocks, the generated-config cleanup, and a clean plan that becomes your drift detector.10 min read→
- Ansible for a Cluster You Built by Hand: Capture, Then AssertBring hand-configured Proxmox nodes under Ansible without changing them — capture live config into roles and make check mode your acceptance test.10 min read→
- A Proxmox Container Born, Configured, and Destroyed From CodeProve your homelab's infrastructure code with a scratch container — OpenTofu creates it, Ansible configures it, a destroy removes it, production untouched.10 min read→
- Rebuild Your Homelab From Zero: What Survives a Total LossA Proxmox disaster-recovery walkthrough — what survives losing every node, the restore order that unblocks itself, and two commands that prove the rebuild.11 min read→
- Fabric Minecraft Server in a Proxmox LXC Container: Mods + JVM TuningRun a Fabric 1.20.1 Minecraft server in an unprivileged Proxmox LXC container with performance mods (Lithium, Starlight, Carpet), JVM garbage collection tuning, and systemd service management.7 min read→
- Building a Native Proxmox Dashboard in Flutter: Linux Desktop + iOSHow I built MyOfficeLab (since renamed HomeLab) — a Flutter app with native Proxmox API integration, live CT metrics, Riverpod 3 state management, CEF webviews, and a dual-mode brass design system — targeting both Linux desktop and iOS from one codebase.8 min read→
END OF MANUAL
Rack's full. Now it evolves.
New field notes ship as the lab grows — and the copy-paste scripts for everything above live in the playbooks.