Add 'emailonly' client to send status emails without needing a DDNS host

This adds a protocol to send status updates without needing a Dynamic
DNS host. This is useful if you don't have a DDNS host but want to be
updated when the IP of a machine changes. Because of how ddclient is
written, it requires setting a host name, but doesn't actually do
anything with it. Let me know if there's a better way to handle this.
This commit is contained in:
Joel Croteau 2024-04-20 19:55:48 -07:00
parent c56ce41824
commit c7268e156a
2 changed files with 2338 additions and 698 deletions

View file

@ -19,12 +19,12 @@
daemon=300 # check every 300 seconds
syslog=yes # log update msgs to syslog
mail=root # mail all msgs to root
mail-failure=root # mail failed update msgs to root
mail-failure=root # mail failed update msgs to root
pid=@runstatedir@/ddclient.pid # record PID in file.
ssl=yes # use ssl-support. Works with
# ssl-library
# postscript=script # run script after updating. The
# new IP is added as argument.
# ssl-library
# postscript=script # run script after updating. The
# new IP is added as argument.
#
#use=watchguard-soho, fw=192.168.111.1:80 # via Watchguard's SOHO FW
#use=netopia-r910, fw=192.168.111.1:80 # via Netopia R910 FW
@ -88,7 +88,6 @@ ssl=yes # use ssl-support. Works with
# protocol=dyndns2 \
# your-static-host.dyndns.org
##
##
## dyndns.org custom addresses
##
@ -130,8 +129,8 @@ ssl=yes # use ssl-support. Works with
## OrgDNS.org account-configuration
##
# use=web, web=members.orgdns.org/nic/ip
# protocol=dyndns2
# server=www.orgdns.org \
# protocol=dyndns2 \
# login=yourLoginName \
# password=yourPassword \
# yourSubdomain.orgdns.org
@ -139,11 +138,11 @@ ssl=yes # use ssl-support. Works with
##
## NameCheap (namecheap.com)
##
# protocol=namecheap, \
# protocol=namecheap, \
# server=dynamicdns.park-your-domain.com, \
# login=my-namecheap.com-login, \
# password=my-namecheap.com-password \
# fully.qualified.host
# login=example.com, \
# password=example.com-password \
# subdomain.example.com
##
## NearlyFreeSpeech.NET (nearlyfreespeech.net)
@ -154,12 +153,10 @@ ssl=yes # use ssl-support. Works with
# zone=example.com \
# example.com,subdomain.example.com
##
##
## Loopia (loopia.se)
##
# use=web
# web=loopia
# use=web, web=loopia
# protocol=dyndns2
# server=dns.loopia.se
# script=/XDynDNSServer/XDynDNS.php
@ -192,7 +189,7 @@ ssl=yes # use ssl-support. Works with
#protocol=cloudflare, \
#zone=domain.tld, \
#ttl=1, \
#login=your-login-email, \ # Only needed if you are using your global API key. If you are using an API token, set it to "token" (wihtout double quotes).
#login=your-login-email, \ # Only needed if you are using your global API key. If you are using an API token, set it to "token" (without double quotes).
#password=APIKey \ # This is either your global API key, or an API token. If you are using an API token, it must have the permissions "Zone - DNS - Edit" and "Zone - Zone - Read". The Zone resources must be "Include - All zones".
#domain.tld,my.domain.tld
@ -200,12 +197,23 @@ ssl=yes # use ssl-support. Works with
## Gandi (gandi.net)
##
## Single host update
# protocol=gandi, \
# zone=example.com, \
# password=my-gandi-api-key, \
# ttl=3h \
# protocol=gandi
# zone=example.com
# password=my-gandi-access-token
# use-personal-access-token=yes
# ttl=10800 # optional
# myhost.example.com
##
## GoDaddy (godaddy.com)
##
# protocol=godaddy, \
# password=my-godaddy-api-key, \
# password=my-godaddy-secret, \
# ttl=600 \
# zone=example.com, \
# myhost.example.com,nexthost.example.com
##
## Google Domains (www.google.com/domains)
##
@ -233,12 +241,12 @@ ssl=yes # use ssl-support. Works with
##
## MyOnlinePortal (http://myonlineportal.net)
##
# protocol=dyndns2
# ssl=yes
# # ipv6=yes # optional
# use=web, web=myonlineportal.net/checkip
# # use=if, if=eth0 # alternative to use=web
# # if-skip=Scope:Link # alternative to use=web
# protocol=dyndns2
# ssl=yes
# login=your-myonlineportal-username
# password=your-myonlineportal-password
# domain.myonlineportal.net
@ -246,8 +254,8 @@ ssl=yes # use ssl-support. Works with
##
## nsupdate.info IPV4(https://www.nsupdate.info)
##
#protocol=dyndns2
#use=web, web=http://ipv4.nsupdate.info/myip
#protocol=dyndns2
#server=ipv4.nsupdate.info
#login=domain.nsupdate.info
#password='123'
@ -257,8 +265,8 @@ ssl=yes # use ssl-support. Works with
## nsupdate.info IPV6 (https://www.nsupdate.info)
## ddclient releases <= 3.8.1 do not support IPv6
##
#protocol=dyndns2
#usev6=if, if=eth0
#protocol=dyndns2
#server=ipv6.nsupdate.info
#login=domain.nsupdate.info
#password='123'
@ -288,6 +296,16 @@ ssl=yes # use ssl-support. Works with
# password=your_password
# test.example.com
##
## Porkbun (https://porkbun.com/)
##
# protocol=porkbun
# apikey=APIKey
# secretapikey=SecretAPIKey
# root-domain=example.com
# host.example.com,host2.sub.example.com
# example.com,sub.example.com
##
## ClouDNS (https://www.cloudns.net)
##
@ -303,9 +321,79 @@ ssl=yes # use ssl-support. Works with
# password=mypassword \
# myhost.mydomain.com
##
## dnsexit (www.dnsexit.com)
##
#protocol=dnsexit, \
#login=myusername, \
#password=mypassword, \
#subdomain-1.domain.com,subdomain-2.domain.com
##
## dnsexit2 (API method www.dnsexit.com)
##
#protocol=dnsexit2
#password=MyAPIKey
#subdomain-1.domain.com,subdomain-2.domain.com
##
## domeneshop (www.domeneshop.no)
##
# protocol=domeneshop
# login=<token>
# password=<secret>
# subdomain-1.domain.com,subdomain-2.domain.com
##
## Njal.la (http://njal.la/)
##
# protocol=njalla,
# password=mypassword
# quietreply=no|yes
# my-domain.com
##
## regfish.de (www.regfish.de/)
##
# protocol=regfishde,
# password=mypassword
# my-domain.com
##
## Enom (www.enom.com)
##
# protocol=enom,
# login=domain.name,
# password=domain-password
# my-domain.com
##
## DigitalOcean (www.digitalocean.com)
##
#protocol=digitalocean, \
#zone=example.com, \
#password=api-token \
#example.com,sub.example.com
##
## Infomaniak (www.infomaniak.com)
##
# protocol=infomaniak,
# login=ddns_username,
# password=ddns_password
# example.com
#
# N.B. the infomaniak protocol is obsolete. Please use dyndns2 instead:
#
# protocol=dyndns2,
# use=web, web=infomaniak.com/ip.php/
# login=ddns_username,
# password=ddns_password
# redirect=2
# example.com
##
## Email Only
##
# protocol=emailonly
# noop

File diff suppressed because it is too large Load diff