A simple dynamic DNS service for Route53.
docker run -d \
--name route53 \
-e AWS_ACCESS_KEY_ID= \
-e AWS_SECRET_ACCESS_KEY= \
-e ROUTE53_DOMAIN_A_RECORD= \
-e ROUTE53_UPDATE_FREQUENCY=10800 \
bshaw/route53-dyndns
python3 r53dyndns.py --help
usage: r53dyndns.py [-h] [-r RECORD] [-v]
Update a Route53 hosted A record with with current external IP address of the system.
optional arguments:
-h, --help show this help message and exit
-r RECORD, --record RECORD
specify the DNS A record to update
-v, --verbose enable verbose output
AWS_ACCESS_KEY_ID
- An AWS Access KeyAWS_SECRET_ACCESS_KEY
- An AWS Secret KeyROUTE53_DOMAIN_A_RECORD
- The A record to update, such as myhouse.domain.comROUTE53_UPDATE_FREQUENCY
- The frequency (in seconds) to check for updates. Unless you have very specific needs, consider using a very large value here.
Boto supports multiple ways to supply credentials.
- When running locally / via the command line, it's easy to rely on a shared credentials file
- When using Docker, it is recommended to use environment variables
See the official documentation for more details: https://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.htm
This service performs a DNS query to retrieve your IP address from an OpenDNS resolver. This method arguably faster and more reliable than using an http(s) service.
Similar functionality could be done via the shell using dig: dig +short myip.opendns.com @resolver1.opendns.com;