Dynamic DNS (DDNS) provides a consistent domain name for your UniFi controller when you don't have a static public IP address. This is essential for Spotipo captive portal integration, as the system needs a reliable hostname to communicate with your controller even when your ISP changes your public IP address.
This guide walks you through creating a free Duck DNS subdomain and configuring DDNS on your router using either the graphical interface or CLI commands.
What you'll accomplish:
Create a free Duck DNS subdomain for your controller
Configure DDNS settings on your router
Ensure consistent external access to your UniFi controller
Enable Spotipo captive portal integration without static IP
What you'll need:
Router with DDNS support
Duck DNS account (free, sign in with Google/GitHub)
Admin access to your router configuration
Why and when to use Dynamic DNS?
For setting up a Spotipo captive portal with UniFi controllers, Dynamic DNS is necessary if you don't already own a Static public IP address or domain. It allows you to create a domain name that automatically updates to reflect your current public IP address, ensuring that the UniFi controller can be accessed externally even when the public IP changes.
How to get a DDNS subdomain?
For our application, we recommend using Duck DNS if you don't have experience with other tools, because it is free and easy to use. If you prefer another DDNS provider, that's fine too—just ensure the DDNS settings are correctly configured in your router. We will only provide configuration instructions for Duck DNS, as settings may differ with other providers.
Using Duck DNS
First, you need to sign in to Duck DNS. You can do that with any option available (Google, GitHub, etc.)
Once you sign in, you can enter your sub domain name into the required field. It can be any name you want, as long as it is not taken already.
Duck DNS will provide a token for authentication. This token will be used in the router's DDNS configuration
Configuring Router
Now that you have your subdomain name and token, you can continue with configuring your router.
Graphical User Interface
You need to log in to your router and find DDNS Function there. It is sometimes listed under Dynamic DNS, DNS, Remote Access, Hostname, etc. (varies by router).
From there, you need to configure a couple of settings.
Make sure that the service provider is dyndns.
Most importantly, Duck DNS doesn't use classic User Name/Password combination, rather, it uses Token as authentication.
If your router asks for User Name/Password combination, leave the user name field blank and enter token number in the password field.
If the user name is mandatory as in the picture below, place token information in that field instead.
It is also possible that both fields are mandatory. In that case, place token information in both fields.
Example of configuration is shown below.
NOTE: If you are using a different DDNS provider, your configuration will vary. Make sure to check configuration settings from your DDNS provider's site.
CLI Based Interface (Cisco IOS example)
enable configure terminal! Define the DDNS update method ip ddns update method duckdns HTTP host http://domainname.duckdns.org path /update?domains=<your_domain>&token=<your_token>&ip= port 443 use-vrf default add-header "Host: domainname.duckdns.org" exit! Configure the DDNS settings under the interface interface <Your_Interface> ip address dhcp ip ddns update hostname domainname.duckdns.org ip ddns update duckdns! Save the configuration end write memory
NOTE: Replace "domainname" part of address with your own domain name.
Verify the Configuration
Check that the DDNS is active and working.
DDNS Now Configured
After setting up your Duck DNS subdomain and configuring DDNS on your router, your controller is accessible via a consistent domain name regardless of IP changes. Verify the configuration is working before proceeding with Spotipo setup.
What to do next:
Verify DDNS is updating correctly in Duck DNS dashboard
Use your subdomain (yourdomain.duckdns.org) when configuring Spotipo
Test external access to ensure the domain resolves to the current IP
Authentication tip: Duck DNS uses a token instead of username/password. If your router requires both fields, enter the token in the password field (leave username blank if possible, or enter token in both fields if both are mandatory).
Still having trouble with DDNS setup? Contact Spotipo support via live chat or email us at [email protected].


