4 releases
0.3.0 | Oct 9, 2024 |
---|---|
0.1.2 | Aug 31, 2024 |
0.1.1 | Aug 31, 2024 |
0.1.0 | Aug 28, 2024 |
#885 in Network programming
183 downloads per month
23KB
433 lines
━━━━ ❖ ━━━━
❖ ZenDNS
ZenDNS is an easy-to-use commandline utility to manage DDNS on Cloudflare, Namecheap, and DuckDNS
❖ Installation
Shell
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/dotzenith/zendns/releases/latest/download/zendns-installer.sh | sh
Brew
brew install dotzenith/tap/zendns
Powershell
irm https://github.com/dotzenith/zendns/releases/latest/download/zendns-installer.ps1 | iex
Cargo
cargo install zendns
Binaries
Pre-Compiled binaries for linux, mac, and windows are available in Releases
Source
- First, install rust
git clone https://github.com/dotzenith/ZenDNS.git
cd ZenDNS
cargo build --release
./target/release/zendns
❖ Usage
Manage Dynamic DNS with serenity
Usage: zendns [OPTIONS] --config <CONFIG>
Options:
-c, --config <CONFIG> The yaml config file to use
-l, --log <LOGFILE> Where the output will be logged, uses stdout if not used
-f, --force Overrides the check for caching
-h, --help Print help
-V, --version Print version
Normal
zendns --config /path/to/config.yaml
Dedicated Logfile
zendns --config /path/to/config.yaml --log /path/to/logfile
❖ Configuration
❖ Cloudflare
Create an API token for your zone in Profile Settings. The token must have Zone::DNS::Read
and Zone::DNS::Edit
permissions.
Zone Resource
can be set to Specific Zone
and set to the zone you want to update. If you would like to use this same token for all other zones, please select All Zones
.
Leave Client IP Address Filtering
as is, and define how long this token should stay valid for in the TTL
section.
The configuration for Cloudflare looks as follows:
cloudflare:
- key: "your-api-key"
zone: "your-website.com"
hostname: "your-hostname" # `@` if you want to update `your-website.com`
ttl: 1 # 1 for auto, otherwise between 60 and 86400
proxied: false
❖ Namecheap
See Namecheap's Guide on enabling DDNS
The configuration for Namecheap looks as follows:
namecheap:
- password: "your-password-key"
host: "your-hostname"
domain: "your-website.com"
❖ DuckDNS
Copy the token
from DuckDNS profile page
The configuration for DuckDNS looks as follows:
duckdns:
- token: "your-token"
domain: "your-hostname.duckdns.org"
❖ All Together
All of the providers can be added to the same file, with multiple entries per provider as well
cloudflare:
- key: "your-api-key"
zone: "your-website.com"
hostname: "your-hostname" # `@` if you want to update `your-website.com`
ttl: 1 # 1 for auto, otherwise between 60 and 86400
proxied: false
namecheap:
- password: "your-password-key"
host: "your-hostname"
domain: "your-website.com"
duckdns:
- token: "your-token"
domain: "your-hostname.duckdns.org"
- token: "your-token"
domain: "your-other-hostname.duckdns.org"
❖ What's New?
0.3.0 - Add fallbacks for fetching public IP
Dependencies
~11–24MB
~343K SLoC