Skip to content

Home Assistant OS on Proxmox

Advanced 30 min Free

Proxmox is a fantastic platform for running Home Assistant OS. You get full VM isolation, snapshots, backups, and the option to run other services on the same hardware.

Proxmox + Home Assistant architecture

FeatureProxmox VMRaspberry PiDocker
Snapshots✅ One click❌ No❌ No
Live backup✅ Yes⚠️ Manual⚠️ Manual
Hardware passthrough✅ USB, PCIe✅ Direct⚠️ Limited
Resource scaling✅ Easy❌ Fixed hardware✅ Yes
Other VMs/containers✅ Unlimited❌ No✅ Yes
Add-ons support✅ Full✅ Full❌ Separate
  • ✅ Proxmox VE 8.x or newer installed
  • ✅ At least 2 CPU cores available
  • ✅ At least 4 GB RAM available
  • ✅ At least 32 GB storage (SSD recommended)
  • ✅ Access to the Proxmox shell (SSH or web console)
Section titled “🚀 Method 1: Community Helper Script (Recommended)”

The easiest method uses the official community script from community-scripts.github.io/ProxmoxVE.

  1. Log in to the Proxmox shell

    SSH to your Proxmox server or use Shell in the web interface:

    Terminal window
    ssh root@YOUR-PROXMOX-IP
  2. Run the installation script

    Terminal window
    bash -c "$(wget -qLO - https://github.com/community-scripts/ProxmoxVE/raw/main/vm/haos-vm.sh)"
  3. Follow the installation wizard

    The script will ask about:

    • VM ID: Pick an unused number (e.g. 100)
    • Machine Type: Choose q35 (modern, better performance)
    • BIOS: Choose OVMF (UEFI) - required for HAOS
    • Disk size: Minimum 32GB, recommended 64GB+
    • CPU cores: Minimum 2, recommended 4
    • RAM: Minimum 4096MB, recommended 4096-8192MB
    • Bridge: Your network bridge (typically vmbr0)
    • MAC address: Accept the auto-generated one
    • VLAN: Leave empty unless you use VLANs
    • Start after creation: Yes
  4. Wait for the installation

    The script downloads the HAOS image and creates the VM. This takes 2-5 minutes.

  5. Find the IP address

    Once the VM has started, find its IP via:

    Terminal window
    # In the Proxmox shell
    qm guest cmd VMID network-get-interfaces

    Or check your router’s DHCP list.

If you prefer full control, you can install manually.

  1. Find the latest version

    Go to Home Assistant OS releases and find the latest qcow2 file for KVM/Proxmox.

  2. Download to Proxmox

    Terminal window
    # SSH to Proxmox
    cd /var/lib/vz/template/iso/
    # Download latest HAOS (replace VERSION with the current one)
    wget https://github.com/home-assistant/operating-system/releases/download/VERSION/haos_ova-VERSION.qcow2.xz
    # Extract
    xz -d haos_ova-VERSION.qcow2.xz
  1. Create a VM without a disk

    Terminal window
    # Replace VMID with your desired ID (e.g. 100)
    qm create VMID \
    --name haos \
    --memory 4096 \
    --cores 2 \
    --cpu host \
    --bios ovmf \
    --machine q35 \
    --net0 virtio,bridge=vmbr0 \
    --ostype l26 \
    --agent 1 \
    --onboot 1
  2. Add an EFI disk

    Terminal window
    qm set VMID --efidisk0 local-lvm:1,efitype=4m
  3. Import the HAOS disk

    Terminal window
    # Import qcow2 into the VM
    qm importdisk VMID /var/lib/vz/template/iso/haos_ova-VERSION.qcow2 local-lvm
    # Attach the disk to the VM
    qm set VMID --scsi0 local-lvm:vm-VMID-disk-1,cache=writethrough,discard=on,ssd=1
    # Set boot order
    qm set VMID --boot order=scsi0
  4. Start the VM

    Terminal window
    qm start VMID
SettingValueExplanation
Machineq35Modern chipset, better USB/PCIe
BIOSOVMF (UEFI)Required for HAOS
CPU TypehostFull CPU support
CPU Cores2-42 minimum, 4 recommended
RAM4096-8192 MB4 GB minimum
SCSI ControllerVirtIO SCSIBest disk performance
Disk CacheWrite throughSafe, good performance
NetworkVirtIOBest network performance
QEMU AgentEnabledSnapshots, IP display
/etc/pve/qemu-server/VMID.conf
agent: 1
bios: ovmf
boot: order=scsi0
cores: 4
cpu: host
efidisk0: local-lvm:vm-VMID-disk-0,efitype=4m,size=4M
machine: q35
memory: 4096
name: haos
net0: virtio=XX:XX:XX:XX:XX:XX,bridge=vmbr0
onboot: 1
ostype: l26
scsi0: local-lvm:vm-VMID-disk-1,cache=writethrough,discard=on,size=32G,ssd=1
scsihw: virtio-scsi-pci

To use USB devices (Zigbee coordinator, Z-Wave stick) in Home Assistant:

  1. Find the USB device ID

    Terminal window
    # On the Proxmox host
    lsusb

    Example output:

    Bus 002 Device 003: ID 1a86:55d4 QinHeng Electronics SONOFF Zigbee 3.0 USB Dongle Plus V2
  2. Add it to the VM

    Terminal window
    # Format: vendor:product (from the lsusb output)
    qm set VMID --usb0 host=1a86:55d4

    Or via the web interface:

    • Select the VM → HardwareAddUSB Device
    • Select Use USB Vendor/Device ID
    • Pick your device from the list
  3. Restart the VM

    Terminal window
    qm reboot VMID

If you run out of space:

  1. Expand in Proxmox

    Via the CLI:

    Terminal window
    qm resize VMID scsi0 +50G

    Or via the web interface:

    • VM → Hardware → Select the disk → Resize
  2. Expand in Home Assistant

    HAOS expands automatically on the next reboot, or:

    • SettingsSystemStorageResize

Perfect before updates or experiments:

Terminal window
# Create snapshot
qm snapshot VMID pre-upgrade --vmstate 1
# Restore snapshot
qm rollback VMID pre-upgrade
# Delete snapshot
qm delsnapshot VMID pre-upgrade

For disaster recovery:

Terminal window
# Manual backup
vzdump VMID --compress zstd --storage local --mode snapshot
# List backups
ls /var/lib/vz/dump/

Or schedule automatic backups via DatacenterBackup in the web interface.

  1. Open Home Assistant

    Go to http://HAOS-IP:8123 in your browser.

  2. Create a user

    • Choose a username and a strong password
    • Store the password in a password manager!
  3. Configure your home

    • Name your home
    • Set your location (for sunrise/sunset)
    • Pick your time zone
  4. Update everything

    Go to SettingsSystemUpdates and install all available updates.

Home Assistant is updated through the web interface:

  1. SettingsSystemUpdates
  2. Click Update on the available updates
  3. Wait for the restart

Comments