My Sosh Internet connection uses a dynamic public IP address, so it can change periodically. To keep a stable hostname pointing to my home network, I configured OVH DynHost.

I already had a custom domain managed by OVHcloud, and the Sosh Livebox supports OVH DynHost natively. This means I do not need to run a separate dynamic-DNS container on Unraid.

Configuration overview

I created a dedicated hostname :

homesweethome.ovh

In the OVHcloud control panel, I:

  1. Opened the DNS management page for my domain.
  2. Created a DynHost record for the hostname.
  3. Created a dedicated DynHost username and password.

I then opened the Livebox administration interface:

http://192.168.1.1

Under:

Advanced settings → Network → DynDNS

I selected OVH-dynhost and entered:

Hostname:  home.example.com
Username:  the dedicated DynHost username
Password:  the dedicated DynHost password

The Livebox now updates the OVH DNS record whenever its public IP address changes.

Alternative setup with deSEC

I didn't keep that setup but it was also interesting. deSEC is a German nonprofit focused on secure, privacy-conscious DNS hosting. Its terms state that it collects as little data as possible.

Typical router configuration:

Provider/protocol: DynDNS2 / Custom
Update server:     update.dedyn.io
Hostname/user:     homesweethomededyn.io
Password:          DESEC_TOKEN
Connection:        HTTPS

It would then need an unraid docker container: qdm12/ddns-updater. It is not maintained by deSEC itself, but it has native deSEC support, a small Docker image, a Web UI, health checks, and x86-64 support.

Unraid container settings

In Docker → Add Container:

Name:          deSEC-DDNS
Repository:    ghcr.io/qdm12/ddns-updater
Network Type:  Bridge
WebUI Port:    8000 -> 8000
Appdata Path:  /mnt/user/appdata/desec-ddns -> /updater/data
Restart:       unless-stopped

Port 8000 is only for the local status Web UI; the updater itself requires no inbound Internet-facing port. The documented persistent directory is /updater/data.

Create:

/mnt/user/appdata/desec-ddns/config.json

With:

{
  "settings": [
    {
      "provider": "desec",
      "domain": "homesweethome.dedyn.io",
      "token": "DESEC_TOKEN",
      "ip_version": "ipv4"
    }
  ]
}

That configuration format is directly supported by the updater.

Because the container normally runs as UID 1000, we may need this from the Unraid terminal:

mkdir -p /mnt/user/appdata/desec-ddns
chown -R 1000:1000 /mnt/user/appdata/desec-ddns
chmod 700 /mnt/user/appdata/desec-ddns
chmod 600 /mnt/user/appdata/desec-ddns/config.json

Keeping the token in the mounted file rather than a CONFIG environment variable is preferable, since environment variables are easier to expose through Docker inspection and management interfaces.