Installing HASSIO on Pine64 with Docker [Updated 17/11/18]


Home Assistant is awesome.
It allows you to do lots of cool stuff with automation and brings together otherwise disjointed smart home components into one system that can talk to them all (ok most). From there you can automate stuff, script stuff, control stuff, and just do lots of stuff with all your kit.

The easiest way to get started and run HASSIO is probably on a RaspberryPi as it's well documented and there are pre-built OS images, but if you are like me, you don't like normal and probably like to learn a bit as you go by using practical applications of your knowledge.

I backed the Pine64 Kickstarter way back and still had it hanging around unused in a box somewhere because most of my projects require a bit more grunt so I tend to use actual servers. The Pine64 however would be able to save me some cash while starting my home automation project, so I dug it out, dusted it off and got to work.

I figured though that I should document this for anyone else that devices to install HASSIO on a Pine64 because the documentation for it is.. lacking to say the least. Maybe at some point it will get re-written but the project right now seems to be expanding faster than documentation can keep up.

Operating system and component installation

For the OS I chose DietPi
The reasons for choosing DietPi over any other distro available for the Pine64 were;
  • Lightweight
  • Well maintained
  • Debian based (for familiarity)
I'm not going to re-write the install instructions for DietPi installation as the DietPi documentation works fine.

Once DietPi is installed and updated, you'll need to install the required dependencies with the following;
apt-get install lsb-release avahi-daemon socat jq

Install Docker
curl -sSL https://get.docker.com | sh

UPDATE: 17/11/18
So the latest version of DietPi doesn't have overlay enabled in the Kernel which kinda breaks things.. a lot. OK it may be enabled, but at the very least docker isn't able to pickup that it is.
This article also has the same issue and a workaround for the latest version not working.
To solve this we need to make some docker startup overrides

mkdir -p /etc/systemd/system/containerd.service.d/

cat << EOF > /etc/systemd/system/containerd.service.d/override.conf
[Service]
ExecStartPre=
EOF

systemctl daemon-reload

systemctl start docker

Then run the install script
curl -sL https://raw.githubusercontent.com/home-assistant/hassio-build/master/install/hassio_install | bash -s -- -m qemuarm-64

Now you just have to wait a good long while as HASSIO installs (well sorts out the docker images at least)

Note: The first start of HASSIO will take some time, the entire process from scratch on my Pine64 (2GB RAM model) took around 30-40 minutes to get it all installed.