cfddns

command module
v0.1.0-alpha Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 12, 2023 License: MIT Imports: 12 Imported by: 0

README

cfddns

a ddns client for cloudflare written in golang

Install

Clone the Repo
git clone https://github.com/z89/cfddns.git
Build the Binary
cd cfddns && go build

Usage

Description

cfddns works by using the cloudflare API to retrieve your public IPv4 address. It then compares this address to your targeted DNS records on cloudflare. If the public address differs from your DNS records, cfddns will update the DNS records with the new address. This allows you to setup a custom DDNS client for cloudflare domains. It is possible to update multiple DNS records, as long as they share the same comment. By default, cfddns will update every 24 hours. To disable the timer, and enable the http endpoint, use the -timer flag. This is often done so another service can trigger the updates manually, such as a router.

Required Flags
  • -key - the API key for your cloudflare zone. DO NOT use a global API key, this will not work. Scope the API key to the specific zone you are targeting. A guide can be found here: https://developers.cloudflare.com/fundamentals/api/get-started/create-token/
  • -target - the domain name of your zone. For example, if your zone is example.com, you would enter example.com as the target. Do not include any subdomains. This is used to find the zone id.
  • -comment - the comment on the DNS records you want to update. For example, if you want to update the record home.example.com, create a comment on that record with any string you'd like. This will be used to identify the records so they can be updated.
Optional Flags
  • -timer - The time interval between updates in minutes. Default is 24 hours. To disable, set the timer to 0. This will enable the http endpoint.

  • -addr - the address to listen on. Default is 0.0.0.0, which listens on all interfaces.

  • -port - the port to listen on. Default is port 3000.

Example
./cfddns -key=<api-key> -target=<domain-name> -comment=<comment> -timer=<interval> -addr=<address> -port=<port>

Limitations

  • currently only supports ipv4
  • updates DNS A/AAAA records only
  • cfdns must be ran 24/7 on a dedicated machine for maximum uptime

Contributing

pull requests are welcome to:

  • revise the docs
  • fix bugs or bad logic
  • suggest/add features or improvements

License

MIT

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL