Home Assistant OS

Home Assistant OS is the appliance-style operating system for Home Assistant, an open-source home automation platform. In my homelab it runs as a virtual machine on Proxmox.

About this page. The virtual machine settings were read from the running system. Addresses, MAC addresses, and USB device identifiers are left out on purpose.

Type
Virtual machine on Proxmox VE
Software
Home Assistant OS, installed from the 13.1 generic x86-64 image
VM ID
102
Virtual CPUs
2, on one socket
Memory
4 GiB
Disk
32 GiB on local-lvm, plus a 4 MiB EFI disk
Firmware
UEFI (OVMF) on the q35 machine type, with Secure Boot keys not enrolled
Network
One VirtIO interface on vmbr0, with the Proxmox firewall enabled
USB
One host USB device passed through
Start at boot
Yes
VM setup

Creating the virtual machine in Proxmox.

Home Assistant OS is an appliance-style system that needs UEFI firmware, so the VM is built a little differently from a normal Linux guest.

  1. Upload the installer. Download the Home Assistant OS generic x86-64 image from the Home Assistant website and upload it under local > ISO Images.
  2. Start the wizard. Click Create VM, give it ID 102 and the name ha, and tick Start at boot. Select the image and set the guest type to Linux.
  3. System. Set the machine type to q35 and the BIOS to OVMF (UEFI). Add an EFI disk on local-lvm and leave Pre-Enroll keys unticked, because Home Assistant OS does not boot with Secure Boot keys enrolled. Set the SCSI controller to VirtIO SCSI single.
  4. Disk. A 32 GiB disk on local-lvm with Discard and IO thread ticked.
  5. CPU and memory. One socket with 2 cores of type x86-64-v2-AES, and 4096 MiB of memory.
  6. Network. One VirtIO network card on vmbr0 with Firewall ticked.
Installation

Installing Home Assistant OS.

  1. Boot the installer. Start the VM and open its console. It boots from the image and offers to install Home Assistant OS to the disk. Follow the prompts and choose the 32 GiB virtual disk.
  2. Detach the image. When the install finishes, open Hardware > CD/DVD Drive, remove the media, and restart the VM so that it boots from its disk.
  3. Give it a fixed address. Create a static mapping on the firewall for the VM (OPNsense Guide 1) so that its address never changes.
  4. Onboard. After a few minutes, open the VM’s address on port 8123 in a browser, create the owner account, and set your home’s name and location.

Notes

  • The Proxmox firewall is enabled on this VM’s network card but has no rules yet, and the default input policy is to accept, so it is ready for rules without restricting anything today.
  • Home Assistant OS manages its own updates from inside Home Assistant, so the VM needs no package upgrades from the host.
Behind the reverse proxy

Serving Home Assistant through Caddy.

To reach Home Assistant through a trusted HTTPS hostname, add a Caddy domain and handler that point at the VM’s reserved address and port 8123 (OPNsense Guide 4). Home Assistant then rejects the proxied requests with a 400 Bad Request until it is told to trust the proxy.

  1. Install an editor add-on such as File editor, or use the Studio Code Server add-on, and open configuration.yaml.
  2. Add an http section that trusts the firewall’s LAN address (an example address is shown):
    http:
      use_x_forwarded_for: true
      trusted_proxies:
        - 192.168.10.1
  3. Check the configuration under Developer tools > YAML and restart Home Assistant.
USB passthrough

Giving Home Assistant a physical USB device.

One USB device on the mini PC is passed through to this VM so that Home Assistant can talk to the hardware directly.

  1. Open the VM’s Hardware > Add > USB Device.
  2. Choose Use USB Port and pick the socket the device is plugged into. This setup uses the port form, so the device survives being unplugged and plugged back in, provided it returns to the same socket.
  3. Restart the VM, then confirm in Home Assistant under Settings > System > Hardware that the device appears.
Typical load

How hard it works.

MeasureAverageHighest reading
Processor2.0% of 2 vCPUs2.7%
Memory3.23 GiB of 4 GiB (81%)3.74 GiB
Networkabout 12 KiB/s in and 3 KiB/s out

Proxmox reports these figures from the host’s point of view because the QEMU guest agent is not installed, so memory includes the guest’s cache and should be read as an upper bound. Each reading is an average over roughly three hours, so short spikes do not show. They were taken over the eight days to 19 September 2026.

  • Processor. Very light. The two virtual CPUs are ample for what it does.
  • Memory. Most of the 4 GiB is in use, though some of that is cache. It has room for now, but adding integrations and add-ons will raise it.
  • Guest agent. Installing the QEMU guest agent in the guest and turning on QEMU Guest Agent under the VM’s Options gives Proxmox accurate memory figures, clean shutdowns, and consistent snapshots. Home Assistant OS includes the agent, so turning on the Proxmox option is typically all that is needed.
Related pages

The rest of the lab.

  1. ProxmoxThe hypervisor that hosts this virtual machine.
  2. OPNsenseAn open-source firewall and routing platform.
  3. Docker HostA virtual machine for running containers.