Skip to main content

CloudFlare Dynamic DNS client

Project description

CloudFlare Dynamic DNS client

This is a simple Dynamic DNS script written in Python for updating CloudFlare DNS A records,
similar to the classic ddclient perl script.

  • You can run it as a cron job or a systemd timer.
  • It only updates the records if the IP address actually changed by storing a cache of the current IP address.
  • It checks multiple IP services. If one of them doesn't respond, it skips it and check the next.
  • It has an easy to use command line interface.

Install

If you want to just use it, you can download a standalone binary from the releases page.

Or you can use the Docker image:

$ docker run --rm -it kissgyorgy/cloudflare-dyndns --help

Development

You can install dependencies with poetry (preferable in a virtualenv).
After installing poetry, simply run:

$ poetry install

Command line interface

$ cloudflare-dyndns --help
Usage: cloudflare-dyndns [OPTIONS] [DOMAINS]

  A simple command line script to update CloudFlare DNS A records with the
  current IP address of the machine running the script.

  For the main domain (the "@" record), simply put "example.com"
  Subdomains can also be specified, eg. "*.example.com" or "sub.example.com"

Options:
  --domains TEXT     The list of domains to update, separated by whitespace.
                     It has to be ONE argument, so don't forget to quote! Can
                     be set with the CLOUDFLARE_DOMAINS environment variable.

  --email TEXT       CloudFlare account email. Can be set with
                     CLOUDFLARE_EMAIL environment variable  [required]

  --api-key TEXT     CloudFlare API key (You can find it at My Profile page).
                     Can be set with CLOUDFLARE_API_KEY environment variable.
                     [required]

  --cache-file FILE  Cache file  [default: ~/.cache/cloudflare-dynds/ip.cache]
  --force            Delete cache and update every domain
  --debug            More verbose messages and Exception tracebacks
  --help             Show this message and exit.

Changelog

v2.0 breaks backward compatibility for a PyPI release.

The script you need to run is now called cloudflare-dyndns and the cache file also changed. You can delete the old cache manually, or you can leave it, it won't cause a problem.

The Docker file entry point is changed, so if you pull the new image, everything will work as before.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cloudflare-dyndns-2.1.tar.gz (6.5 kB view hashes)

Uploaded Source

Built Distribution

cloudflare_dyndns-2.1-py3-none-any.whl (6.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page