Simple DynDNS service for update AWS Route53 backend. Open Source Java project under Apache License v2.0
Current Stable Version is 1.0.0
# SystemProperty / Default value
org.javastack.jupdate53.config.path=/etc/
# whitelist
# fqdn=zoneid
name1.acme.org=AWSZONEID...A
name2.acme.com=AWSZONEID...B
See AWS documentation in DefaultCredentialsProvider and developer-guide.
If your plan to run webapp inside EC2, you can use EC2-role. This is a sample policy:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"route53:Get*",
"route53:List*",
"route53:TestDNSAnswer"
],
"Resource": [
"*"
]
},
{
"Effect": "Allow",
"Action": "route53:ChangeResourceRecordSets",
"Resource": "arn:aws:route53:::hostedzone/YOUR-AWS-ZONE-ID"
}
]
}
The API is very simple:
# Method: POST
# Path: /update
# Content-Type: application/x-www-form-urlencoded
# Parameters:
# - zoneid=${AWSZONEID}
# - fqdn=${fully-qualified-domain-name}
# Optionals:
# - ttl=${SECONDS}
# - ip=${IPv4}
# Example: curl -i -d "zoneid=AWSZONEID...A&ttl=3&fqdn=name1.acme.org" ${BASE_URL}/update
Return something like this:
HTTP/1.1 200 OK
Cache-control: private
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 34
{ "status": "PENDING:127.1.1.42" }
Current hardcoded values:
- Default config path: /etc/
- Default whitelist config name: org.javastack.jupdate53.whitelist.properties
- Default update "too-fast" (seconds): 30
- Default wait-insync-route53 (seconds): 60
not used
Inspired in DynV6 and No-IP, this code is Java-minimalistic version.