Skip to content

A light, reliable, and automated Dynamic DNS (DDNS) client for synchronizing your dynamic public IP address with Cloudflare DNS records.

License

Notifications You must be signed in to change notification settings

JelleBuning/cloudflare-dynamic-dns

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues GNU Affero General Public License v3.0 License

Cloudflare dynamic DNS

Reliable Cloudflare Record Synchronization for Dynamic IPs.

Table of Contents
  1. About The Project
  2. Getting Started
  3. Contributing
  4. License

About The Project

Cloudflare Dynamic DNS Updater is a light, reliable, and automated solution designed to keep your home or office network's public IP address consistently synchronized with a Cloudflare DNS record.

This project solves the common problem for users with dynamic IPs (like most residential connections) who want to run a server or service accessible via a fixed domain name. By leveraging the Cloudflare API, it automatically detects changes to your public IP address and instantly updates your specified DNS record, ensuring your service is always reachable.


Features

Our Cloudflare Dynamic DNS client is designed for reliability and ease of use, ensuring your services are always reachable.

  • Intelligent Synchronization: Only updates your DNS records when a genuine IP address change is detected, significantly reducing unnecessary Cloudflare API calls.
  • Multi-Record Management: Easily configure and manage updates for multiple domains, hosts, and subdomains all from a single instance.
  • Secure API Integration: Uses the official Cloudflare API to securely and reliably update your DNS A-records.
  • Versatile Deployment: Built on .NET and available as a streamlined Docker image, making it simple to deploy on diverse platforms like a Raspberry Pi, NAS, or home server.
  • Robust IP Detection: Features reliable logic to accurately determine your current public IP address, ensuring precision in every update.

Built With

Getting Started

Setting up this solution on your local machine is straightforward and will enable you to fully utilize its capabilities. This guide will walk you through the necessary steps to get everything running smoothly.

Before beginning, ensure that your development environment is properly configured. Having the required software and dependencies installed will prevent common issues and streamline the process.

Prerequisites

Installation

This installation method utilizes Docker Compose for a streamlined setup. Ensure you have Docker and Docker Compose installed on your system.

  1. Create a docker-compose.yml file: Create a new file named docker-compose.yml in a directory of your choice. Copy and paste the following content into it:

    version: '3.4'
    name: cloudflare-dynamic-dns
    services:
      cloudflare-dynamic-dns:
        container_name: "cloudflare-dynamic-dns"
        image: ghcr.io/jellebuning/cloudflare-dynamic-dns
        environment:
          # Required
          CF_API_TOKEN: ${Cloudflare_API_token}
          CF_DOMAIN_NAMES: domain.com, sub.domain.com
    
          # Optional
          INTERVAL_MINUTES: <interval> # defaults to 15 if variable is not set.
  2. Run Docker Compose: In the same directory as your docker-compose.yml file, execute the following command:

    docker-compose up -d

    This command will download the necessary images, create the containers, and start them in detached mode.

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/amazing-feature)
  3. Commit your Changes (git commit -m 'Added some amazing feature')
  4. Push to the Branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

Distributed under the GNU Affero General Public License v3.0 License. See LICENSE for more information.

(back to top)

About

A light, reliable, and automated Dynamic DNS (DDNS) client for synchronizing your dynamic public IP address with Cloudflare DNS records.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Sponsor this project

 

Packages

 
 
 

Contributors 3

  •  
  •  
  •