Homelab con Proxmox VE: guida completa dalla A alla Z

2026-03-01T09:00:00.000Z

Perché Proxmox VE

Proxmox Virtual Environment è un hypervisor open-source basato su Debian che combina KVM (per VM complete) e LXC (per container leggeri). È la scelta ideale per un homelab perché:

  • Gratuito (con repository community)
  • Web UI professionale — gestisci tutto da browser
  • KVM + LXC — VM complete e container nella stessa piattaforma
  • Cluster nativo — aggiungi nodi senza reinstallare
  • API REST completa — automazione con Ansible, Terraform

Il mio setup

┌─────────────────────────────────────────────────────┐
│  Proxmox Node — Ryzen 7 5700G / 32GB RAM           │
│                                                      │
│  ┌──────────────┐  ┌──────────────┐  ┌───────────┐ │
│  │  VM: Windows │  │ LXC: n8n     │  │ LXC: NAS  │ │
│  │  Server 2022 │  │ LXC: Nginx   │  │ LXC: DNS  │ │
│  │  (AD/DNS)    │  │ LXC: Matomo  │  │           │ │
│  └──────────────┘  └──────────────┘  └───────────┘ │
│                                                      │
│  Storage: NVMe 500GB (OS) + SSD 2TB (VM) + NAS     │
│  Network: MikroTik RB5009 (VLAN 10/20/30/99)       │
│  GPU: NVIDIA A10 24GB (passthrough AI workloads)    │
└─────────────────────────────────────────────────────┘

Architettura Homelab con Proxmox VE Il mio setup homelab su Proxmox VE: VM Windows Server per AD, container LXC per i servizi, VM dedicata con GPU NVIDIA A10 per i workload AI.

Installazione

1. Download e boot da USB

# Scarica ISO da https://www.proxmox.com/downloads
# Crea USB bootable
dd if=proxmox-ve_8.x-1.iso of=/dev/sdb bs=1M status=progress

2. Post-installazione: repo community

# Rimuovi repo enterprise (richiede subscription)
rm /etc/apt/sources.list.d/pve-enterprise.list

# Aggiungi repo community gratuito
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" \
  > /etc/apt/sources.list.d/pve-community.list

apt update && apt full-upgrade -y

3. Rimuovi il banner "no subscription"

# Patch UI (per evitare il popup fastidioso)
sed -i.bak "s/NotFound/Active/g" \
  /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
systemctl restart pveproxy

Configurazione storage

ZFS (consigliato per SSD/NVMe)

# Crea pool ZFS mirror (RAID1)
zpool create -f rpool mirror /dev/sda /dev/sdb

# Pool per VM
zpool create vm-storage /dev/nvme0n1

# Aggiungi a Proxmox
pvesm add zfspool vm-local-zfs --pool rpool --sparse 1

Directory storage per backup

mkdir -p /mnt/backup
pvesm add dir backup --path /mnt/backup --content backup

Networking con VLAN

# /etc/network/interfaces
auto lo
iface lo inet loopback

auto enp3s0
iface enp3s0 inet manual

# Bridge principale
auto vmbr0
iface vmbr0 inet static
    address 192.168.1.10/24
    gateway 192.168.1.1
    bridge-ports enp3s0
    bridge-stp off
    bridge-fd 0
    bridge-vlan-aware yes
    bridge-vids 2-4094

# VLAN 10 - Server
auto vmbr0.10
iface vmbr0.10 inet static
    address 192.168.10.1/24

# VLAN 20 - IoT
auto vmbr0.20
iface vmbr0.20 inet manual

Creare un LXC container

# Scarica template Debian 12
pveam update
pveam download local debian-12-standard_12.7-1_amd64.tar.zst

# Crea LXC con 2 core, 2GB RAM, 20GB storage
pct create 100 local:vztmpl/debian-12-standard_12.7-1_amd64.tar.zst \
  --hostname web-server \
  --cores 2 \
  --memory 2048 \
  --swap 512 \
  --rootfs local-lvm:20 \
  --net0 name=eth0,bridge=vmbr0,ip=192.168.1.100/24,gw=192.168.1.1 \
  --unprivileged 1 \
  --start 1

GPU Passthrough (NVIDIA)

Per passare una GPU a una VM (es. per AI/Ollama):

# 1. Abilita IOMMU nel grub
nano /etc/default/grub
# Aggiungi: GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"
update-grub

# 2. Carica moduli vfio
echo "vfio" >> /etc/modules
echo "vfio_iommu_type1" >> /etc/modules
echo "vfio_pci" >> /etc/modules
update-initramfs -u -k all

# 3. Trova ID GPU
lspci -nn | grep NVIDIA
# Output: 01:00.0 VGA: NVIDIA A10 [10de:2236]

# 4. Blacklist driver host
echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
echo "blacklist nvidia" >> /etc/modprobe.d/blacklist.conf

# 5. Aggiungi GPU alla VM tramite GUI Proxmox
# Hardware → Add → PCI Device → seleziona GPU

Backup automatici con Proxmox Backup Server

# /etc/pve/jobs.cfg
vzdump job
    enabled: 1
    schedule: sun 2:00
    storage: backup-nas
    mode: snapshot
    compress: zstd
    mailnotification: always
    mailto: [email protected]
    vmid: 100,101,102,200
    maxfiles: 3

Script utili

Monitor risorse

#!/bin/bash
# /usr/local/bin/pve-monitor.sh
echo "=== Proxmox Status ==="
echo "CPU: $(top -bn1 | grep 'Cpu(s)' | awk '{print $2}')%"
echo "RAM: $(free -h | awk '/Mem/{print $3"/"$2}')"
echo "Storage:"
pvesm status
echo "VMs:"
qm list
echo "LXC:"
pct list

Snapshot automatici pre-update

#!/bin/bash
# Esegui prima di aggiornare una VM
VMID=$1
DATE=$(date +%Y%m%d-%H%M)
qm snapshot $VMID "pre-update-$DATE" --vmstate 0
echo "Snapshot creato: pre-update-$DATE"

Risorse