# ddns-rs [![Rust](https://img.shields.io/badge/rust-nightly-brightgreen.svg)](https://www.rust-lang.org) [![CI Status](https://github.com/ddns-rs/ddns-rs/actions/workflows/ci.yml/badge.svg)](https://github.com/ddns-rs/ddns-rs/actions/workflows/ci.yml) [![Crate Status](https://img.shields.io/crates/v/ddns-rs.svg)](https://crates.io/crates/ddns-rs) `ddns-rs` is an easy to used program that help you update your dns record. ## Features * Both support **IPV4** and **IPV6** * Support many DNS providers * Support auto create dns record to provider * Support many ways to obtain IP * Multitasking support ## Quick start Crate your config file `config.toml` like this: ``` toml [base] task_startup_interval = 5 task_retry_timeout = 10 [tasks] t1 = {provider = "p1", family = "ipv4", interval = 10, interface = "i1", notifiers = ["n1"]} [providers] p1 = {kind = "cloudflare", force = false, ttl = 600, token = "your_cloudflare_token", dns = "www.example.com"} [interfaces] i1 = {kind = "stock", name = "eth0"} [notifiers] n1 = {kind = "empty"} ``` ### Run in background: ```shell .\ddns-rs -vvv -d ``` ### Run as systemd service: Create account for `ddns-rs` running ```shell sudo adduser --system --gecos "DDNS-RS Service" --disabled-password --group --no-create-home ddns ``` Move the `ddns-rs` to `/usr/bin` and then chown ```shell sudo chown ddns:ddns /usr/bin/ddns-rs ``` Create the directory that is required by ddns-rs ```shell sudo mkdir /var/log/ddns-rs sudo chown -R ddns:ddns /var/log/ddns-rs ``` Move your `config.toml` to `/etc/ddns-rs` ```shell sudo mkdir /etc/ddns-rs sudo chown -R ddns:ddns /etc/ddns-rs ``` Create systemd service: ```shell sudo tee /etc/systemd/system/ddns-rs.service > /dev/null <