Skip to content

v1.0.0

Choose a tag to compare

@Rhaiderr Rhaiderr released this 05 Jul 02:15
33fb7b8

First stable release. πŸŽ‰

Cloudflare Dynamic IP Sync keeps a Cloudflare Rule List updated with your current public IP address β€” automatically, whenever your ISP rotates it. Built for the Cloudflare Tunnel + WAF (not ip.src in $casa) self-hosting setup.

Highlights

  • Automatic sync: watches any Home Assistant entity whose state is your public IP (router sensor or custom REST/template sensor) and rewrites the Rule List when it changes β€” debounced on change, plus a periodic reconcile as a safety net.
  • Verified write path: replace items β†’ wait for Cloudflare's bulk operation β†’ re-read and verify β†’ exponential backoff up to a configurable retry limit; persistent notification when retries are exhausted (auto-dismissed on recovery).
  • UI-only setup (config flow): token β†’ account β†’ Rule List β†’ source entity. Multiple config entries supported. Both user API tokens and account-owned tokens (cfat_) work.
  • Observability: sync_status enum sensor with local_ip / cloudflare_ips / last_synced / last_error attributes, diagnostics with token redaction, and a Repair issue if the Rule List disappears from the account.
  • Services: cloudflare_ip_sync.force_sync and cloudflare_ip_sync.reload.
  • Fully async, typed, ruff/mypy-clean, 41 tests, validated end-to-end on a real installation against the live Cloudflare API.

Requirements

  • Home Assistant 2026.6+
  • A Cloudflare API token with Account Filter Lists β†’ Edit and Account Settings β†’ Read
  • An existing IP-kind Rule List

Installation

Via HACS (custom repository) or manual copy β€” see the README for the full setup walkthrough.

πŸ€– Generated with Claude Code