flarectl in a docker container for using it in hopefully secure way :).
Otherwise we should try to secure it more.
Create an directory to save your credentials
mkdir -p $HOME/.cloudflare
Now save you credentials in an env file to have them presisent
cat > $HOME/.cloudflare/env <<EOF
CF_API_KEY=abcdef1234567890
CF_API_EMAIL=someone@example.com
EOF
USAGE:
docker run -it --rm --env-file $HOME/.cloudflare/env solidnerd/cloudflare \
--version
docker run -it --rm --env-file $HOME/.cloudflare/env solidnerd/cloudflare \
--help
USAGE | type A record:
docker run -it --rm --env-file $HOME/.cloudflare/env solidnerd/cloudflare \
dns create-or-update --zone mysite.com --name mysite.com --proxy --type A --content 11.22.33.44
USAGE | type CNAME record:
docker run -it --rm --env-file $HOME/.cloudflare/env solidnerd/cloudflare \
dns create-or-update --zone mysite.com --name api.mysite.com --proxy --type CNAME --content mysite.com
COMMANDS:
list, l List DNS records for a zone
create, c Create a DNS record
update, u Update a DNS record
create-or-update, o Create a DNS record, or update if it exists
delete, d Delete a DNS record
help, h Shows a list of commands or help for one command
OPTIONS:
--zone zone name
--name record name
--content record content
--type record type
--ttl "1" TTL (1 = automatic)
--proxy proxy through CloudFlare (orange cloud)
USAGE:
docker run -it --rm --env-file $HOME/.cloudflare/env solidnerd/cloudflare \
info
COMMANDS:
info, i User details
update, u Update user details
help, h Shows a list of commands or help for one command
The intention of this container is that it's a tool container so let him a tool container. For this we create an alias to have an normal feeling that this is a "tool" and not a container :)
For a temporay state use the following command
alias flarectl='docker run -it --rm --env-file $HOME/.cloudflare/env solidnerd/cloudflare'
This make it's persistent in your BASH Shell.
echo "alias flarectl='docker run -it --rm --env-file $HOME/.cloudflare/env solidnerd/cloudflare'" >> $HOME/.bashrc
This make it's persistent in your ZSH Shell.
echo "alias flarectl='docker run -it --rm --env-file $HOME/.cloudflare/env solidnerd/cloudflare'" >> $HOME/.zshrc
flarectl d c --zone example.com --name test.example.com --type CNAME --content example.com
flarectl dns delete test.example.com