Documentation
¶
Overview ¶
Package dnspatch is the root of the dnspatch module and holds no code; it exists so that go generate has a place to run the repository-wide generators from.
dnspatch is a dynamic DNS daemon: it watches the public IP address and patches DNS records when it changes. The daemon is the command github.com/KrimsN/dnspatch/cmd/dnspatch. Its retrievers and providers are plugins that implement the interfaces of the public package github.com/KrimsN/dnspatch/plugin; the built-in ones live under github.com/KrimsN/dnspatch/plugins.
Source, releases and container images: https://github.com/KrimsN/dnspatch.
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
dnspatch
command
Command dnspatch is a dynamic DNS daemon: it watches the public IP address and patches DNS records when it changes.
|
Command dnspatch is a dynamic DNS daemon: it watches the public IP address and patches DNS records when it changes. |
|
gendoc
command
Command gendoc writes the files generated from the configuration types of the built-in plugins: docs/PARAMETERS.md, the reference of their parameters, and config.toml.example, a configuration to copy and edit.
|
Command gendoc writes the files generated from the configuration types of the built-in plugins: docs/PARAMETERS.md, the reference of their parameters, and config.toml.example, a configuration to copy and edit. |
|
internal
|
|
|
config
Package config parses the TOML configuration: named retriever and provider definitions, instances and their polling intervals.
|
Package config parses the TOML configuration: named retriever and provider definitions, instances and their polling intervals. |
|
httpx
Package httpx builds the HTTP clients that plugins use to reach their services, including the optional proxy in front of them.
|
Package httpx builds the HTTP clients that plugins use to reach their services, including the optional proxy in front of them. |
|
paramspec
Package paramspec reads the parameters of a plugin configuration struct from its field tags.
|
Package paramspec reads the parameters of a plugin configuration struct from its field tags. |
|
runner
Package runner orchestrates instances: each one runs in its own goroutine on its own interval and stops when the context is cancelled.
|
Package runner orchestrates instances: each one runs in its own goroutine on its own interval and stops when the context is cancelled. |
|
socks5test
Package socks5test is a minimal SOCKS5 server for tests.
|
Package socks5test is a minimal SOCKS5 server for tests. |
|
Package plugin defines the public contract of dnspatch: the Retriever and Provider interfaces, the plugin registry and parameter decoding.
|
Package plugin defines the public contract of dnspatch: the Retriever and Provider interfaces, the plugin registry and parameter decoding. |
|
plugins
|
|
|
all
Package all registers every built-in plugin through blank imports, so that a single import makes them all available to a command.
|
Package all registers every built-in plugin through blank imports, so that a single import makes them all available to a command. |
|
beget
Package beget provides a provider for zones hosted on Beget, managed through its JSON-over-HTTP API (https://beget.com/en/kb/api/dns-administration-functions).
|
Package beget provides a provider for zones hosted on Beget, managed through its JSON-over-HTTP API (https://beget.com/en/kb/api/dns-administration-functions). |
|
dyndns2
Package dyndns2 provides a provider for services that speak the dyndns2 update protocol, the one Dyn made popular: an authenticated GET request to an update URL with the host name and the address, answered with a short status word such as "good" or "nochg".
|
Package dyndns2 provides a provider for services that speak the dyndns2 update protocol, the one Dyn made popular: an authenticated GET request to an update URL with the host name and the address, answered with a short status word such as "good" or "nochg". |
|
dyndns2/dyn
Package dyn provides a provider for hosts at Dyn (dyn.com, once DynDNS), the service the dyndns2 protocol comes from.
|
Package dyn provides a provider for hosts at Dyn (dyn.com, once DynDNS), the service the dyndns2 protocol comes from. |
|
dyndns2/dynu
Package dynu provides a provider for hosts at Dynu, updated through the Dynu Dynamic DNS service.
|
Package dynu provides a provider for hosts at Dynu, updated through the Dynu Dynamic DNS service. |
|
dyndns2/nicru
Package nicru provides a provider for domains at NIC.RU (RU-CENTER), updated through its Dynamic DNS service.
|
Package nicru provides a provider for domains at NIC.RU (RU-CENTER), updated through its Dynamic DNS service. |
|
dyndns2/noip
Package noip provides a provider for hosts at No-IP, updated through the No-IP Dynamic DNS service.
|
Package noip provides a provider for hosts at No-IP, updated through the No-IP Dynamic DNS service. |
|
icanhazip
Package icanhazip provides a retriever backed by the icanhazip.com service.
|
Package icanhazip provides a retriever backed by the icanhazip.com service. |
|
identme
Package identme provides a retriever backed by the ident.me service.
|
Package identme provides a retriever backed by the ident.me service. |
|
ifconfigco
Package ifconfigco provides a retriever backed by the ifconfig.co service.
|
Package ifconfigco provides a retriever backed by the ifconfig.co service. |
|
ipify
Package ipify provides a retriever backed by the ipify.org service.
|
Package ipify provides a retriever backed by the ipify.org service. |
|
netif
Package netif provides a retriever that reads the address from a local network interface instead of asking an external service.
|
Package netif provides a retriever that reads the address from a local network interface instead of asking an external service. |
|
regru
Package regru provides a provider for zones hosted on the REG.RU DNS servers, managed through REG.API 2 (https://api.reg.ru/api/regru2).
|
Package regru provides a provider for zones hosted on the REG.RU DNS servers, managed through REG.API 2 (https://api.reg.ru/api/regru2). |
|
rfc2136
Package rfc2136 provides a provider that updates records on an authoritative name server with dynamic DNS updates (RFC 2136), the protocol behind nsupdate.
|
Package rfc2136 provides a provider that updates records on an authoritative name server with dynamic DNS updates (RFC 2136), the protocol behind nsupdate. |
|
selectel
Package selectel provides a provider for zones hosted on Selectel DNS Hosting, managed through the public DNS API v2 (https://docs.selectel.ru/en/api/dns-actual).
|
Package selectel provides a provider for zones hosted on Selectel DNS Hosting, managed through the public DNS API v2 (https://docs.selectel.ru/en/api/dns-actual). |
|
twoip
Package twoip provides a retriever backed by the api.2ip.io service.
|
Package twoip provides a retriever backed by the api.2ip.io service. |
|
yandexcloud
Package yandexcloud provides a provider for zones hosted on Yandex Cloud DNS, managed through its public REST API (https://yandex.cloud/en/docs/dns/api-ref/).
|
Package yandexcloud provides a provider for zones hosted on Yandex Cloud DNS, managed through its public REST API (https://yandex.cloud/en/docs/dns/api-ref/). |
Click to show internal directories.
Click to hide internal directories.