Environment Variables
Environment variables are required to run the process.
VARIABLE | TYPE | Required | COMMENTS |
---|---|---|---|
AWS_ACCESS_KEY_ID |
string |
Yes | AWS Access Key for IAM user |
AWS_SECRET_ACCESS_KEY |
string |
Yes | AWS Secret Access Key for IAM user |
AWS_REGION |
string |
Yes | AWS Region; ex: us-east-1 |
ROUTE53_HOSTED_ZONE_ID |
string |
Yes | AWS Route53 Hosted Zone ID; ex: Z25S75OFY0ERQD |
ROUTE53_DOMAIN |
string |
Yes | AWS Route53 FQDN; ex: home.example.com or multiple domains separated by comma home.example.com, *.home.example.com |
ROUTE53_TYPE |
string |
Yes | AWS Route 53 record type for FQDN; ex: A |
ROUTE53_TTL |
integer |
Yes | AWS Route 53 TTL in seconds for FQDN; ex: 60 |
SEND_EMAIL_SES |
boolean |
No (default: false ) |
Case sensitive, use AWS SES to send notification email. ex: true |
SES_TO_ADDRESS |
string |
Yes if SEND_EMAIL_SES = true |
'To' address for email; ex: admin@example.com |
SES_FROM_ADDRESS |
string |
Yes if SEND_EMAIL_SES = true |
'From' address for email; ex: admin@example.com |
UPDATE_FREQUENCY |
integer |
No (default: 60000 ) |
Interval in milliseconds to check if Public IP has changed; ex: 60000 (which is every minute) |
IPCHECKER |
string |
No (default: ifconfig.co ) |
Public IP checker service. ifconfig.co or ipify.org . See note below for 'opendns' |
LOG_TO_STDOUT |
boolean |
No (default: false ) |
Case sensitive, use to set log to STDOUT rather than to the application log file. ex: true |
TZ |
string |
No (default: UTC , which is default in Alpine Linux) |
Timezone for docker container and logs. See List of tz database time zones, ex: America/New_York |
For help setting up IAM user access see AWS Javascript SDK (v3) - Getting Started.
When multiple domains are specified, same Public IP will be updated for each domain.
As of November 2021, 'opendns' option is not working because the server's certificate chain is incomplete. The latest release temporarily points 'opendns' option to 'ipify.org'. This change will be removed after server config is fixed. More info in this issue.
Minimum ENV Variables
Run with default values
AWS_ACCESS_KEY_ID=[SECRET]
AWS_SECRET_ACCESS_KEY=[SECRET]
AWS_REGION=[REGION]
ROUTE53_HOSTED_ZONE_ID=[value]
ROUTE53_DOMAIN=[value]
ROUTE53_TYPE=[value]
ROUTE53_TTL=[value]
Enable SES Emails
Run with SES Emails. Make sure IAM policy exists to use SES services. See AWS Services
AWS_ACCESS_KEY_ID=[SECRET]
AWS_SECRET_ACCESS_KEY=[SECRET]
AWS_REGION=[REGION]
ROUTE53_HOSTED_ZONE_ID=[value]
ROUTE53_DOMAIN=[value]
ROUTE53_TYPE=[value]
ROUTE53_TTL=[value]
SEND_EMAIL_SES=true
SES_TO_ADDRESS=[value]
SES_FROM_ADDRESS=[value]
Full Configuration
Run with all options (LOG_TO_STDOUT=true
is recommended setting in container)
AWS_ACCESS_KEY_ID=[SECRET]
AWS_SECRET_ACCESS_KEY=[SECRET]
AWS_REGION=[REGION]
ROUTE53_HOSTED_ZONE_ID=[value]
ROUTE53_DOMAIN=[value]
ROUTE53_TYPE=[value]
ROUTE53_TTL=[value]
SEND_EMAIL_SES=[true or false]
SES_TO_ADDRESS=[if SEND_EMAIL_SES = true then value else empty]
SES_FROM_ADDRESS=[if SEND_EMAIL_SES = true then value else empty]
UPDATE_FREQUENCY=60000
IPCHECKER=ifconfig.co
LOG_TO_STDOUT=false
TZ=America/New_York