DuckDNS
DuckDNS

First I have to fix so that it is possible to access Home Assistant from the outside without entering an IP address. My ISP does not provide a static IP address so I choose to use DuckDNS.
DuckDNS is a free service which will point a DNS (sub domains of duckdns.org) to an IP of my choice. The team behind DuckDNS consists of two software engineers who have each worked in the industry for many years.
I start by going to their website https://www.duckdns.org/.
DuckDNS only offers oAuth logins (e.g. Google), I use my Google account.

I enter my domain of choice in the box and click “add domain”. If the domain is available, it will be registered to my account. While I am on this page, I make note of my account token. It is found in the upper part of the page after the domain is added successfully.

In order for the DuckDNS server to know when my IP address changes, I need to setup a custom service provider
I have an Edge router and after I login I click on the “Services” tab and choose “DNS”.

Service: My Edge router do not have DuckDNS as a choice. Instead I select “custom -” and fill in “duckdns” in the box to the right.
Hostname: Is the prefix to my domain.
Login: is “nouser”, it is actually “nouser” nothing else.
Password: Is my DuckDNS account token, found on my DuckDNS page after logging in.
Protocol: dyndns2
Server: www.duckdns.org

After that is done, I click on “Apply” and then on “Force Update” to send my ip to DuckDNS.
Now I can reach the router from outside but not Home Assistant on my internal network. I solve this by clicking on the “Firewall/NAT” tab in the router and select “Port Forwarding”.
There I add two port forward.

  1. Original port: 8123
    Protocol: both TCP and UDP
    Forward-to address: 192.168.1.190
    Forward-to port: 8123
    Description: Home Assistant
  1. Original port: 80
    Protocol: both TCP and UDP
    Forward-to address: 192.168.1.190
    Forward-to port: 80
    Description: HTTP

I test that it works by entering my Home Assistant DuckDNS domain in the browser. And it works 🙂