Go to file
shad0wflame 355fd256c9 Updated readme.md. 2021-12-26 13:00:39 +01:00
docker Added docker environment. 2021-12-26 12:15:35 +01:00
src Changed module name: "go_daddy_ddns -> records_handler" and added path and file handlers. 2021-12-26 01:07:01 +01:00
.gitignore Added records.json to .gitignore. 2021-12-22 16:19:13 +01:00
Cargo.lock Changed module name: "go_daddy_ddns -> records_handler" and added path and file handlers. 2021-12-26 01:07:01 +01:00
Cargo.toml Changed module name: "go_daddy_ddns -> records_handler" and added path and file handlers. 2021-12-26 01:07:01 +01:00
readme.md Updated readme.md. 2021-12-26 13:00:39 +01:00

readme.md

GoDaddy DDNS

Rust application to update GoDaddy DNS Records via REST API.

It order for the application to work, there needs to be 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
    }
  ]
}