A Rust utility to keep your GoDaddy DNS records synchronized with your dynamic IP. Ideal for home servers and environments with dynamic IPs.
- Update A or AAAA records on GoDaddy to your current IP.
- Supports both IPv4 and IPv6 addresses.
- Configurable update intervals.
- Secure API key and secret management.
godaddy-dyndns [OPTIONS] --api-key <API_KEY> --api-secret <API_SECRET> --record-name <RECORD_NAME> --update-time <UPDATE_TIME> --domain <DOMAIN>
-i, --ip-v6
- Use IPv6 and AAAA records.--api-key <API_KEY>
- Your API-Key.--api-secret <API_SECRET>
- Your API-Secret.-r, --record-name <RECORD_NAME>
- The name of the record to update.-u, --update-time <UPDATE_TIME>
- Time in seconds between updates.-d, --domain <DOMAIN>
- Domain to update.-h, --help
- Print help information.-V, --version
- Print version information.
- Rust and Cargo installed on your machine.
- A GoDaddy account with API access.
- Clone the repository:
git clone https://github.com/Lexxn0x3/godaddy-dyndns.git
- Change into the project directory:
cd godaddy-dyndns
- Build the project:
cargo build --release
Create a .env
file in the project root and fill in your API key, secret, and other configurations:
API_KEY=your_api_key_here
API_SECRET=your_api_secret_here
RECORD_NAME=your_record_name
DOMAIN=your_domain.com
UPDATE_TIME=300 # time in seconds
Alternatively, you can run the program directly with command line arguments for temporary or one-time configuration needs.
For persistent configurations, run the program using:
cargo run --release
For one-time configurations, use:
cargo run --release --api-key your_key --api-secret your_secret --record-name "example" --update-time 600 --domain "example.com"
Update the DNS record for example.com
every 600 seconds:
godaddy-dyndns --api-key <your_key> --api-secret <your_secret> --record-name <example> --update-time 600 --domain <example.com>
Contributions, issues, and feature requests are welcome!
Give a ⭐️ if this project helped you!
Distributed under the GPL-2.0 License. See LICENSE
for more information.