How to choose a NUC?

I went for the “easiest” way in my opinion.
I installed Ubuntu headless server.
Installed docker using the instructions on their site (not the ubuntu/canonical version).
Install Home Assistant using normal Docker image.

I did not use the HassIO (with supervisor etc.) in docker because i wanted to have flexibility, and also the docker-in-docker seemed odd to me. Not that it isn’t a good setup - but I am very happy with my setup.

I use Portainer for most of my docker management, and a SSH in terminal when Portainer doesn’t have the ability I want. For example when I create a container I use terminal so I can make sure all the flags/volumes/env. stuff is correct. After creation, I manage containers with Portainer.

This has allowed me to learn a lot, but I think it is still an easy process. Adding other containers and communication between them hasn’t been a problem. Container management has been simple enough - and since most things have a web interface, you don’t need to access the containers themselves often.

For configuration files, I have them mapped using volumes to the host machine (for all containers, not just HA). So I can scrap a container and not lose config files. I can also modify them without accessing the docker containers - just modify the files on the host machine and restart the container. You can even use Samba or Syncthing to access the configuration files and never even need to SSH or something similar to the server.

If you have any questions, I’m happy to do my best to answer them.
I am still very new to all of this, but have some experiences so far that I am happy to share!

DeadEnd

2 Likes

It’s not docker-in-docker. The Hass.io generic linux install just installs the containers in docker. There is no extra O/S + Docker.

What makes people think hassio runs docker inside of docker??

I can’t answer that for anyone else but I can say that speaking as someone who is a damn sight more clued up technically than Mr. Average (stop laughing at the back) the multitude of ways HA can be installed is not well described/documented at best, and totally confusing at worst.

I see this a barrier to moving to version 1.0

It is certainly true that coming to HA and getting up and running on a Pi is documented and implemented brilliantly, no question, but it is also true that that solution soon becomes frustratingly slow for anyone who wants to develop their system. It also comes with inherent issues with power supply and SD cards that many face (although before anyone objects, neither of those are attributable directly to HA).

There is no clear guidance on how to progress. There are documented alternatives I agree but they all seem to come with sometimes vague provisos and soon drop into needing quite detailed understanding of the underlying technologies required to set them up.

I would like to see a suggested roadmap (ideally including tutorials but I recognise the countless issues this brings) for progression from a Pi. Perhaps even a (range of) ‘certified’ architecture(s) that will should setup reliably.

I think this is needed before going to v1.0

I think that kind of partly answers your question…

But in a nutshell I think people think a lot of things about HA because it is not clearly and coherently spelled out exactly what is going on when someone stumbles upon the home page and installs hassio on a Pi. And neither probably need it be at that point, but somewhere I would have liked to have found some ‘official’ guidance about where to go once my Pi is taking 2 to 3 minutes to do a restart after every tiny config change.

Just to be clear (after all, despite this forum being one of the friendliest and most helpful places I’ve ever been to on the Internet, it is still the Internet), I am not ranting or complaining or having a go at anyone. I have just reached that ‘my Pi isn’t good enough anymore’ point and am slightly frustrated at not knowing which path to invest my time and energy in, so that I can progress to something ‘better’.

And look, finally, if your response to this is to show me links that cover what I’m asking for then great and thank you (I mean that in all seriousness), but if that is the case then there is still something not quite right because I have spent more days, weeks, and months over the last year and a half than I care to think about on HA and I don’t recall them or pointers to them, and the forum has countless posts around this subject (all giving different views I hasten to add!).

3 Likes

Hahahaha… ahem… thanks for the laugh…

So the thing I see is there are SO MANY different ways to get from point A to point B. You yourself have chosen an install path I know absolutely NOTHING about… so that makes you an edge case and good luck with that! The devs really are only going to document a common solution fully.

I chose a debian/docker/hassio install and I actually fully documented it (mainly for my own benefit in case I ever needed to do it again). It is unfortunate that documentation is sparse and actually sometimes the best approach is having a go at it - as long as you save your config it’s child’s play to move between different install methods and really, for the more exotic options, if you don’t know what you are doing, perhaps you’re better off sticking with something that is better documented.

In any case, you, like anyone else can edit the docs and make better documentation. My expectation of version 1.0 is that they will really have good documentation for a Pi install but stray for that and it’s assumed you have a clue…

Just my 2c.

Is this available somewhere?

Sure. Here you go.

3 Likes

It doesn’t.

I want to know WHY people have this tendency to think that, when you install hassio on a generic linux install (as documented in official documentation), it runs docker-ception. There is literally zero mention of it anywhere in documentation, and not a common thing to run docker inside of docker. I don’t understand why people think that it does. That was my question, and it has yet to be answered.

I can’t speak for others, but here is why I believed incorrectly.

I had read that HassIO is an OS with Docker and two containers (HA and Supervisor). So, again this is my misunderstanding - but I had read that you installed Linux, Docker, and then HassIO inside of a Docker Container. I thought that meant that you had the HassIO image (OS+Docker+2 containers) inside of a Docker container.

Now I’ll be honest in that I didn’t investigate this at all because I knew HassIO was not the direction I was planning to take. And it could even be possible that this was an old installation method that is no longer done. I honestly don’t know.

But to answer your question - my short investigation into installation methods led me to believe this. Now, being that there is a massive amount of information on these forums - I very simply could have misread something - I’m sure it happens often with new users.

HassOS is the OS. HassIO is a couple of docker containers.

The confusion of the 5 billion ways to install Home Assistant definitely needs to be redefined.

2 Likes

True - I do appreciate the flexibility it gives for installations though.
The downside is that it can create confusion as well.

That is why I focused on the way I wanted to do it and ignored the rest :slight_smile: .

Docker is so much easier imo. Once you understand docker (which looks hard but really isn’t), you’ll love docker. I took @DavidFW1960’s advice about a year ago and got portainer. Once I had that, I was able to see the containers and perform various tasks using portainer. Also helped me understand what docker was actually doing. Now, if I can, I put everything on docker on my Nuc.

3 Likes

Including UniFi Controller?

Linux Server has a version (they do a lot of docker images)
https://hub.docker.com/r/linuxserver/unifi-controller

There are also other versions people have released onto Docker Hub - I’m sure if you look around and test some out you’ll find one you like. I usually go for the most reputable one I can find. Mainly because I have the illusion that it is safer and more stable. :slight_smile:

DeadEnd

2 Likes

You can, i’m not doing that atm because I bought a cloud key way back in the day when I had the pi. If I could take back that purchase I would and I would put it on docker.

1 Like

My recent experience with a NUC was starting with ESXi free and then approaching to Proxmox.

I chose to go with a virtualizer because of the very simple way to do VM snapshots and rollbacks in a few seconds.
So, when I go for HA update, but also other SW update, I just create snapshot of the VM and try the update. If anything goes wrong, I just do a rollback and I’m exactly at the same state I was before.
It’s also easy to plan daily VM snapshots, if needed.

1 Like

Yes, I have identified this as a big benefit.

Can docker do something similar? i.e. Snapshot a Container and roll back?

I’ve never had the need to. Hassio snapshots cover home assistant and if the docker container stops working, replace it. It’s the same amount of work as a VM essentially. Downgrading and upgrading are completely different images and they replace each other. It’s not like a VM where it’s installed and uninstalled.

1 Like

Take with a grain of salt - I’m still new.
Docker containers are preset images - you can move from a new version to an old version by just pulling the image with the correct tag.

The important thing is to setup your configuration volume to be persistent.
For example I have a directory on my host that is mapped to the container (as a volume). When I update the image of the container, the configurations are untouched. If I have a problem, I can just re-create the container using the old image (re-download if I deleted it) and be back to the old release.

I hope that makes sense.
** to make sure I am clear in my explanation - docker images and the containers created from them are static - you don’t modify anything in the container - only the configuration files. So these are all that require backing up.

2 Likes

One quick question: Ubuntu Desktop or Server?

I can’t think that I’d ever really need the Desktop UI…….

I’ve done some reading and watched a few YouTube videos and now I think I might be moving towards favouring a Docker setup.