cloudflare-dns-cli/README.md

62 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

CLI tool to manage cloudflare DNS records
## Installation
### Using [go](https://go.dev)
```bash
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](https://www.docker.com)
```bash
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
```help
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
-s string
Subdomain, e.g. blog. Use @ for root (default "<UNSET>")
-x Delete records of subdomain
```
## Demo
===> [HERE](https://gitea.balki.me/balki/cloudflare-dns-cli/src/branch/main/demo.cast) <===
## Similar
* https://github.com/earlchew/cloudflare-cli
* https://github.com/tech-otaku/cloudflare-dns
* (official) https://github.com/cloudflare/python-cloudflare#cli
## Why another cli?
1. Keep it simple with minimum dependency and features
2. Uses [libdns](https://github.com/libdns) library maintained by [caddy](https://caddyserver.com) team.
libdns provides uniform api for many dns providers. Mostly `s/cloudflare/XYZ/` should work when moving to a different dns provider