Aaron Presley

Script to Update a Digital Ocean A Record March 7, 2015

I've been using a subdomain to point to my home IP address for years now. It's great, but pretty annoying when my IP address changes randomly. I decided I wanted a bash script to keep my Digital Ocean A Record updated with my external IP.

I've setup a cronjob on my media server with the following code. Now it updates DigitalOcean hourly with my external IP without me having to worry about it.

# Your domain ID
# The subdomain of your A Record
# The numeric record to update (you can find it by checking the HTML on the DNS edit page)
# Your API Key
##### All the work happens below here... don't change #####
ip="$(curl  http://ipecho.net/plain)"
echo content="$(curl -H "Authorization: Bearer $api_key" -H "Content-Type: application/json" \
                 -d '{"name": "'"$subdomain"'", "data": "'"$ip"'"}' \
                 -X PUT "https://api.digitalocean.com/v2/domains/$domain_id/records/$record_id")"

Credit to this GitHub post.