IMPORTANT NOTICE
The publicly hosted endpoint at
https://synologyddnsupdater.azurewebsites.netwill be shut down on December 31st, 2025. Please migrate to the self-hosted container image (craigktreasure/synologyddnsupdater) available on Docker Hub. See the hosting instructions below for details.
This repository contains an ASP.NET Core application used to adapt Namecheap DDNS update responses to something that a Synology Customized DDNS Provider expects. This is done by calling the Namecheap API directly on your behalf with the values you provide and then adapting the response.
The implementation of this project was heavily inspired by this blog post.
While the solutions from the various blog posts (see here and here) work great, updates to Synology DSM often wipe out some of the configurations breaking the DDNS configuration. This can leave your domain pointing to an incorrect IP address and certificates failing to renew due to resolution failures. By hosting a dedicated DDNS update adapter, we can use a Customized DDNS Provider out of the box and not worry about custom configuration getting cleared by Synology DSM updates.
The first things you need to do are to enable DDNS on your domain and to setup a host record.
A prebuilt container image (craigktreasure/synologyddnsupdater) is available on Docker Hub for easy self-hosting. See the hosting instructions below to learn how to configure and run the service. Once you have the service running, adjust the host value in the following instructions to match your deployment.
Follow the instructions for Setting up a Customized DDNS Provider to setup a new Customized DDNS Provider using the following values:
- Service Provider:
Namecheap-<domain identifier>(Whatever you want really. It's just a name.) - Query URL:
https://<your-host>/namecheap/ddns/update?host=__USERNAME__&domain=__HOSTNAME__&password=__PASSWORD__&ip=__MYIP__
Replace <your-host> with the hostname or IP address where you're hosting the service.
When configuring your DDNS, use something like the following:
| DDNS form value | Value | Example |
|---|---|---|
| Hostname | Namecheap domain name | yourdomain.tld |
| Username/Email | Namecheap host name | @ |
| Password/Key | Namecheap DDNS password | |
| External Address (IPV4) | Auto (your external IP address) |
Note: I would have preferred to use the Namecheap domain name for the "Username/Email", but the DDNS form doesn't allow
the use of the @ symbol in the "Hostname" field.
You can follow the instructions here to learn how to configure and run the service yourself.