The detailed version

Memory Card Preparation:

Insert MicroSD memory card into a computer

Format it

Download the Raspbian OS image from https://www.raspberrypi.org/downloads/raspbian/

Open Etcher

Using Etcher select the downloaded Raspbian image

Select the drive that corresponds to your memory card

Click flash!

Install Docker

From the Raspbian Desktop launch Terminal. Now, using terminal install Docker:

Official blog post on Docker support for Raspberry Pi can be found here.

Now, reboot it:

sudo reboot

Install Home Assistant

Visit the Raspberry Pi 3 Home Assistant Repository on the Docker Hub to determine the latest version available. To start Home Assistant is as simple as:

docker run -d --name assistant --net host -v /home/pi/home_assistant:/config -v /etc/localtime:/etc/localtime:ro --restart always homeassistant/raspberrypi3-homeassistant:0.76.2

Create a tunnel & token

Open https://my.webhookrelay.com/tunnels in your browser and click “create tunnel”. If you are on a free plan, leave ‘subdomain’ and ‘crypto’ fields empty as they are only available for the paid plans, you will get auto-generated subdomain.

We will also need a token for authentication. Go to https://my.webhookrelay.com/tokens and create a new token key & secret pair:

Keep secret somewhere safe as it is now encrypted and cannot be recovered. If you lose it, just generated a new pair.

Start webhookrelayd

To start a tunneling daemon, run (just replace key and secret with your own):

docker run --name whr-relayd --net host --restart always -d webhookrelay/webhookrelayd-arm:latest --mode tunnel -t rpi -k your-key -s your-secret

Conclusion

That’s it, now you can access your Home Assistant remotely, without any need to configure your router, get static IP or buying a domain. Tunnels can also be protected by a basic auth but it would be better if you just enabled authentication for your Home Assistant. Check for more information in the official docs.

Also, keep in mind that since Webhook Relay is doing the TLS termination, in theory traffic could be intercepted (however, it’s not. Only webhooks can be recorded and replayed). To address this potential issue, we will be introducing HTTPS pass-through mode, where an encrypted traffic will be routed through the service and only being terminated at the HA instance.

P.S. If you are a developer, engineer or just a techie, please try out Webhook Relay service, I would love to hear your feedback! ❤

P.S.#2 I am currently experimenting with hass.io plugin to make it really easy integrate your home automation instance with IFTTT or Zapier services, will write a blog post on that soon too :)