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.