A very simple and minimal DDNS client that checks if your public IP has changed and updates a specified DNS zone.
- create a
config.toml
file in/etc/simplest-ddns-client/
- install Rust
- clone this repo
- change
provider
inconfig.toml
to one of these providers - run
cargo build --release
- binary will be available in
target/release/
This file will contain all the information needed (generally authentication stuff) to update your DNS records.
The first entry in this file is the initial address the client will base its queries from: initial_ip
.
There is an example file located at the root dir called example_config.toml
.
A complete config.toml
file for OVH looks something like this:
provider = "ovh"
initial_ip = "1.1.1.1"
[ovh]
user = "your-ovh-user" # the user you registered on ovh
password = "ovh-password" # the password you chose on ovh
hostname = "hostname.example.com" # the hostname you registered as dynamic on ovh
Refer to this guide for more.
A complete config.toml
file for CloudFlare looks something like this:
provider = "cloudflare"
initial_ip = "1.1.1.1"
[cloudflare]
apikey = "your-apikey" # API Token generated from the User Profile 'API Tokens' page
zoneid = "zoneid" # domain's zone id
hostname = "hostname.example.com" # the hostname you want to update
Refer to this guide to get zoneid
.
A complete config.toml
file for DuckDNS looks something like this:
provider = "duckdns"
initial_ip = "1.1.1.1"
[duckdns]
token = "your-token" # the token duckdns gives to you
subdomain = "your-subdomain" # the subdomain you chose on duckdns
provider = "ionos"
initial_ip = "1.1.1.1"
[ionos]
prefix = "your-public-prefix" # the public prefix IONOS gives to you
secret = "your-secret" # the secret key IONOS gives to you
hostname = "hostname.example.com" # the hostname you want to update
Refer to this guide to get an apikey.