Home Assistant on easy mode for intel NUC and Ubuntu Server


i was running HA on a virtualbox on my pc, fiddling with esphome and some other bits, but now i have a load of wifi plugs, some lights, some nfc tags, and an intel NUC5 i7 and i want an always-on solution (pc in my room goes off when i sleep).

i want to use the NUC for more than HA - also pihole, a rudimentary NAS, and whatever else might come to mind really, so i thought docker was the way for me.

i’ve installed ubuntu server, and docker-compose + portainer, i’ve got esphome installed, and tbh i just can’t be bothered with it all. i’m pretty new to linux, totally new to docker (although i think i have my head vaguely around that now) but in short i want the nice guis, and the addon-store, and all the sugar all the kind devs of the world have sprinkled around for noobs like me.

i looked at adding supervisor to my docker install but people seem to recommend strongly against that because of redundant containerisation.

what’s the best approach - i’ve just installed virtualbox from cli and installed hass os on a vm, planning to install docker-compose to handle pihole and whatever else - is this going to be the best way for me to get an assisted experience of HA with minimum excess compute overhead?


IMHO, Virtualization takes up too much resources compared to docker. I think learning a few linux commands and getting familiar with docker / portainer is the way to go. I have been running the HA Docker for a few years now and I have never missed the addon-store. I have managed to do everything I have needed with HACS and installed other docker containers as required to achieve what I need. I have an I7 PC always ON that has expaned over time and is now running 29 Containers.
Some of the containers I can no longer do without are

- Home Assistant
- PiHole (handles my DNS / DHCP / Addblocking)
- Frigate (for my HA cameras)
- Snapcast (for my whole house Audio)
- Jellyfin (for my media server configured with [perfect media server](https://perfectmediaserver.com/))
- Node Red (for my HA automations)
- openVPN (for remote access)
- esphome (for ESP setup)

I highly recommend using “stacks” if you are using portainer as it makes updating and re-configuring much easier.

Hit me up if you need some encouragement and / or tips!


ok so i’m trying docker-compose again.

i can write yaml ok, but how do i use esphome? to, eg, reflash a device ota? it already has esphome on it.

docker container ls shows

77ca9c9ad8d2 esphome/esphome "/entrypoint.sh dash…" 38 minutes ago Up 1 0 minutes 6052/tcp esphome

but going to ipaddress:6052 doesn’t work, and running esphome from cli returns “esphome:command not found”

It is true in term of ratio of system resources. However in real world HAOS VM setup, you probably would not feel much of the difference, or see any meaningful impact on a(ny) i7 NUC.
I’m running HAOS VM in a 2018 Celeron metal box, and the CPU hovers at around 2%.

So, @prosodyspeaks, it’s fine running HAOS as a VM. HAOS is lightweight enough that you have nothing to worry about.
You could still run other stuff in your docker container, if you want to.
Or, in the case of ESPHome, that’s available as an add-on under HAOS, which you can easily manage without touching any docker container cli.


If you are still using portainer then I would recomend “stacks”. These are just compose files that are handled by portainer and editable in the portainer interface.

Here is my “stack” for reference…

version: '3'
    container_name: esphome
    image: esphome/esphome
      - 6052:6052
      - /home/pcwii/docker/esphome/config:/config
      - /etc/localtime:/etc/localtime:ro
    restart: always
      - TZ=America/Toronto
    privileged: true

I can then access esphome from my web browser.

I am all about whatever works best for the individual. I do use virtualization for some things on other systems, but for my home automation “server” I have opted for Docker so I don’t have to worry about managing the individual OS’s. I run watchtower in a container which keeps many of my containers up to date with the latest builds, this has caught me once or twice with breaking changes but it forces me to level up my system when this occurs.
Can I ask, What is the process for updating HAOS in a VM when updates are released? Does it require you to redeploy that VM or just do “updates”?

See above, you’d got an notification saying “hey there’s an update to the HAOS”.
And then, (after checking the release notes,) you click the blue “INSTALL”, wait a few minutes, and it’s done.
No command nor cli nor redeploy - couldn’t be easier than that.

So if you do ESPhome as an addon under HAOS. It’s the same: Open the notification, check release notes, and then click install.

1 Like

Unlike what people have you believe running a type-1/bare-metal hypervisor (e.g. Proxmox, oVirt, Xen, VMware, etc) on decent hardware (i5/i7/amd hx5900, etc) does not add too much overhead in a system and it provides oodles more flexibility than running Docker.

Running HAOS (HA OS) allows you to focus on HA, rather than fixing OS/compatibility issues (e.g. updates which are not a royal pain in the butt to get right).

Something else which almost everyone misses. Any system management operation in a hypervisor is light years faster and easier than Docker.

Docker and Kubernetes shine on CI/CD devops, not on homelabs where for example ability to run Windows instances in VMs makes a lot of sense for lots of reasons.


i found a second wind… now i have installed ubuntu server with docker etc, set it up and then got annoyed and formatted, installed hass os, then re-formated and reinstalled with docker :rofl:

i discovered using iframes to import containers into my home-assistant instance, although i sussed out esphome cli first. in any case i’m basically full steam ahead.

speaking of full steam i think i need to mod the NUC, it’s obnoxiously loud!