cloudflare-dns-cli/README.md

1.8 KiB

CLI tool to manage cloudflare DNS records

Installation

Using go

go install go.balki.me/cloudflare-dns-cli@latest

# Run directly without installing
go run go.balki.me/cloudflare-dns-cli@latest -h

Using docker

mkdir -p $HOME/bin
docker run --pull=always --rm -v "$HOME/bin:/op" golang sh -c "go install go.balki.me/cloudflare-dns-cli@latest && install -o $(id -u) -g $(id -g) /go/bin/cloudflare-dns-cli /op/"

# Run directly without installing
docker run --pull=always --rm golang go run go.balki.me/cloudflare-dns-cli@latest -h

Features

  1. Add/Modify A, AAAA, CNAME, MX records
  2. List/Delete records
  3. Save all records in JSON format

Usage

Usage of cloudflare-dns-cli:
  -a string
        Cloudflare API Token. env var: CF_TOKEN
  -c string
        CNAME target
  -d string
        Domain name, e.g. example.com. env var: DOMAIN
  -i value
        IP address (default 127.0.0.1)
  -m    Set mx record with cname value
  -o string
        Path to save all records as json, e.g. ./records.json, '-' for stdout
  -s string
        Subdomain, e.g. blog. Use @ for root (default "<UNSET>")
  -x    Delete records of subdomain

Demo

===> HERE <===

Similar

Why another cli?

  1. Keep it simple with minimum dependency and features
  2. Uses libdns library maintained by caddy team. libdns provides uniform api for many dns providers. Mostly s/cloudflare/XYZ/ should work when moving to a different dns provider