Copies all A
, CNAME
, TXT
and MX
records from a zone file to Digital Ocean and Route 53, so they serve as a backup nameservers.
- NodeJS 14.x+
yarn global add zone-replicator
- Copy
config.example.json
toconfig.json
and apply necessary changes
There are two parts to this script, the sender and the receiver. The sender sends a raw DNS Zone file to stdout, the receiver listens for input op stdin, so these scripts can be used in tamdem through a pipe.
The convenience script duplicate.sh
demonstrated below, combines these two commands.
⚠️ The presented commands nuke all records of types A, CNAME, TXT and MX on the target zone on your Digital Ocean account without warning!
CLOUD_SYNC_CONFIG=/path/to/config.json bin/duplicate.sh <yourdomain.com>
Or after installing the npm package:
# duplicate
CLOUD_SYNC_CONFIG=/path/to/config.json cfdd <yourdomain.com>
# which expands to
CLOUD_SYNC_CONFIG=/path/to/config.json cfd zone:read <yourdomain.com> | cfd zone:write
Or in a Docker container, after copying docker-compose.example.yml
to docker-compose.yml
and applying the necessary changes.
docker-compose run replicator duplicate <yourdomain.com>
See the contributing guide to learn how to contribute to the repository and the development workflow.
Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
MPL-2.0