Sign inSign up

ianpogi5/cflare-ddns

By ianpogi5

Updated almost 3 years ago

Yet another cloudflare dynamic dns app

Image
0

1.2K

ianpogi5/cflare-ddns repository overview

cflare-ddns

This is yet another Cloudflare Dynamic DNS application.

PyPI - Version Docker Pulls Docker Image Size (tag) Python Cloudflare License

Installation

pip install cflare-ddns

Usage

First is you need to create a config file. You can place it in the default location /etc/cflare-ddns.json or anywhere in your filesystem that is readable by the script. You'll need to pass that config location in the cli if it's not the default location.

Edit the config file, you'll need to provide the following:

  • api_key - You can get this in your cloudflare dashboard. Follow this link to get full instructions.
  • email - The email account you use in cloudflare.
  • zone_id - Zone ID of your domain name.
  • domain - The domain name. Example: example.com
  • record_name - The sub domain you want to update with your public ip. This subdomain should be an A record type. Example: www

Configuration file example:

{
  "api_key": "xxxx",
  "email": "[email protected]",
  "records": [
    {
      "zone_id": "xxxx",
      "domain": "example.xyz",
      "record_name": "vpn"
    },
    {
      "zone_id": "xxxx",
      "domain": "example.sh",
      "record_name": "www"
    }
  ]
}

Running the script with config in the default location:

cflare-ddns

Running the script with config in non-default location:

cflare-ddns -c /opt/somewhere/config.json

You can add this to your cronjobs to run periodically.

* * * * * cflare-ddns
- - - - -
| | | | |
| | | | ----- Day of week (0 - 7) (Sunday=0 or 7)
| | | ------- Month (1 - 12)
| | --------- Day of month (1 - 31)
| ----------- Hour (0 - 23)
------------- Minute (0 - 59)

To run every 15 minutes:

*/15 * * * * cflare-ddns
CLI Reference
usage: cflare-ddns [-h] [-c CONFIG_FILE] [-i INTERVAL] [-v]

options:
  -h, --help            show this help message and exit
  -v, --version         App version
  -c CONFIG_FILE, --config CONFIG_FILE
                        Path to your configuration file.
                        Default paths:
                          /etc/cflare-ddns.json,
                          cflare-ddns.json
  -i INTERVAL, --interval INTERVAL
                        Number of seconds between each sync. This will make the program run
                        forever.Hit Ctrl-C to stop.

Docker

Example on running on docker:

docker run -e CF_DDNS_INTERVAL=900 -v $(pwd)/cflare-ddns.json:/etc/cflare-ddns.json --rm ianpogi5/cflare-ddns:latest

Example using docker-compose.yml:

version: "3.9"
services:
  cflare-ddns:
    image: ianpogi5/cflare-ddns:latest
    container_name: cflare-ddns
    environment:
      - CF_DDNS_INTERVAL=900
    volumes:
      - /YOUR/PATH/TO/cflare-ddns.json:/etc/cflare-ddns.json
    restart: unless-stopped

Tag summary

Content type

Image

Digest

sha256:2938fd3b9

Size

23.5 MB

Last updated

almost 3 years ago

docker pull ianpogi5/cflare-ddns