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
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.
- Upload the installer. Download the Home Assistant OS generic x86-64 image from the Home Assistant website and upload it under
local > ISO Images. - Start the wizard. Click Create VM, give it ID
102and the nameha, and tick Start at boot. Select the image and set the guest type to Linux. - System. Set the machine type to
q35and the BIOS toOVMF (UEFI). Add an EFI disk onlocal-lvmand 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. - Disk. A 32 GiB disk on
local-lvmwith Discard and IO thread ticked. - CPU and memory. One socket with 2 cores of type
x86-64-v2-AES, and4096MiB of memory. - Network. One VirtIO network card on
vmbr0with Firewall ticked.
Installing Home Assistant OS.
- 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.
- 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. - Give it a fixed address. Create a static mapping on the firewall for the VM (OPNsense Guide 1) so that its address never changes.
- Onboard. After a few minutes, open the VM’s address on port
8123in 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.
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.
- Install an editor add-on such as File editor, or use the Studio Code Server add-on, and open
configuration.yaml. - Add an
httpsection that trusts the firewall’s LAN address (an example address is shown):http: use_x_forwarded_for: true trusted_proxies: - 192.168.10.1 - Check the configuration under
Developer tools > YAMLand restart Home Assistant.
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.
- Open the VM’s
Hardware > Add > USB Device. - 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.
- Restart the VM, then confirm in Home Assistant under
Settings > System > Hardwarethat the device appears.
How hard it works.
| Measure | Average | Highest reading |
|---|---|---|
| Processor | 2.0% of 2 vCPUs | 2.7% |
| Memory | 3.23 GiB of 4 GiB (81%) | 3.74 GiB |
| Network | about 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
Optionsgives 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.
The rest of the lab.
- ProxmoxThe hypervisor that hosts this virtual machine.
- OPNsenseAn open-source firewall and routing platform.
- Docker HostA virtual machine for running containers.