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
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
- Add/Modify
A, AAAA, CNAME, MX records
- List/Delete records
- 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?
- Keep it simple with minimum dependency and features
- 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