cloudflare-dns-cli/README.md

55 lines
1.5 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
```bash
go install go.balki.me/cloudflare-dns-cli@latest
```
### Using docker
```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/"
```
## 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