Need help setting up a Proxmox homelab from scratch

I’m trying to build my first homelab using Proxmox for virtualization, but I’m overwhelmed by hardware choices, storage layout, and basic networking. I’ve watched a few tutorials, but they all assume I already know what I’m doing. Can someone walk me through a simple, reliable setup for a beginner-friendly Proxmox homelab, including recommended hardware, network design, and best practices for backups and security?

I’ll keep this to the basics so you get a working homelab, then you iterate.

  1. Hardware

Goal: low noise, low power, reliable.

CPU
• Intel with Quick Sync if you want Plex/Emby hardware transcode. Example: i5-6500, i5-8500, i5-10500, etc.
• Old Xeon works fine too, but they burn more power.

RAM
• 32 GB is a good start.
• 64 GB if you plan several VMs and some LXC containers.
• ECC is nice, not required for a home lab.

Storage
• One small SSD (120–256 GB) for Proxmox OS only. Keep it separate.
• One or more SSDs or HDDs for VMs and data.
• If you want redundancy, do ZFS mirror (2 disks) or RAIDZ1 (3+ disks). For a first build, mirror is simpler.

Example layout:
• Disk 1: 240 GB SATA SSD, Proxmox only.
• Disk 2–3: 2x 1 TB SSD or HDD in ZFS mirror for VM storage and data.
• Optional: separate bigger HDD for media.

Network
• Single 1 Gbit NIC is fine for start.
• If your router supports VLANs and you want to isolate lab from home devices, plan one lab VLAN later. For now, keep it flat.

  1. Install Proxmox

• Download Proxmox ISO.
• Burn to USB with Rufus or BalenaEtcher.
• Boot server, install to the Proxmox OS disk.
• During install: use ext4 or ZFS for the OS disk. For beginners, ext4 is fine. ZFS mirror only makes sense if you use 2 disks for the OS.

After install:
• Access Web UI from browser: https://server-ip:8006
• Login with root and the password you set.

  1. Storage setup in Proxmox

• In the web UI, go to Datacenter → Storage.
• Add your VM/data disks as ZFS pool or LVM-Thin.

Simplest safe setup:
• Create ZFS mirror pool “tank” with your 2 data disks during install or later via shell:
zpool create tank mirror /dev/sdX /dev/sdY
• In Web UI, add a ZFS storage, point it to “tank”, tick “content: Disk image, Container, Snippets, ISO”.

Or if one data disk only:
• Use LVM-Thin. In Proxmox installer, choose LVM, then use that for VM storage.

  1. Network basics

Your first goal: one Linux VM, one Windows VM, both get IPs from your home router.

Default config:
• Proxmox creates vmbr0 bridge bound to your physical NIC.
• Any VM attached to vmbr0 gets an IP from your router via DHCP.
• So do not overthink this part first.

Steps:
• Go to Datacenter → Node → System → Network.
• Ensure vmbr0 has your IP. Your physical NIC should be “ensX” or similar, attached as a port to vmbr0. Default installer does this.

  1. First VMs

Linux VM (Ubuntu Server example):
• Upload ISO: Datacenter → local → ISO Images → Upload.
• Create VM → pick ISO, 2 vCPU, 2–4 GB RAM, 20–40 GB disk on your data storage, not on the Proxmox OS disk.
• Start VM, install Ubuntu.
• After install, log in, run apt update and install qemu-guest-agent for proper shutdown stats and IP reporting.

Windows VM:
• Upload Windows ISO and VirtIO ISO.
• New VM, use SCSI disk, VirtIO SCSI controller, VirtIO network. During Windows install, load storage driver from VirtIO ISO.
• Install VirtIO guest tools after Windows boots.

  1. Backups

• Add a backup target, for example a separate HDD or a NAS share via NFS or SMB.
• Datacenter → Storage → Add → NFS or CIFS.
• Then Datacenter → Backups → create a schedule, daily or weekly.

  1. What to run first

Good starter stack:
• 1x Ubuntu VM or LXC with Docker/Podman for containers.
• Run things like Portainer, Pi-hole or AdGuard, maybe a small media server.
• 1x Windows VM if you need a “real” desktop or for testing.

  1. Basic resource planning

Example small box:
• CPU: 4 core / 8 thread
• RAM: 32 GB
• You can comfortably run:

  • Proxmox host
  • 1 Linux VM (4 GB)
  • 1 Windows VM (8 GB)
  • 2–3 small LXCs (1–2 GB each)
    and still have some headroom.
  1. Avoid common mistakes

• Do not put everything on one single disk with ZFS and expect miracles. Keep OS disk separate when possible.
• Do not overcommit RAM heavily at first. Linux will use cache but you still hit swap if you push to 90–95 percent usage.
• Do not create a complicated VLAN layout on day one. First get basics working, then add VLANs.

If you share what hardware you own or plan to buy, people can sanity check it and suggest a specific layout like “disk 1 for OS, disks X and Y in ZFS mirror, vmbr0 set this way, etc”.

You’re actually in a good spot: “overwhelmed but aware” is exactly where most of us started.

I’ll riff off what @viaggiatoresolare wrote and take a slightly different approach, especially on hardware and storage.


1. Hardware: don’t overbuild

Everyone loves to tell you to buy some fancy Xeon or a whole rack. Honestly:

  • Start with whatever half decent box you can get cheap:
    • 6th–10th gen Intel i5/i7 or Ryzen 3/5 is plenty.
    • 16 GB RAM is usable, 32 GB is nice, not mandatory day 1.
  • Small disagreement with the “32 GB minimum” vibe: for learning, you can run:
    • Proxmox host
    • 1 Linux VM
    • 1–2 LXCs
      all on 16 GB if you’re sensible.

If you end up liking this, then spend money. The first build is for learning, not perfection.


2. Storage: keep it stupid simple

@viaggiatoresolare is right that separating OS and data is ideal, but if you only have one disk, you’re not doomed.

Options:

  1. Best simple layout:
  • Disk 1: 120–240 GB SSD → Proxmox OS
  • Disk 2+: bigger SSD/HDD → VMs & data (LVM-Thin or ZFS)
  1. If you literally only have 1 SSD:
  • Install Proxmox on it using LVM-Thin
  • Create:
    • One storage for VMs
    • One directory for ISOs / backups
  • Just accept that if the disk dies, it’s all gone. For a first lab, that’s fine.
  1. ZFS or not?
  • ZFS mirror is nice, but:
    • Eats RAM
    • Adds complexity
  • If you’re learning, it’s perfectly valid to skip ZFS at first, use LVM-Thin, then rebuild later once you know what you actually want.

3. Networking: do almost nothing

Everyone online loves VLAN charts and diagrams. Ignore them for now.

  • Use the default vmbr0 created by the installer.
  • Plug server into your normal router.
  • Every VM’s NIC set to vmbr0 & DHCP.
  • Let your router hand out IPs like it does for laptops and phones.

Once you can:

  • Ping your VMs
  • SSH into Linux VM
  • RDP or use SPICE on Windows VM

then you can start thinking about “lab VLANs” or firewall rules.


4. First VMs: focus on learning, not maxing the box

I’d actually suggest:

  1. One Ubuntu Server VM:

    • 2 vCPU, 2–4 GB RAM, 20–40 GB disk
    • Install:
      • qemu-guest-agent
      • docker or podman
    • Use it to run:
      • Portainer (managing containers through a web UI)
      • Something useful at home like a small web app or a test Nextcloud
  2. Skip Windows at first unless you really need it.

    • It’s heavier
    • Needs extra drivers
    • Eats RAM like crazy

You can always add Windows later once you’re comfortable.


5. Backups: don’t overcomplicate, but don’t ignore

You do not need an enterprise NAS right now.

Minimal viable backup setup:

  • Old USB HDD
  • Plug into Proxmox
  • Add as “Directory” storage
  • Set a backup job for:
    • Daily or a couple times a week
    • Only the VMs you care about

If the whole box dies you still lose your host, but at least your VM configs and disks are saved.


6. Reasonable “Day 1” plan

If I were you, starting from absolute scratch, I’d do:

  1. Get a small used desktop:
    • 6th gen+ Intel, 16–32 GB RAM, 250 GB SSD
  2. Install Proxmox on that single SSD with:
    • LVM-Thin
  3. Use default vmbr0 networking, no VLANs.
  4. Create:
    • 1 Ubuntu VM with Docker
    • Maybe 1 LXC for something simple like Pi-hole later
  5. When it all starts to feel “too tight”:
    • Add another SSD/HDD for VM storage
    • Or rebuild with ZFS once you know what you’re doing and what you want to run.

If you list what hardware you already own (model of PC, RAM, drives), folks here can give you a very specific “do X/Y/Z” layout instead of every tutorial talking like you already have a rack and 10 disks.

Skip all the theory for a second and think in “phases.” That keeps the overwhelm down and avoids rebuilding the whole thing every weekend.


Phase 1: Treat Proxmox like a slightly fancy desktop

Hardware:
Use what you have, even if it is a single SSD and 16 GB RAM. Where I slightly disagree with both @sternenwanderer and @viaggiatoresolare: you do not need to decide ZFS vs LVM as some permanent religious choice on day one. For a first run:

  • Single SSD → Proxmox on LVM-Thin.
  • Create 1 storage for VM disks, 1 directory for ISOs.
  • Accept that it is “lab data” and you may wipe it later.

Goal here is not resilience. It is muscle memory: clicking around the UI, making and destroying VMs, trying backups, breaking things.

Networking:
Use the default vmbr0, no VLANs, no extra NICs, no pfSense in Proxmox-as-your-main-router. That “router in Proxmox” path is how people accidentally take out the whole house internet when they misconfigure a VM.

Workload:
In this phase, only one main VM:

  • Ubuntu Server VM
  • 2 vCPU, 2–4 GB RAM
  • Install qemu-guest-agent
  • Use it as a “scratch box” to practice: SSH, Docker, basic Linux.

Stop there. No Windows yet, no TrueNAS, nothing clever.


Phase 2: Learn the “shape” of your future homelab

Once you know where everything in the Proxmox UI lives, then decide what this homelab is actually for. You do not need an answer like “learning everything.” That is how you end up building a noisy mini-datacenter for no reason.

Pick one primary role:

  • “I want a home services box” (Pi-hole, media, Nextcloud, Home Assistant)
  • “I want a sandbox” (test Linux distros, Ansible, maybe Kubernetes later)
  • “I want a couple of always-on services and some throwaway VMs”

This decision changes your layout:

  • If it is mostly data (media, photos, backups), storage redundancy matters more.
  • If it is mostly ephemeral labs, you can be more relaxed about a single good SSD and simple external backups.

This is where you start thinking about a “proper” storage layout and maybe extra disks.


Phase 3: Storage done just serious enough

Instead of repeating what the others wrote, here is a slightly different angle.

If you add 2 more data disks later:

  • Keep your original OS SSD as-is with Proxmox.
  • Use the two new disks for:
    • ZFS mirror if you care about self-healing and snapshots.
    • Or MD RAID1 with ext4 if you want simple Linux RAID without ZFS RAM overhead.

You do not have to tie your life to ZFS. A lot of people use ext4 on a RAID1 mirror just fine. More boring, less magic, fewer tuning knobs.

Rough idea:

  • Disk 0: Proxmox OS (existing single SSD)
  • Disk 1+2: Mirror for “vm-storage”
  • Optional: big spinning HDD for cold backups only

Snapshot strategy:

  • Use Proxmox VM snapshots for “I might break this update” protection.
  • Use backups to a separate disk for “the mirror died or ZFS pool nuked itself” scenarios.

Phase 4: Networking without a spreadsheet

VLANs and multiple bridges are cool, but most homelabs absolutely do not need five subnets. Try:

  • Keep vmbr0 as your general-purpose LAN.
  • If you really want isolation later:
    • Add one more bridge, vmbr1, attach a VLAN subinterface or a second NIC.
    • Put “untrusted” VMs (test malware, random images) there and firewall between vmbr1 and your main LAN on your router or on a small firewall VM.

Where I strongly agree with both other posts: do not design a giant network before you have even spun up a single VM. Build it when you actually hit a problem like “my lab DNS is messing with my main network.”


Phase 5: What to actually run

Instead of piling on services, use your first VMs to learn concepts you will reuse forever:

  • One “services” VM or LXC: Docker with Portainer
  • One “infrastructure” service:
    • Pi-hole / AdGuard
    • Or a Unifi / Omada controller if you have that gear
  • One “lab” VM:
    • A distro you are not used to, just to break and rebuild

Only once that feels boring should you add:

  • A Windows VM
  • A database VM
  • A monitoring stack (Prometheus, Grafana)

Overcommitting early leads to troubleshooting RAM starvation instead of learning Proxmox itself.


About product / ecosystem choice

Since you basically picked “Proxmox homelab” as your product, its pros and cons in this context:

Pros

  • Web UI is clear enough that you can experiment without reading the entire manual.
  • Mix of VMs and LXCs lets you learn both “heavy” and “lightweight” virtualization.
  • Built-in backup and snapshot tooling means you can be aggressive when experimenting.
  • Friendly to older hardware, so you do not need to jump to enterprise gear.

Cons

  • ZFS integration is powerful but tempts people to overcomplicate storage from day one.
  • The “all eggs in one node” reality: if you only have one box, upgrading or rebooting that node still drops everything.
  • LXCs are great but can be confusing with permissions and nesting if you are new to Linux.

Alternatives like full hypervisor stacks from VMware or pure container setups on bare metal have their own tradeoffs, but for what you described, Proxmox is balanced.


How this differs from the other answers you saw

  • @sternenwanderer pushes a clean, methodical build with specific hardware targets and a more “proper” layout. Great if you already know you are sticking with this long term.
  • @viaggiatoresolare leans harder into not overbuilding and staying flexible, which is closer to what I am suggesting.

My twist is to structure this as phases: start with a throwaway, one-disk Proxmox to learn; only then decide on ZFS vs RAID vs “just SSD,” only then think about VLANs, and only then bother with Windows or heavier stacks. That keeps you from chasing “the perfect layout” before you even know how you like to use the platform.

If you drop the exact hardware model, disk sizes and how noisy / power hungry you are willing to go, it is possible to sketch a very concrete “do this with these disks and this bridge layout” plan on top of those phases.