Howto: Installing HassIO in Docker on a Proxmox NUC server

I am migrating my HassIO installation from a Pi to a NUC and took some notes on the process (all process and commands at this link…)

I wanted to install HassIO in Docker directly without using an image. It seems this is an uncommon installation method, but it is detailed here in the HA docs:

I set up my NUC with Proxmox, a Debian-based virtualization operating system. First you install Debian and then run an install script that switches in the Proxmox kernel. Details on that method here:

https://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Stretch

Then I created a VM running plain Debian, and installed just Docker. Then I installed HassIO and a few other Docker containers

Installing HassIO this way just installs two regular Docker containers: homeassistant, and the hassio-supervisor. If you install an addon from within the HassIO menu, it appears as just another Docker container.

Using Portainer to manage the containers:

Obviously you could skip the Proxmox part of this but I was going to migrate over some other servers I have on my LAN and run them as VMs.

Wanted to share this method of installing HassIO directly into Docker as it seems to be the best of both worlds. HassIO and it’s addons and interface, but all managed in Docker alongside any other containers you may want to run, on a regular Linux server host.

8 Likes

Hi,

Any special motive for installing Hassio on Docker instead of HA (or directly HA into venv on Debian and skipping Docker)? With Debian VM & Docker & Hassio there are 3 VMs running one inside the other (or as di Caprio would say a dream in a dream in a dream :wink: )

I know Hassio is more user friendly but venv installation should be more flexible.

Running two separate VMs with Ubuntu Server (HA and Plex) on a less powerful NUC than yours still doesn’t get processor load above 0.5

Mostly I like HassIO’s backup system, and the big advantage here using Docker directly is that the “Addons” are installed as regular Docker containers, but preconfigured for the HassIO system. So that saves me a lot of work getting other services running.

IMO it’s more flexible to use Docker containers, or if I need access to the underlying OS I can do it on the host VM.

This containerization thing is a little funny to think about, I am honestly not sure how HassIO is structured here. I was thinking of it more as 2 layers of abstraction (the VM and Docker). I don’t think HassIO is running another additional VM layer inside the container - really “HassIO” is installed as two separate containers in this scenario (Home Assistant and the “supervisor”). So no ResinOS in this setup (?)

When I first set this up I was not sure how addons would be handled - if it was going to be addons inside a Docker inside a Docker inside a VM I think I would have tried to find another solution :). But they just show up as containers alongside HassIO

But like you said I am not hurting for resources now that I’m not on the Pi!

w/ 4 VMs and a dozen Docker containers running:

1 Like

I’m interested in doing something like this :slightly_smiling_face:

I have an Intel NUC running Ubuntu 16.04 and run apps/services in Docker containers on there.

I wanted to install Hass.io on the NUC, am I right in thinking I couldn’t just run it in a ‘normal’ Docker container? I’d have to create a VM, install Ubuntu again in the VM, and then install Hass.io there?

No this installs Hassio in ‘normal’ Docker. Just follow the instructions here:

The script sets up Hassio and it’s supervisor & addons as Docker containers just like your other services.

1 Like

Great, thanks!

I was able to get a cached version, Works great. Thanks!

Thanks for your excellent guide :slight_smile:

I’m in the middle of doing a very similar setup as you:

  • A NUC7i5
  • Proxmox 5.2 as base
  • HassIO
  • A long list of other docker applications (Plex, Owncloud, Sonarr etc…)

But I’m debating if I should install docker directly on the Proxmox host and run everything from there or, as you did, create a debian VM and install docker on that.
It seems slightly easier to just run docker directly on Proxmox and skip the hurdles with creating a VM.
On the otherhand i guess you risk screwing up you Proxmox host.

Why did you go for a seperate VM and not run docker directly on proxmox?

If you run Proxmox as your base OS and you need Docker, you should run Docker inside of a VM (Debian or Ubuntu Server). I have tinkered with Docker installed directly on a test Proxmox host install and even in a Proxmox container with apparmor turned off, and I always seemed to have weird random problems. I don’t think Proxmox likes to share resources with other programs like this since it wants to be the main controller.

If your only goal is to run Docker containers, then just install Ubuntu Server or Debian as your base OS and stick with that. Proxmox is not necessary in that case.

Pretty much the reason you said, to prevent screwing up the Proxmox host.

Also now I am in the process of clustering a second NUC. So having the Docker host in a VM means I can migrate it from node to node and use the high availability features.

Sorry for the downtime on the web server… moved hosts and messed something up in the process.

Could you provide me some help? Actually im migrating to laptop, but i think it is not different that much.

I just want to ask, when u install debian on VM thorugh the install did u see connections i mean could you download gui etc? I just saw a dhcp error and had to install minimalstic version

In Proxmox, in your VM settings, make sure VMBR0 is connected as eth0 device for the VM.

I followed all steps and now i have Hassio installed on a VM on Proxmox.
However, i’m not docker expert and i don’t know how to make run homeassistant with option “–net:host”.
I have installed portainer and i can see all running containers in server , but i don’t know how to setup docker to enable this option when restart homeassistant container.

Anyone can help me?

Hi @oakbrad

Actually I’m running on a Intel NUC i3 with 8GB ram with ESXi 6.5 (free version) and Ubuntu Server 18.10 and finally Hassio on it in Docker.
Then I have another VM for Nodered and MotionEye.

What are the advantages of moving from ESXi to Proxmox, from your perspective ?

Thanks

If you installed HASSIO, that option is already set. You do nothing.

HASSIO is an appliance. Install and leave it alone.

I recently switched from ESXI 6.7 to Proxmox on my NUC. Main reason was that I already had another NUC with Proxmox so I can make a cluster.
Other advantage of Proxmox is that you can make a full backup of a VM. And with this link installing hassos has become super easy.

But ESXI was working fine for me as well.

1 Like

I’m not that familiar with ESXi or VMWare products, I believe the main difference when I looked was that ESXi only support 2 nodes clustering unless you buy a license (I might be wrong). Proxmox is not limited, they just have paid subscriptions for support, so I went with that.

I have 3 nodes in Proxmox and the only reason I have ever rebooted them since I originally set this up was for a distro upgrade. So I have no complaints, I run a bunch of stuff other than HA.

Just moved from ESXi to Proxmox and seems all fine.

I’ve one VM with 2vCPU (on an Intel NUC with i3-8109U) and 3GB ram with Ubuntu Server 18.10 and Hassio installed in Docker.
Just Hassio with few addons.

The ram is used at 95%, but looking at this I have some doubts.

26
44
On the login information, memory usage is at 30%
executing the free command the used value is around 20% while the buff/cache is more than 75%

What is buff/cache used for?

Thanks

I now have hassio running in Proxmox on my NUC using whiskerz007 one line process, it was so simple.

My question is how can I now copy over a snapshot file I made earlier, Im not sure where to find the homeassistant/backup folder on the NUC