In this guide, I will show you how to install a fresh copy of Proxmox VE 7 and then deploy a new Home Assistant OS virtual machine. If you already have a Proxmox server you can skip to part two where I begin the Home Assistant OS installation step.
Table of Contents
There are two options for installing Home Assistant on Proxmox VE. One would be to use a LXC container and the second would use a virtual machine. Installing Home Assistant OS as a virtual machine is the recommended method because you get access to the add-on store and improved management features.
Why Use Proxmox VE?
Proxmox is a popular open-source server software for virtual machine management. Proxmox is completely free to use and a subscription is only required if you require enterprise-level updates and support.
Popular free alternatives such as VMware ESXi or XCP-NG limit their features unless you pay extra. Proxmox VE will provide you will all the features you would ever need as a home user.
Before attempting to install Proxmox VE I would suggest checking their system requirements page to ensure your hardware is capable of running Proxmox and has enough resources available to deploy VMs. I have successfully used Proxmox on a number of small form factor (SFF) desktop PCs for a number of years with as little as 4GB memory and a 256GB SSD.
Can I run Home Assistant in a VM?
Yes, you can run Home Assistant in a virtual machine (VM) on your computer. In fact, running Home Assistant in a VM is a popular option for many users as it allows for easier management of resources and isolation from the host system.
It’s important to ensure that the virtual machine meets the minimum requirements for running Home Assistant, including adequate CPU, memory, and storage resources. Additionally, you may need to configure the network settings of the virtual machine to ensure that it can access the internet and communicate with other devices on your network.
Home Assistant – Proxmox vs Bare Metal
If your PC or server is pretty powerful and has enough resources I would recommend installing Home Assistant on Proxmox. This will give you the flexibility of adding other VMs to your PC if needed. Proxmox can also back up the VM to a remote file server such as a NAS.
Installing Home Assistant to bare metal will be quicker if you don’t already have a Proxmox server, and it will also be slightly more efficient.
A bare metal installation of Home Assistant allows you to directly attach dongles like Zigbee and Z-Wave directly instead of having to pass through the USB device from Proxmox to the Home Assistant virtual machine which can be difficult for beginners.
Home Assistant – Proxmox vs Docker
When you install Home Assistant on Proxmox you will be installing Home Assistant OS as a virtual machine. When you install a Home Assistant Docker container you will be installing Home Assistant Core only.
Docker has a steeper learning curve compared to Proxmox therefore I would only recommend a Docker container for Home Assistant if you already have a Docker host setup and you don’t need any of the additional features that the Home Assistant operating system offers.
- Proxmox ISO – https://proxmox.com/en/downloads/category/iso-images-pve
- Rufus – https://rufus.ie/
- Home Assistant Proxmox Script – https://github.com/tteck/Proxmox#-select-a-proxmox-helper-
Part 1 – Install Proxmox VE
- Start off by downloading a copy of the Proxmox VE ISO from here https://proxmox.com/en/downloads/category/iso-images-pve. While the ISO is downloading you can move on to the next step.
- Insert an empty USB stick into your computer.
- Download a copy of Rufus from https://rufus.ie/. You will be using this tool to make a bootable USB drive from the Proxmox VE ISO image. When Rufus has downloaded either install it or use the portable version. Once opened select the destination drive (your USB stick) then browse to the Proxmox ISO file and click start. After you click start you will have to click No on the dialog box asking to download a different version of GRUB. In the next dialog box select DD mode. After a couple of minutes, your bootable USB stick should be ready.
- Enable Intel Virtualization Technology – Skip to the next step if already enabled.
- For Intel NUCs press F2 at system startup to access the BIOS. Go to Advanced → Security → Security Features → Enable Intel Virtualization Technology and Intel VT for Directed I/O (VT-d).
- For other manufacturers see the HPE guide, this Dell guide, or this Lenovo guide
- Insert your USB stick into the computer that you will be installing Proxmox on and then power on the machine. During the boot-up phase open the boot menu and select to boot from the USB drive. <ADD SCREENSHOT OF INSTALLATION MENU> <MENTION INSERTING OTHER USB DEVICES>
- Agree to the EULA
- Select target harddisk
- Enter country, time zone, and keyboard layout
- Create a root password and enter your email address
- Choose a hostname and assign a static IP address
- Confirm settings on the summary screen and click install. The complete installation should take no longer than 5 minutes.
Upon first boot your Proxmox will be available to access via the web GUI on http://chosen-ip-address:8006.
Simply login with username root and enter the password you created during installation.
Proxmox is now installed, continue to part 2 where we configure some basic settings and optimize Proxmox to ensure Home Assistant runs smoothly.
Part 2 – Configure and Optimize Proxmox
So, Proxmox is now installed but we are not quite ready to install Home Assistant OS just yet. There are a number of post-installation steps you will want to run to make sure your Proxmox server runs efficiently and is secure.
Every time you log in to Proxmox you will see a nag screen warning you that you do not have a valid subscription.
The subscription is for enterprise support and is not required at all. You can click Ok but it will keep popping up upon each login which can get very annoying.
This message can be suppressed by running a script that also performs other optimization tasks.
The script we are going to use is maintained by eXtremeSHOK and hosted in this GitHub repository.
- Access the Proxmox shell by selecting your PVE server and then clicking on Shell
- Paste the following text into the shell screen and press enter
wget https://raw.githubusercontent.com/extremeshok/xshok-proxmox/master/install-post.sh -c -O install-post.sh && bash install-post.sh && rm install-post.sh
- The script will now run through and start by updating your system with the latest updates, disabling the enterprise repo, and enabling the public one. Once completed reboot your Proxmox server and log in again.
Your Proxmox VE host will now be optimized and is ready for you to proceed to part 3 where we install Home Assistant OS on a new virtual machine.
Part 3 – Install Home Assistant OS on Proxmox
Now that we are ready to install we are going to use a helper script made by tteck to automatically create our Proxmox VM with the correct settings.
The script will automatically download the latest version of the official Home Assistant OS image and create your VM with optimal settings.
- Go back to the Proxmox shell and enter the following command then press enter
bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/haos-vm-v5.sh)"
- Select Yes to create a new virtual machine
- Select Yes to use the default settings
- Wait for the script to download the image and create your VM, once completed check the left window to see your new VM appear (details of the VM are displayed by the script during creation)
You now have a Home Assistant OS virtual machine running on your Proxmox VE server, you could start using it right away but if you need to connect hardware to it, such as a USB Zigbee or Z-Wave adapter then check out the next session where I guide you through how to attach a USB device using USB passthrough.
Proxmox USB passthrough to Home Assistant
USB passthrough allows you to attach USB devices connected to the physical host directly to a specific virtual machine so that the VMs operating system can use the hardware.
There is a high chance that Home Assistant users will need to do this because they utilize technologies such as Zigbee and Z-Wave.
In the guide below I am going to attach an Aeotec Z-Stick Gen5 which will give my new Home Assistant VM the capability of talking to other Z-Wave devices through Home Assistant.
The first step is to insert your USB device into the Proxmox server.
Next, select your Home Assistant OS VM and click on the hardware menu
Click the Add button and choose USB Device.
On the Add USB Device screen choose Use USB Port then click the dropdown box and click on your USB device. Once selected click ok.
It’s now time to connect to your new Home Assistant URL and begin setting up your devices and automation. To find the IP address of your Home Assistant VM simply navigate back to the Summary page then you can see the IP address in the top left window
Note down your IP and then navigate to http://ip-address:8123
In this article, I discussed installing Home Assistant on Proxmox VE, which is an open-source server software for virtual machine management. The recommended method is to install Home Assistant as a virtual machine on Proxmox VE, which provides access to the add-on store and improved management features. I also explained the minimum requirements for running Home Assistant in a virtual machine, as well as the differences between installing it on Proxmox, bare metal, or as a Docker container. The step-by-step instructions on installing Proxmox VE and configuring and optimizing it before installing Home Assistant are a great help to users that are not familiar with Proxmox.