Skip to content

Cloudflare DDNS

TrendingActive
favonia/cloudflare-ddns

A small, feature-rich, and robust Cloudflare DDNS updater that detects your machine's public IP addresses and updates DNS records using the Cloudflare API, with support for internationalized and wildcard domains.

View on GitHub
Stars
2.9k
Forks
115
Watchers
2.9k
Open issues
25

A feature-rich and robust Cloudflare DDNS updater with a small footprint. The program detects your machine’s public IP addresses and updates DNS records using the Cloudflare API.

Key Features

  • ⚡ Efficiency: Less than 5MB Docker image after compression with connection re-use and API response caching
  • 💯 Complete Domain Support: Simple domain listing without zone knowledge, internationalized domains, wildcards
  • 🌥️ Cloudflare Integration: Toggle proxying, set record comments, maintain IP lists for Cloudflare Rules and WAF
  • 👁️ Notifications: Integration with Healthchecks, Uptime Kuma, and services via shoutrrr library
  • 🕵️ Privacy-Focused: Uses Cloudflare’s debugging page to obtain IP addresses, minimizing privacy impact

Configuration

Easily configurable via environment variables:

  • Basic Setup: API token, domains, proxying options
  • IP Providers: Choose from local interfaces, Cloudflare, custom providers, and more
  • Update Controls: Scheduling, TTL settings, deletion behaviors
  • Notification Systems: Health reporting and event notifications

Docker Deployment

docker run -d \
  --name cloudflare-ddns \
  -e CLOUDFLARE_API_TOKEN=your_cloudflare_api_token \
  -e DOMAINS=example.org,sub.example.com \
  -e PROXIED=true \
  favonia/cloudflare-ddns:latest

Docker Compose Example

version: "3"
services:
  cloudflare-ddns:
    image: favonia/cloudflare-ddns:latest
    container_name: cloudflare-ddns
    restart: unless-stopped
    environment:
      - CLOUDFLARE_API_TOKEN=your_cloudflare_api_token
      - DOMAINS=example.org,sub.example.com
      - PROXIED=true

When to Use

  • When you need to update Cloudflare DNS records with dynamic IP addresses
  • When you require both IPv4 and IPv6 support
  • When you need internationalized or wildcard domain support
  • When privacy and security are important considerations
  • When you need integration with notification and monitoring systems

Frequently Asked Questions

How does this compare to other DDNS updaters?

This updater is designed with security and privacy in mind, using only secure channels for obtaining IP addresses. It’s also extremely lightweight (less than 5MB), supports internationalized domains, and integrates with Cloudflare-specific features.

Can I use both IPv4 and IPv6?

Yes, both IPv4 and IPv6 are enabled by default. You can disable either by setting IP4_PROVIDER=none or IP6_PROVIDER=none in your configuration.

How do I migrate from other DDNS updaters?

The repository includes detailed migration guides for users coming from other popular updaters like oznu/cloudflare-ddns and timothymiller/cloudflare-ddns, making it easy to switch.

How often does it update my IP addresses?

By default, the updater checks for IP changes every 5 minutes. You can customize this using the UPDATE_CRON environment variable with standard cron syntax.

Does it support wildcard domains?

Yes, wildcard domains like *.example.org are fully supported.

Similar open-source projects, ranked by shared categories and tags.

All Network projects →