Help me understand the concept of Proxmox and Virtualization

Okay, so I’ve been running the Supervised version of HA (I guess formerly known as HASS.io) in Ubuntu under docker for a long time…

…recently, the unsupported nature of this configuration seems to be a popular problem due to privileged mode or something of that nature (not sure I understand any of it yet.)

I like having control over the system’s OS so I can do other things with it, and so I’ve seen many mention that HA can be run in a virtual environment (this is where my head blows up) and so can Ubuntu and … well, that’s when I glaze over, and I’m not completely incompetent…

Until now, I’ve typically installed Ubuntu with a script from Webmin / Virtualmin because it’s easy to manage and everything just works…

My main beef with HA is this page which fails to explain what some of these hardware devices I’ve never heard of actually are.

I know what a PI is, but I record all of my data to MySQL running on Ubuntu and I don’t want to deal with SD cards. The Pi3 was a fail for me because of the number of add-ons.

I have sold a few Intel NUC computers, but I can’t see justification for purchasing such a powerful desktop workstation solely for HA.

The Odroid looks like the same type of hardware as a Pi3/4.

So that leaves me with the X86_64/UEFI which basically tells me that just about any old PC sitting in my pile of PC’s will work, but only in a virtual environment.

Again, glazed.

Now, I’ve been running VMWare on my MacBook Pro as a means to load Windows 64 Pro in a window, so I sorta get the idea of Virtual, but here’s where I’m confused…

How can I run a full Ubuntu 20.04 Lamp server on the same system as Home Assistant OS while ensuring that I’m running a fully supported version of HA and have complete control over the Ubuntu 20.04 box…

I’m currently using a Gigabyte mini PC, which I believe qualifies under the x86_64 category.

Is this what proxmox is for?

Thanks for your insight.

Lot’s of questions… Will try to start answering your questions:

Proxmox is a host operating system based a debian. It is designed with graphic user interface (GUI) and tools to host virtual machines. VMware, Virtualbox, QEMU are all softwares which create and manage virtual machines. Proxmox can host both virtual machines and containers.

As you already have experienced, a VM machine enables you to run a heterogeneous operating system as a client of the host operating system. You can technically run a linux OS or a windows PC or run windows OS on a mac host.

The python virtual environment has nothing to do with the above. When Home Assistant and almost any python project I have encountered, recommends to run in a virtual environment, it is to be able to create a separate folder and installation on your disk where your python requirements/dependencies will be isolated from the main python installation. Everything remains in the same operating system.

You then have the containers which is another level of separation where you has a simplified and compacted OS running on the host OS using the main OS kernel.

The last option is the virtual machine which yet a greater level of separation, going all the way to the hardware level as you have to allocate memory and CPU cores to the client OS, running a full fledged operating system with its own separate linux kernel.

All these separations under linux are meant to prevent cross interference from dependencies in linux with various program wanting to upgrade libraries which can create incompatibilities…

You could also switch from Ubuntu to Debian which is supported. Personally not a fan of proxmox but that’s my issue.

Since you’re familiar with vmware, you can think of proxmox as being the same. Proxmox will let you run multiple virtual machines on the one physical machine.


It would allow you to run your ubuntu lamp server as one vm and a home assistant vm on your gigabyte mini pc, however, to do this you would need wipe the mini pc first and then install proxmox and then create your vms.

If you want to maintain your existing setup maybe look at the Homeassistant Docker Install

Hello @arretx,

Let me tell you my own experience with Home Assistant and Proxmox, a positive one.

As coming from Jeedom simply installed as a service on a Debian system, I found Home Assistant really attractive for many reasons, and I jumped one year ago after thinking over the way I would install it.

  • Virtualization for the first time for me, for the flexibility of it
  • Proxmox for managing it as it is dedicated tool and for its great backup functions
  • Build with “scalability” in mind, that is to say the ability to add new services later such as a Plex server, a Airsonic server, a Calibre server, a comics server, and so on…
  • One virtual machine or container for each service almost, as said a good practice for stability
  • a VM for managing external access to my services by Nginx reverse proxy and wildcard SSL certificates (I am quiet proud of it because I knew so little on networks before doing this while there is no comprehensive tuto about it as far as I know)
  • Using a famous automated script for installing Home Assistant on Proxmox : https://github.com/whiskerz007/proxmox_hassos_install

Last summer, after electricity cutoff, I lost completely the system on my Intel NUC. I was able to reinstall Proxmox from scratch in 10 minutes, and reinstall the backups of my VM and containers in 15 minutes and that’s it. Home Assistant immediately worked as if nothing happened.

As a summary, il you are only to run Home Assistant and want to make it simple, go for installation on a Debian. Else if you want scalability and maintenabiility or learning more, for the price of a bit of complexity, I advice to go for Proxmox.

Check. Got it. Took a snapshot of HA, preserved it, wiped out Ubuntu and fired up Proxmox.

Check.

Got it.

So basically, the single computer becomes a landlord with limited building resources with which he can lease out space and utilities for specific use cases, be it complete permanent dwellings, or an add-on for storage, or maybe a temporary project.

Is allocation of hardware resources something that can be balanced between virtual machines or do you typically allocate a block of resources permanently for that vm?

This depends on the host. I can’t speak for every single one of them because I don’t know but for example my QNAP which runs QEMU as a host virtual machine manager can reallocate CPU cores and RAM on the fly without interrupting the VM. Typically you would have to shutdown the VM, change the allocation and then restart it. The allocated resources become unavailable to the host system. You can look at the VM as a program running an OS and you can parameter what resources are given to the program to run. These parameters can be changed.