Installing HAOS on Proxmox: A Step-by-Step Guide

Personally, home automation is one of the areas that as a hobby attract my attention and with the rise of LLMs (Large Language Models), very powerful integrations arise that allow you to make automations in natural language in a simple way, however the easy way has a cost to pay, which are: sending data to third parties (Amazon, Google, Apple, etc.) and money because if you stop paying you are left with nothing or limited in terms of functionalities, in addition to the fact that if you run out of internet your smart home stops working.
However, there are open source alternatives and HA (Home Assistant), is the gold standard with respect to home automation, resulting in an assistant running on your infrastructure with some effort.
Now, the question arises: Where to host HA? Truth be told, there are several paths, Ubuntu Server + Docker + HA, Bare Metal HAOS, Proxmox + HAOS, etc. There is no single answer, there are several paths that lead to the same result, there are even discussion forums where nerds start discussing what is the best combination and it is quite entertaining since that type of discussions allow you to understand different perspectives or get confused thinking what the hell they say and make you leave. Don't worry, no one starts knowing and with a little patience you will see that it is not so difficult to speak in the language of nerds.
HAOS vs HA
If you're not very into this world, you're probably wondering what the hell HA and HAOS are, so we can quickly see it as follows: HAOS is an operating system based on a Linux distribution and HA is like any program you can run on your computer, but with important nuances, Remember that these types of services need to be isolated so as not to conflict with other applications. If you didn't understand me, just stick with the idea that both are Home Assistants at the end of the day, but HAOS works like an operating system.
Why use Proxmox?
Here it is important that you have your goals clear, so if you are reading this I would hope that you already have them and if not, I will tell you mine.
KISS
KISS is short for the strawberry Keep It Simple, Stupid and it's my life motto (Not really, but I like the approach), the point is that in systems development this design proposes us to keep things simple and avoid unnecessary over-engineering, and you will say what does this have to do with it? the answer is a lot, HA has a store, which previously referred to its elements as add-ons, as of today 2026 they are called applications, see it as an app store/play store with various apps that allow you to expand the capabilities of HA with a few clicks, however this store only exists in HAOS for the HA + Docker combinations, I would have to manage by manually installing each application and the truth is something that caught my attention, but I didn't want to let go of my little social life, so I opted for HAOS. During my expeditions to discussion forums of this type I read several comments from server administrators and although it is a job that the vast majority are used to, they preferred to use HAOS, although yes, there was never a lack of intense that defended the use of Docker until the end.
Will you only run home automation?
This question is decisive, if you have limited hardware or you don't plan to go further perhaps your best option is Bare Metal + HAOS, so you are in time to redeem yourself, but if you have hardware to spare, you plan to set up your own infrastructure with different microservices and you are not afraid to break things and expand your knowledge, Proxmox is on the right path.
What is Proxmox?
Proxmox is a virtualization environment that we can install directly on top of the hardware and allows us to run virtual machines and LXC containers. It has a UI (User Interface) that we can access by default through the local network where the server is installed.
A practical example is that this allows us to have different operating systems installed on the same machine with the possibility of accessing each of them remotely.
That is why this path, in addition to allowing us to install HAOS, if the hardware allows it, we can also add other operating systems such as Ubuntu Server and in turn add other applications to make increasingly powerful integrations.
Hardware
First of all, let's start with the premise that we are working with a server, not a computer with an operating system (OS) such as Windows or MacOS. This is important because we must be very clear about what we are doing from the beginning and if you are wondering what does it have to do with the hardware? It has everything to do with it, but before we get into the specifics we must be clear about a couple of concepts.
Architecture
The Proxmox + HAOS combination is part of the architecture client-server, with HAOS being a service that lives on the server and Proxmox being a software layer (hypervisor) that manages and distributes the hardware resources allocated to each service.
The concept is basically summarized in that one or more services live on a server (high-performance computer), which in turn provides these services to other equipment such as computers, cell phones, tablets, Smart TVs, etc. These teams are the "clients" and communication is carried out through a local network or the internet.
Resource allocation
Since we are clear that a server with Proxmox is usually a computer with a high availability of resources, we will leave aside the idea of referring to hardware as technical specifications of physical parts and we will approach them as dynamic parameters that can be modified, in some cases with certain restrictions.
So, these are the recommended requirements:
- 2 vCPUs
- 2 GB RAM
- 32 GB of storage
Within Proxmox we can change the allocation of resources at any time, however, there is an important nuance, although we can reduce or increase all the parameters, reducing the storage is delicate since there is always the possibility of corrupting files, so I recommend starting with what is recommended and going up as necessary.
On the other hand, for more advanced integrations with local AI through Whisper and Piper's apps for Speech to Text (STT) and Text to Speech (TTS), at least in my tests the RAM needed was doubled, going from 2 GB to 4 GB since, with only 2 GB allocated to HAOS, Whisper cannot boot.
Installation
Well, at this point I already take for granted that you have a server with Proxmox, the installation is quite simple, even so, I leave this reference to another Post where I tell the installation process.
With the above ready, the only thing we will need to install HAOS is access to the server through a client, in my case I will use a Windows PC.
In the same way something very important is to have hardware acceleration enabled on the server, this adjustment is made from the BIOS and depends on the motherboard where the option is located, I recommend doing a search on the internet based on the model of the motherboard.
Upload .qcow2 to the server
Without further ado, the first thing is to download HAOS, via the following link. The required file is called KVM/Proxmox (.qcow2) and it will be the only time that something will be downloaded.
Then a folder is created on the server to save the .qcow files, it is not mandatory, but it is recommended to always have everything organized. To do this, in the Proxmox UI console, you can use the following command:
mkdir -p /var/lib/vz/template/qcow/mkdir -p /var/lib/vz/template/qcow/
When running it, if it does not throw any errors, it means that everything is fine and we will be able to close the console since the new directory was created successfully.
What follows is to upload the .qcow2 file to the server, for this in the folder where the file is, you must right-click and select open terminal, with that a console will open in the file path.
Within that console the following command must be executed:
scp .\haos_ova-17.2.qcow2
root@192.168.18.19:/var/lib/vz/template/qcow/scp .\haos_ova-17.2.qcow2
root@192.168.18.19:/var/lib/vz/template/qcow/Here is an explanation:
- SCP -> Copy files via SSH
- .\haos_ova-17.2.qcow2 -> The source file on the client
- root@192.168.18.19 -> Target user and server, change it for yours
- :/var/lib/vz/template/qcow/ -> Destination folder on the server
Create Virtual Machine
Now in the Proxmox UI, in the upper right corner you should select a button called Create VMs, which allows you to start the setup process.
The first window is called General, here unless a very specific configuration is necessary you can leave the default values, I just recommend remembering the VM ID and have unchecked Add to HA.
The next window is called SO, there must be selected Do not use any means because it will not be installed from an ISO but from the qcow image directly. In Guest Operating System it must be verified that Linux has been selected.

The third window is System For this section the number of options is very wide, being the following:

A brief explanation, Machine refers to the virtual chipset, in this case Q35 is the most modern and makes it easier to pass physical hardware to the VM, in BIOS The Option UEFI it is also the most modern and gives advantages such as a faster start, on the other hand Add EFI Disk should be selected because UEFI needs a small portion of memory to save its boot variables and finally in EFI Storage the checked option indicates that Proxmox local storage will be used to save the EFI configuration file.
Next, there is the section called Disks, this is quite simple, Proxmox gives some default values, what you have to do is select the trash can icon that is on the left side next to scsi0 since the HAOS qcow2 image will be imported later as a disk, not from this section.

Continuing with CPU, I recommend using two cores and in sockets keep it one one, looking like this:

In Memory I recommend a value of 2048, the equivalent of 2 GB will be enough, unless you want to implement local AI functions from HAOS it is best to raise it to at least 4096.

In Network the default values will be used, having Bridge in vmbr0 and Model in VirtIO.

After finishing the configuration a summary will be displayed, if everything is fine you must select Finish with which the VM will be ready.
Import Disk
The first thing is to understand that it has been created, well, at this point there is already a VM created on the server, but without any disk assigned, which is the equivalent of having a PC without any storage unit attached. That disk that is missing is the file that was downloaded at the beginning, the famous haos_ova-17.2.qcow2.
To install that disk to the VM that has been created, the following command is used:
qm importdisk 100 /var/lib/vz/template/qcow/haos_ova-17.2.qcow2 local-lvmqm importdisk 100 /var/lib/vz/template/qcow/haos_ova-17.2.qcow2 local-lvmCommand Explanation:
- QM ImportDisk -> It is the instruction to import a disc.
- 100 -> It is the ID of the VM, it was assigned in the General of the configuration
- /var/lib/vz/template/qcow/haos_ova-17.2.qcow2 -> It is the path on the server, where the file is
- local-lvm -> It is the destination, i.e. the name of the storage in Proxmox where the disk will be saved
Now we can imagine that the disk is already screwed to the VM, so it is only necessary to plug in the data cable and the power for it to work, for this we will go to the node where the VM is installed, it must be selected and in the hardware section when you click on it a disk called Unused disk 0 to whom when opening it only has to make sure that Bus/Device Have the courage SCSI 0 and thereby select Add, to which the disk with HAOS will already be installed and almost ready to use.

Finally, to leave the disk ready, you have to change the boot order, for this you must go to the following path in the VM settings: configurations > boot order.
Once there, this order will be established:

Disable Secure Boot
When you turn on the VM it will probably freeze, this happens because Secure Boot It is enabled by default in OVMF (BIOS that was assigned in the configuration), to solve it you must press any key to enter the Boot Manager Menu, which will allow you to access the BIOS settings.
While in the BIOS, you must navigate through the following path to disable Secure Boot: Device Manager > Secure Boot Configuration, we will see a list with several options, we just have to go to Attempt Secure Boot and uncheck that box.

Finally, you should press F10 to save and Esc to exit. Once that's done, the VM will give us an IP which can be used from any device on the local network to access HAOS which is ready to use.

Comments
All comments
Loading comments...