Coder Social home page Coder Social logo

rddns's Introduction

About

Rddns is a DynDNS client written in Rust. Its main use case it to update multiple DynDNS records at once when an update is triggered by another DynDNS client that can only update one DynDNS entry at a time. Updates can be triggered by HTTP calls to a HTTP server embedded in rddns or by executing rddns in update mode.

Features

  • Trigger DDNS updates under different conditions.
    • "single-shot" updates on execution
    • HTTP requests to an embedded HTTP server
    • periodically (think of an embedded cron job).
  • Different sources for IP addresses
    • IP addresses can be passed as command line or HTTP parameter
    • IP addresses can be read from network interfaces
    • IP addresses can be detected via STUN
    • static IP addresses
    • Multiple IP addresses can be combined to new ones. E.g. Combine a dynamically assigned IPv6 subnet with the static IPv6 host parts of all devices in the subnet and update DynDNS entries for all of them.
  • Different possibilities to execute DDNS updates
    • Execute DDNS updates by calling HTTP URLs. IP addresses can be inserted into the URL, headers or the body.
    • Write IP addresses to files
    • Update DNS records at Cloudflare.

Usage

Rddns is started by passing a configuration file as parameter. To update all IP address configurations once call rddns in update mode.

rddns -c /path/to/config.toml update

To keep rddns running and waiting for conditions that should trigger an DDNS update run.

rddns -c /path/to/config.toml trigger

Which events should trigger an update must be specified in the configuration file.

The configuration file contains the DynDNS entries that should be updated as well as all other configurable options. It is described in the exemplary configuration file example_config.toml.

Install

There is however a Docker image available at Docker Hub. A pre-compiled binary for Linux/amd64 can be downloaded from Artifacts section of the Actions tab.

Build

To build rddns Rust is required. Rust install instructions can be found on the offical Rust website (it is really easy). After installing Rust the executable cargo will be available. The release version of rddns can than be build with the following command.

cargo build --release

This will create the executable target/release/rddns.

License

rddns is released under the GPLv3 license.

rddns's People

Contributors

markustieger avatar rbi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

rddns's Issues

Increment the version.

#2 got merged. To keep it organized, you should increment the version.
Also a new docker image hasn't been published and the version in the Cargo.toml should be synchronized with the latest tag.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.