Robotic Updater for Dynamic DNS Records
Project description
Ruddr
Robotic Updater for Dynamic DNS Records
Steer DNS queries to the proper IP addresses. With support for IPv6!
- PyPI: https://pypi.org/project/ruddr/
- Documentation: https://ruddr.dcpx.org/
- GitHub: https://github.com/dominickpastore/ruddr
- Changelog: https://github.com/dominickpastore/ruddr/blob/master/CHANGELOG.md
- Issues: https://github.com/dominickpastore/ruddr/issues
- Discussion: https://github.com/dominickpastore/ruddr/discussion
Overview
Ruddr is a modular dynamic DNS client. It separates the job into two tasks:
- Detecting IP address changes, handled by notifiers.
- Publishing the changed addresses, handled by updaters
Ruddr provides built-in updaters and notifiers for common use cases and
services. For example, the web
notifier will periodically query a
what-is-my-ip style website, and the standard
updater uses the de facto
standard API, http(s)://.../nic/update
, to publish updates compatible with
several well-known services. There are a variety of others; see the full
documentation for the full list.
However, if the built-in notifiers or updaters do not meet your needs, Ruddr is extensible. You can easily write your own and tie it into your configuration. (If you think your custom notifier will be useful to others, feel free to submit a contribution, or you can upload it to PyPI yourself as an extension!)
Finally (and the main reason Ruddr was born), Ruddr does its best to make dynamic DNS work with IPv6, despite the fact that hosts are not likely behind network address translation (NAT).
For more information about the built-in updaters and notifiers or writing your own, see the full documentation.
Installation from PyPI
At this time, Ruddr runs on Linux and possibly other Unix-like platforms. Non-Unix-like platforms may be supported in the future.
It is available on PyPI under the name ruddr
. Basic installation
works similarly to any other Python package:
pip3 install ruddr
Ruddr is now installed. You can continue to configuration.
Note: If you would like to use the systemd
notifier, there are extra
steps. See the installation instructions in the full documentation for
details.
Quick Start Guide
-
Write this configuration to
/etc/ruddr.conf
:[ruddr] notifier = main [notifier.main] type = web url = https://icanhazip.com/ [updater.main] # Updater config here
-
Paste in one of the updater configurations from the "Updaters" page in the full documentation
-
Set up Ruddr to run as a service. If using systemd, create a new unit file at
/etc/systemd/system/ruddr.service
:[Unit] Description=Robotic Updater for Dynamic DNS Records After=network.target [Service] Type=notify ExecStart=ruddr NotifyAccess=main [Install] WantedBy=multi-user.target
then enable and start the service (as root or with
sudo
):systemctl enable ruddr systemctl start ruddr
If not using systemd, then using whatever means your system supports, set the
ruddr
script to run at startup, with SIGTERM sent to it at shutdown.
Full Documentation
The full documentation can be found here: https://ruddr.dcpx.org/
It contains much more information, including the following:
- How Ruddr works
- Detailed usage and configuration instructions
- Descriptions and configuration info for all the built-in updaters and notifiers
- Information for developers, including how to write custom updaters and notifiers
- Frequently asked questions and additional help resources.
License
GNU General Public License version 3 or later. See the COPYING file for the full license.
Copyright © 2023 Dominick C. Pastore
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ruddr-0.0.1b3.tar.gz
.
File metadata
- Download URL: ruddr-0.0.1b3.tar.gz
- Upload date:
- Size: 144.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3b6ecd47f5122dc40d3bdfb89816cf21a95bbaa15da0d9a77eeae622ff6e8ac |
|
MD5 | 9d3b2d81a36381db5f035bb62baffe9d |
|
BLAKE2b-256 | b1252360336e47407ffcf860e6e092f40a88d1424ba3b551786fb44900b4635e |
File details
Details for the file ruddr-0.0.1b3-py3-none-any.whl
.
File metadata
- Download URL: ruddr-0.0.1b3-py3-none-any.whl
- Upload date:
- Size: 96.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ebbbee634e5e0c3154d9a706e52f59affe47f5ca52ffc6393882b518ae320e8 |
|
MD5 | d44454ffe2f448afdbbc4533dea3a506 |
|
BLAKE2b-256 | d8071f8008c2e79d251777a4836789108806fe2e993a77cbcc2d30c700a24106 |