I moved my Home Assistant onto Proxmox and I want to explain the trade-offs I ran through. The choice comes down to LXC or a full VM. Both run the same smarthome software, but they behave differently under Proxmox virtualisation. I’ll show how I chose, how I set the VM up, and how I tested the result. Expect practical notes and concrete things to try in your configuration.
LXC is attractive because it is lightweight. Containers launch fast and use fewer resources. For simple Home Assistant Container installs it can be a neat fit. The catch is feature compatibility. The Supervisor and official add-ons expect a full Home Assistant Operating System environment. Running those inside an LXC often requires a privileged container, fiddly kernel tweaks, and may break with updates. A lot of community discussion has led to the Home Assistant project marking Supervised installs as deprecated, so long-term support for experimental container setups is risky (Home Assistant installation methods, deprecation notice). Use LXC if you need minimal overhead and you accept potential limitations with USB passthrough, kernel modules, and add-on compatibility.
A VM gives you the full Home Assistant OS experience. It isolates the stack, so add-ons, supervisor, and some integrations work exactly as upstream intends. Hardware passthrough is easier. If you use a Zigbee or Z-Wave USB stick, assign it to the VM and the OS will see it like a physical machine. VMs add some resource overhead, and backups take more space, but they reduce hassle. For me, having reliable automation and simple add-on management was worth the small cost in CPU and RAM. Proxmox handles snapshots and live backups well, so a VM makes testing upgrades and rollbacks straightforward.
Practical configuration tips I used on Proxmox. Use virtio drivers for disk and network where possible. Set a fixed MAC address and reserve the VM’s IP in your router or DHCP server to avoid IP drift for integrations. For USB dongles add the host device as passthrough to the VM, not as a serial proxy, then check dmesg in the VM to confirm the device appears. If you try LXC and need Supervisor, use a clean, minimal Debian host and follow community guidance, but remember the supervised route has less official support now. For disk layout, place the VM disk on fast storage for a responsive UI and faster database operations. I also keep my Home Assistant configuration in git, outside the VM image, so I can inspect diffs and roll back configuration mistakes without restoring a full snapshot.
Testing and validation are quick but vital. Before you switch automations live, run them in a test mode or disable triggers. Confirm integrations come online in the UI and check the logs for errors. Take a Proxmox snapshot and an exported backup of Home Assistant before any major update. Perform a restore test on a spare VM or a local machine so you know the process works end to end. Monitor CPU, memory and disk I/O for a week after migrating. If automations stutter, increase resource allocation or move heavy integrations to a separate VM.
Concrete takeaways. Pick a VM for complete feature parity with Home Assistant OS and simple hardware passthrough. Choose LXC only if you need the smallest footprint and you can accept manual fixes for supervisor or add-ons. Use Proxmox snapshots and an external git-tracked configuration to make upgrades safe. Test restores ahead of updates and confirm USB devices inside the VM before switching over automation that depends on them. That approach kept my automations stable and made the platform manageable day to day.