A lightweight Dynamic DNS client built with .NET that:
This project targets .NET 10.
Run with mounted configuration and log directories, and expose syslog UDP port 514:
docker run -d \
--name kaven-ddns \
-v "$(pwd)/Configuration:/App/Configuration" \
-v "$(pwd)/Log:/App/Log" \
-p 514:514/udp \
--restart unless-stopped \
kaven-ddns:latest
Notes:
$(pwd)/Configuration/Kaven-DDNS.kcf on the host./App/Configuration and /App/Log.514 on your host, change the host-side port (for example: -p 1514:514/udp).Main config file example (Kaven-DDNS.kcf):
{
"Name": "DDnsClient",
"PeriodicCheckInterval": "00:01:00",
"EnableRouterSyslogCheck": true,
"RouterSyslogAddress": "0.0.0.0",
"RouterSyslogPort": 514,
"RouterSyslogRegexes": [
"local\\s+IP\\s+address\\s+(?<ip>\\d{1,3}(?:\\.\\d{1,3}){3})"
],
"EndpointUrls": [
"https://ip.kaven.xyz",
"https://ifconfig.me/ip",
"https://ipv4.icanhazip.com",
"https://api.ipify.org"
],
"HttpRequestTimeout": "00:00:10",
"EnableLocalNotification": true,
"LocalMailSetting": {
"Enable": true,
"Server": {
"From": "Name <[email protected]>",
"Host": "smtp.example.com",
"Port": 465,
"EnableSsl": true,
"EnableAuthentication": true,
"UserName": "smtp-username",
"Password": "smtp-password"
},
"Recipient": {
"To": ["[email protected]"],
"Cc": [],
"Bcc": []
}
},
"NotifyOnIpChanged": true,
"NotifyOnInactive": true,
"InactiveThreshold": "00:05:00",
"EnableAutoUpdateDNSRecords": true,
"DNSRecords": [
{
"Provider": "Ali",
"Domains": [
{
"Id": "123456",
"Type": "A",
"DomainName": "example.com",
"RR": "www"
}
],
"AccessKeyId": "your-access-key-id",
"AccessKeySecret": "your-access-key-secret"
}
],
"IpFile": "ip.txt"
}
Licensed under the terms in LICENSE.txt.
Content type
Image
Digest
sha256:e07c3c902…
Size
85.4 MB
Last updated
3 months ago
docker pull kavenzero/kaven-ddns