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) │
└─────────────────────────────────────────────────────┘
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
- Documentazione Proxmox
- Forum Proxmox
- Proxmox Helper Scripts — script community per LXC