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.
An instance of this application is hosted at https://synologyddnsupdater.azurewebsites.net, but you can easily build and deploy the application yourself if you so choose. If you deploy it yourself, you would need to adjust the host value in the following instructions.
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://synologyddnsupdater.azurewebsites.net/namecheap/ddns/update?host=__USERNAME__&domain=__HOSTNAME__&password=__PASSWORD__&ip=__MYIP__
When configuring your DDNS, use something like the following:
DDNS form value | Value | Example |
---|---|---|
Hostname | Namecheap domain name | yourdomain.tld |
Username/Email | Namecheap host hame | @ |
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.