This is a small node application that periodically checks to see if your external IP address has changed, and if so, updates a DNS record on DigitalOcean. DynDNS services are stupid expensive for what they do. DigitalOcean's domain service is free (for now) and fairly painless to use.
This application uses the ipify.org API to fetch external IP addresses. They say you can use it as much as you like, but please be kind and refrain from pummelling it.
Also, be aware of DigitalOcean's API rate-limiting. This application will make a single query for every domain passed in DO_CHECK_DOMAINS per cron cycle. If your external IP address and the address at DigitalOcean do not match, it will make another query to update the record.
Clone this repository, then:
cd do-dyndns
pnpm i
pnpm start:prodDeploy with image jblyberg/do-dyndns:latest and configure with the variables below
DO_CRON_EXPRESSIONOptional. Default:0 */30 * * * *(30 minutes) Cron expression for how often to check.DO_CHECK_DOMAINSList of domains to check. Should be space-separated domain/record ID pairs. Example:mydomain1.com:63546274 mydomain2.com:54726483DO_API_TOKENDigitalocean API token. Needs to have write access.