this repo has no description
Rust 83.4%
Dockerfile 1.5%
Shell 0.5%
Other 14.5%
138 1 0

Clone this repository

https://tangled.org/jcg.re/dyndnsd https://tangled.org/did:plc:cposd2qe5gzl2nvkbxqiupy5/dyndnsd
git@tangled.org:jcg.re/dyndnsd git@tangled.org:did:plc:cposd2qe5gzl2nvkbxqiupy5/dyndnsd

For self-hosted knots, clone URLs may differ based on your setup.

Download tar.gz
README.md

dyndnsd#

This is a simple daemon that runs in the background and checks for your public IP regularily. If it changes, the service sets the corresponding DNS record. The service supports both IPv4 and IPv6 addresses.

Installation#

Use the package manager cargo to install dyndnsd.

cargo install dyndnsd

Usage#

Config#

dyndnsd expects to find a config file at /etc/dyndnsd/config.toml.

As you can see from the path, the configuration should be a toml file. A sample could look like this:

interval = 15

[zones.'example.com']
url = "udp://1.2.3.4:53"
key_name = "test"
key = "test"
algorithm = "hmac-sha256"

[targets.'example.example.com']
zone = "example.com"
ipv4 = true
ipv6 = true

Running#

To run the service, just call the binary. You can optionally set the RUST_LOG env var to configure the log level:

RUST_LOG=info dyndnsd

Contributing#

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License#

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License version 3 as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.

Attribution#

This work is derived from cloudflare-ddns, a commandline utility fullfilling the same purpose. It's written by Rostislav Raykov z@zbrox.org and available under the MIT license at the link above.

This fork has made major changes to the project, to the extent where most of the code has been rewritten and the tool is quite different:

  • Runs as a service instead of in a cron job
  • Supports IPv6
  • Homegrown Cloudflare API client has been replaced with hickory-dns based rfc2136 updates