diff --git a/bin/cloudflare-dyndns.sh b/bin/cloudflare-dyndns.sh new file mode 100755 index 0000000..10686cd --- /dev/null +++ b/bin/cloudflare-dyndns.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +# Required env vars +# CLOUDFLARE_ZONE="xxx" +# CLOUDFLARE_DNS_RECORD_ID="xxx" +# CLOUDFLARE_EMAIL="xxx" +# CLOUDFLARE_KEY="xxx" + +# Update Cloudflare DNS record with current detected public IP +# https://api.cloudflare.com/#dns-records-for-a-zone-patch-dns-record + function updateIp { + IPADDR=$(curl -s checkip.amazonaws.com) + echo $IPADDR + + curl -X PATCH "https://api.cloudflare.com/client/v4/zones/$CLOUDFLARE_ZONE/dns_records/$CLOUDFLARE_DNS_RECORD_ID" \ + -H "X-Auth-Email: $CLOUDFLARE_EMAIL" \ + -H "X-Auth-Key: $CLOUDFLARE_KEY" \ + -H "Content-Type: application/json" \ + --data "{\"content\":\"$IPADDR\"}" + } + + updateIp \ No newline at end of file