dbdcf5a3ab | ||
---|---|---|
docker | ||
src | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
readme.md |
readme.md
GoDaddy DDNS
What is this?
It's a Rust application to update GoDaddy DNS Records via REST API.
Usage
It order for the application to work, there needs to be:
- Environment variables:
DOMAIN
- The domain to updateKEY
- GoDaddy API KeySECRET
- GoDaddy API SECRET
Info about how to generate the KEY and the SECRET can be found here: https://developer.godaddy.com/getstarted
- A file called
records.json
placed in$HOME/.godaddy-ddns
with the following structure:
{
"records":
[
{
"name": string,
"record_type": string,
"data": string, // Optional
"port": number, // Optional - SRV Only.
"priority": number, // Optional - MX and SRV Only.
"protocol": string, // Optional - SRV Only.
"service": string, // Optional - SRV Only.
"ttl": number,
"interpolate": boolean, // Optional
"weight": number // Optional - SRV Only.
}
]
}
Fields of interest
- name:
{string}
- Name of the record. - record_type:
{string}
- Type of the record (A, AAAA, CAA, CNAME, MX, NS, SRV, TXT). - data:
{string}
(optional) - Value of the record. (Useful in case of a hard-coded record or interpolation) - interpolate:
{boolean}
(optional) - When set to true, the application will write the current ip in the {ip} tag of the data field.
Example of use (with a given IP of 8.8.8.8) :
{
"records": [
{
"name": "@",
"record_type": "A",
"ttl": 600
},
{
"name": "@",
"record_type": "TXT",
"ttl": 3600,
"data": "\"v=spf1 ip4:{ip} -all\"", // Result: "v=spf1 ip4:8.8.8.8 -all"
"interpolate": true
}
]
}