I recently replaced my Ubuntu server, where I had Home Assistant Supervised installed with Proxmox. Then, I install Home assistant in a virtual machine in Proxmox. So far, it has been working a lot better than when I had the Supervised version installed. In this guide, I’m going to show you how to install Proxmox. We’re going to do a quick overview of the web interface. And lastly, we’re going to create a virtual machine and install Home Assistant.
Table of Contents
So what is Proxmox?
The Proxmox Virtual Environment (PVE) is an open-source platform where you can set up and manage kernel-based virtual machines (KVMs) and Linux containers (LXCs). It comes with a bare-metal installer, and it also includes a web-based interface. Making it easy to create and manage virtual machines and containers from a browser.
What hardware can you use?
To give you an idea, the machine where I installed Proxmox VE is an older build where I have an Intel Core i7 and 16Gb of RAM, so I have some power to set up a few VMs. However, you can install Proxmox on almost any computer as long as it supports virtualization. You’re just gonna be limited on how many VMs you can set up, depending on how powerful your hardware is.
Create a Proxmox VE bootable USB drive
To install Proxmox VE, you need to create a bootable drive, so download the ISO image from the Proxmox website. Then, to burn the image to the USB drive, you can use the program called BalenaEtcher. Open BalenaEtcher and select the Proxmox image. Then select the USB drive if it wasn’t automatically selected. Lastly, click on Flash and give it a minute for the process to finish.
Installation
Connect the bootable USB drive to the computer where you want to install Proxmox and boot it up. When the welcome screen comes up, select Install Proxmox VE, press Enter
, and agree to the license agreement.
If you have several hard drives installed on that machine, select the drive that you want to install Proxmox. Click on Next and then set up your Location and Time Zone. On the next screen, set up a password to login to Proxmox and enter your email address. The email address is used for Proxmox to send alert notifications about backup failures and other events.
Lastly, you need to set up the Network Configuration. So, enter a Hostname, for example, pve.local
or something like proxserver.local
. Then, set up a static IP address, so the Proxmox machine always uses the same IP address from the network. Click on Next and give it a minute for the installation to complete.
After the installation completes, click on Reboot and remove the USB drive. When Proxmox is fully up, you will receive a welcome screen. At that point, you can access the web interface from any computer in your network using https://
, the static IP address that you set up for Proxmox, and port 8006
at the end.
https://192.168.X.XX:8006/
Access the web interface
When accessing the Proxmox web interface for the first time, an alert pops up, stating that the connection is not private. The reason for that is because there is no SSL certificate installed. So just click on Advanced and then Proceed.
To login to Proxmox VE, enter root
as the Username, for the password, enter the one that you created during the installation, and click on Login.
Even though Proxmox VE is free to use, there are subscription plans for IT professionals and businesses. So, when using the free version, a No Valid Subscription pop up comes up every time you log in to the Proxmox web interface. It’s annoying, but at least you can close it right away and move on.
Web interface overview
The web interface is separated into several sections. At the top, you have the Header with shortcuts to create virtual machines and containers. On the left, you have the Navigation tree containing the Datacenter and the Nodes, which are the machines running Proxmox.
With Proxmox VE, you can have several machines running Proxmox and have them linked as nodes to one Datacenter. Allowing you to manage all your Proxmox servers, and it’s created VMs and containers from one single located.
Below a node, you would have the created VMs, containers, and also the Storage. The center of the page has the Content Panel with status information and configuration options. The bottom of the page has the Log Panel, where entries for recent tasks are displayed.
Updating Proxmox packages
The first thing that you want to do after installing Proxmox is to upgrade all the installed packages. To do that, select the server, then go to Updates and click on Refresh. The No Valid Subscription pop up comes up, but just close it, and the task to check for updates would start. When it finishes, it will show a Task Error at the end, and it’s just because you don’t have a subscription to access the enterprise repository.
Close the Task viewer pop up, and the page loads the packages that you can upgrade on the free version. Click on Upgrade, and a terminal window comes up. Type Y
and then enter
to proceed with the upgrade. When the process finishes, you can close the terminal window.
Create a VM for Home Assistant
On the top right of Proxmox, click on Create VM. Any virtual machine created will have a unique VM ID number, which could be any number starting from 100 and up. Set up a Name for the VM. In this case, it’s going to be Home-Assistant. Then click on Advanced and select Start at boot. Click on Next, and under the OS tab, select Do not use any media. Under the System tab, change the BIOS to OVMF (UEFI). For the Storage, select local-lvm, and for the Machine, select q35.
In the Hard Disk tab, don’t make any changes because it will be changed later with the Home Assistant QCOW2 installation file. On the CPU tab, select the number of cores that you want the VM to use. For Home Assistant, you want to choose at least 2 cores to have better performance. For Memory, enter the amount of RAM that you would like to use with this VM. With Home Assistant, you want to use at least 2GB, and you would need to enter the number in megabytes, which would be 2048MB.
Lastly, on the Network tab, leave the settings the way they are. When the VM starts for the first time, it’s going to set up a new MAC address, and it’ll show in the home network as a separate device from the Proxmox server. Click on next, and under the Confirm tab, make sure that Start after created is not selected and then click on Finish. The new virtual machine created for Home Assistant would then show on the left side, below the server.
Download and Import the Home Assistant QCOW2 file
Download and transfer QCOW2 file to Proxmox
Go to the Home Assistant website and download the QCOW2 file. Then, extract it, and you then need to transfer that file to the Proxmox root
directory. To do that, you can use a program called FileZilla. When you open FileZilla, at the top, enter the Proxmox IP address under Host, then the username and password, and set the port to 22. Click on Quickconnect, and on the Unknown host key pop up, just click on OK.
If this is the first time that you are using this program, on the left side, you have the folders from your computer and on the right side the folders from the Proxmox server.
On the left side, locate the folder where you have the Home assistant installation file. Then on the right side, which is the Proxmox server, you should already be under the root
directory folder. So, drag the Home Assistant QCOW2 file to that directory.
Import Home assistant installation file to the VM
After the transfer completes, go back into the Proxmox web interface, click on the Proxmox server, and then Shell. To import the Home Assistant installation file to the VM that was created, enter the following: qm importdisk [VM_ID] /root/[hassos_file_name] local-lvm --format qcow2
After qm importdisk
you need to enter the specific VM ID number for the Virtual machine, where you are installing Home Assistant. Then, after /root/
, enter the name for the installation file downloaded from the Home Assistant website. Usually, when there are new versions of HassOS, the file name would have the version number at the end. For Example, hassos_ova-4.11.qcow2
. So, just be very careful with these 2 things, so there are no errors when importing the installation file.
# This is an example of how it should look:
qm importdisk **101** /root/**hassos_ova-4.6.qcow2** local-lvm --format qcow2
Lastly, click on Enter
, and when the import finishes, it should show that it was successfully imported as an unused disk.
Example:
Successfully imported disk as 'unused0:local-lvm:vm-101-disk-2'
At this point, you can go back into FileZilla and remove the Home Assistant QCOW2 file from the Proxmox root
directory.
Set up the Home Assistant hard disk on the VM
Go back into the Home Assistant VM and then go into Hardware. The unused disk with the installation file would be at the bottom as Unused Disk 0
. Now, click on the current active Hard Disk, Hard Disk (scsi0)
, then click on Detach, and on the pop up click on Yes. That hard disk would then show up at the bottom as unused disk 1
. Select that disk, then click on Remove and then click on Yes. Now, the Unused Disk 0
, which is the one with the Home Assistant installation, double click it, and on the pop-up, click on Add.
The hard disk, by default, would only have 6GB available. So, to make it larger (32GB Recommended), click on Resize disk and add the additional amount that you want to add to the 6GB already available.
Boot the Home Assistant VM for the first time
The configuration is now completed, so Start the Home Assistant VM. Go into Console to verify that the installation is working as expected. The process can take several minutes, so after a while, on another browser tab, go to homeassistant.local:8123
, and the Home Assistant initial configuration would come up.
Locate the VM’s MAC address
The Home Assistant VM would show up in the network as a separate device from the Proxmox server. It’s going to have it’s own MAC address, which you can then use to set up a static IP address for Home Assistant in your home network.
To locate that MAC address, go back into Proxmox, select the Home-Assistant VM, go into Hardware and double click Network Device (net0).
Adding USB devices to a VM
If you need to add a USB device to the home Assistant VM. For example, a ConBee II for Zigbee devices, in the Hardware tab, click on Add at the top and select USB Device. In the pop up that comes up, select Use USB Vendor/Device ID. Then from the drop-down, select the device that you would like to make available for Home Assistant. Then click on Add and reboot the Home Assistant VM. When the VM is back online, open Home Assistant, go into the Supervisor tab, then System, Hardware, and the USB device would now show up as available for Home Assistant to use.
Conclusion
All right, so Home Assistant is installed. You just now have to do the initial configuration and add your smart home devices to start using it. If you are new to Home Assistant, you can check out my Beginner’s guide to Home Assistant where I go in more detail on the initial configuration, how to add devices, and how to configure remote access.