CLI tool to manage cloudflare DNS records
Go to file
2024-04-22 23:13:42 -04:00
vendor libdns/cloudflare: Add Priority to MX records 2024-04-22 23:12:47 -04:00
demo.cast add README, demo and LICENSE 2023-04-10 21:36:32 -04:00
go.mod Set priority 10 to MX records 2024-04-22 23:13:42 -04:00
go.sum Update dependencies and go version 2024-03-31 12:45:54 -04:00
LICENSE add README, demo and LICENSE 2023-04-10 21:36:32 -04:00
main_test.go improve message when no record matches 2024-01-18 16:18:27 -05:00
main.go Set priority 10 to MX records 2024-04-22 23:13:42 -04:00
README.md Update dependencies and go version 2024-03-31 12:45:54 -04:00

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