If your server do not have static IP, i.e. When Public IP of your server / router keep changing, This will automatically update new IP to Namecheap record.
-
Easy to setup
-
Lightweight
-
No cronjob configuration required
-
Logs for visibility
-
Open source
-
Change nameserver of you domain to BasicDNS or PremiumDNS or FreeDNS.
Namecheap Account -> Domain List -> Manage -> Domain -> NAMESERVERS -> Choose BasicDNS from dropdown
-
Enable Dynamic DNS for your domain from Namecheap.
Namecheap Account -> Domain List -> Manage -> Advanced DNS -> Dynamic DNS -> Toggle Status
-
Copy the Dynamic DNS password which is generated after enabling Dynamic DNS. Keep it safe and handy.
-
Add a record of type
A + Dynamic DNS
with required host name(s). -
Install docker on server.
-
Run below command
Suppose, You need DDNS for server.example.com
docker run --name server.example.com -d --restart unless-stopped -e NC_HOST='server' -e NC_DOMAIN='example.com' -e NC_PASS='DynamicDDNSPa2w0rd' linuxshots/namecheap-ddns
Here,
NC_HOST
are the host name(s) added in the Namecheap record, seperated by a comma.
NC_DOMAIN
is your domain name.
NC_PASS
is your Dynamic DDNS password which is generated from Namecheap.
- Check the log
docker logs server.example.com
- To stop, start and remove DDNS.
docker stop server.example.com # To stop
docker start server.example.com # To start after its stopped
docker rm server.example.com -f # To remove
To build your own image
-
Clone this repo
-
Run docker build
# Replace OS and ARCH values with valid values of GOlang environment variables GOOS and GOARCH.
docker build --build-arg VERSION=1.0.0 -t linuxshots/namecheap-ddns .
NOTE: This sets the TTL to Automatic i.e. 30 minutes. Currently, There is no way provided by Namecheap to set custom TTL in Dynamic DDNS.