DDNS Raspberry PI - DigitalOcean

Script desenvolvido para ser utilizado no Raspberry em conjunto com uma Cron ou um outro serviço de execução automática.

Etapas executadas no script abaixo:

  1. Obtém o seu ip público pelo link da AmazonWS
  2. Recupera o registro a ser atualizado baseado no subdomínio
  3. Atualiza o IP do registro

Requerimentos:

#!/bin/sh

DIGITALOCEAN_TOKEN=TOKEN_GERADO_NA_DIGITAL_OCEAN
DOMAIN=dominio.com
SUBDOMAIN=subdominio

CURRENT_IP=$(curl -s -X GET "https://checkip.amazonaws.com")
CURRENT_DATE=$(date +"%x %X")

RECORD_ID=$(curl -s -X GET \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
     "https://api.digitalocean.com/v2/domains/$DOMAIN/records" \
     | jq ".domain_records[] | select( .name == \"$SUBDOMAIN\") | .id")

curl -s -X PUT \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
     -d "{\"data\":\"$CURRENT_IP\"}" \
     "https://api.digitalocean.com/v2/domains/$DOMAIN/records/$RECORD_ID" \
     | jq -r '.domain_record | "'"$CURRENT_DATE"': O domínio [\(.type)] ~\(.name).'"$DOMAIN"'~ foi alterado para ~\(.data)~ [ttl: \(.ttl)]"'