gohorsejobs/docs/CLOUDFLARE.md

2.5 KiB

Cloudflare Agent - GoHorseJobs

Ferramenta para gerenciar DNS e cache do Cloudflare via API.

Configuração

O token da API está em ~/.ssh/cloudflare-token:

Email: yamamoto@rede5.com.br
Zone ID: 5e7e9286849525abf7f30b451b7964ac

Variáveis de Ambiente

export CF_AUTH_EMAIL="yamamoto@rede5.com.br"
export CF_AUTH_KEY="5dcfd89a9d4ec330dede0d4074a518f26818e"
export CF_ZONE_ID="5e7e9286849525abf7f30b451b7964ac"

Comandos Úteis

Listar todos os DNS records

curl -s -H "X-Auth-Email: $CF_AUTH_EMAIL" -H "X-Auth-Key: $CF_AUTH_KEY" \
  "https://api.cloudflare.com/client/v4/zones/$CF_ZONE_ID/dns_records"

Buscar records por nome

curl -s -H "X-Auth-Email: $CF_AUTH_EMAIL" -H "X-Auth-Key: $CF_AUTH_KEY" \
  "https://api.cloudflare.com/client/v4/zones/$CF_ZONE_ID/dns_records?name=gohorsejobs.com"

Criar novo DNS record

curl -s -X POST -H "X-Auth-Email: $CF_AUTH_EMAIL" -H "X-Auth-Key: $CF_AUTH_KEY" \
  -H "Content-Type: application/json" \
  "https://api.cloudflare.com/client/v4/zones/$CF_ZONE_ID/dns_records" \
  -d '{
    "type": "A",
    "name": "test.gohorsejobs.com",
    "content": "1.2.3.4",
    "proxied": false
  }'

Deletar DNS record

curl -s -X DELETE -H "X-Auth-Email: $CF_AUTH_EMAIL" -H "X-Auth-Key: $CF_AUTH_KEY" \
  "https://api.cloudflare.com/client/v4/zones/$CF_ZONE_ID/dns_records/<RECORD_ID>"

Limpar todo o cache

curl -s -X DELETE -H "X-Auth-Email: $CF_AUTH_EMAIL" -H "X-Auth-Key: $CF_AUTH_KEY" \
  -H "Content-Type: application/json" \
  "https://api.cloudflare.com/client/v4/zones/$CF_ZONE_ID/purge_cache" \
  -d '{"purge_everything":true}'

Verificar zone details

curl -s -H "X-Auth-Email: $CF_AUTH_EMAIL" -H "X-Auth-Key: $CF_AUTH_KEY" \
  "https://api.cloudflare.com/client/v4/zones/$CF_ZONE_ID"

Scripts

Script bash helper (colocar em ~/bin/ ou PATH)

#!/bin/bash
# cf.sh - Cloudflare CLI helper

CF_AUTH_EMAIL="yamamoto@rede5.com.br"
CF_AUTH_KEY="5dcfd89a9d4ec330dede0d4074a518f26818e"
CF_ZONE_ID="5e7e9286849525abf7f30b451b7964ac"
BASE_URL="https://api.cloudflare.com/client/v4/zones/$CF_ZONE_ID"

case "$1" in
  ls)
    curl -s -H "X-Auth-Email: $CF_AUTH_EMAIL" -H "X-Auth-Key: $CF_AUTH_KEY" "$BASE_URL/dns_records"
    ;;
  purge)
    curl -s -X DELETE -H "X-Auth-Email: $CF_AUTH_EMAIL" -H "X-Auth-Key: $CF_AUTH_KEY" \
      -H "Content-Type: application/json" "$BASE_URL/purge_cache" \
      -d '{"purge_everything":true}'
    ;;
  *)
    echo "Usage: $0 {ls|purge}"
    ;;
esac