@moodboom/cloudflare-sync-dns
v6.1.8
Published
A script to track external IP, and update cloudflare DNS when a change is observed. A command is provided that can be called often from cron to monitor for and act on IP changes.
Downloads
505
Readme
cloudflare-sync-dns
This command can be called regularly (e.g. via cron) to keep your DNS records up to date when your ISP assigns you a new IP address.
Specifically, the script will:
- maintain a local copy of the IP that was last set in your cloudflare DNS records
- check your external IP address, comparing it to the cloudflare DNS record
- if the external IP has changed:
- load cloudflare settings and keys from a local JSON file
- call the cloudflare API to get all DNS record ids
- call the cloudflare API for each DNS record and update it to the new external IP
- optionally run firewall and LAN scripts, and ensure all hosts are resolving
- only after everything is verified, update the local copy of the IP
Installation
- Install a recent version of node.js
- Install this module globally
- a) You can clone the repository then do an [npm install -g]
- b) Or you can just do a global install [npm install -g cloudflare-sync-dns]
- Copy cloudflareSettings-template.json (in project folder) outside of the module to where you store configurations, and adjust accordingly
- Specify the settings file when you run, eg: cloudflare-sync-dns /path/to/my/settings.json
- Add a cron job to run the script regularly. Every minute should work well, as most of the time it just does a local check.
NOTE that you can use this nvm-based bash script to run npm commands from cron:
#!/bin/bash
export NVM_DIR="/home/myhome/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
cloudflare-sync-dns /path/to/settings.jsonNote there is also a command console for a few admin commands.
Usage: csd [command]
cmd+options short description
sync [sy] (admin-only) sync this module, ie: pull, commit, tag, push, publish to npm public-ip [ip] display the current public IP address
Most recent commits... 9a8efb5 4 months ago Provide command line public ip extraction HEAD -> mai.. Michael Behrns-Miller [cast] 732bab1 4 months ago Upgrade npm to 22.18 and modules tag: 6.1.6 Michael Behrns-Miller [cast] 02756ac 8 months ago Firewall script remove exit code check tag: 6.1.5 Michael Behrns-Miller [cast] f3eef17 11 months .. Really Comment on running node command from cron tag: 6.1.4 Michael Behrns-Miller [cast]
Version 6.1.8
