{"id":46076077,"url":"https://github.com/ry-ops/unifi-cloudflare-ddns","last_synced_at":"2026-03-01T14:35:10.253Z","repository":{"id":318220116,"uuid":"1067887551","full_name":"ry-ops/unifi-cloudflare-ddns","owner":"ry-ops","description":"Cloudflare Worker enabling UniFi devices to dynamically update DNS A/AAAA records","archived":false,"fork":false,"pushed_at":"2026-02-01T14:13:34.000Z","size":1771,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-01T23:37:55.287Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ry-ops.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-01T14:30:29.000Z","updated_at":"2026-02-01T14:12:30.000Z","dependencies_parsed_at":"2025-10-05T22:23:39.954Z","dependency_job_id":"483e9d8c-5bfd-43b1-b3d9-ef6554d8a06a","html_url":"https://github.com/ry-ops/unifi-cloudflare-ddns","commit_stats":null,"previous_names":["ry-ops/unifi-cloudflare-ddns"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ry-ops/unifi-cloudflare-ddns","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ry-ops%2Funifi-cloudflare-ddns","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ry-ops%2Funifi-cloudflare-ddns/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ry-ops%2Funifi-cloudflare-ddns/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ry-ops%2Funifi-cloudflare-ddns/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ry-ops","download_url":"https://codeload.github.com/ry-ops/unifi-cloudflare-ddns/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ry-ops%2Funifi-cloudflare-ddns/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29971001,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T14:11:48.712Z","status":"ssl_error","status_checked_at":"2026-03-01T14:11:48.352Z","response_time":124,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-03-01T14:35:09.051Z","updated_at":"2026-03-01T14:35:10.239Z","avatar_url":"https://github.com/ry-ops.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://github.com/ry-ops/unifi-cloudflare-ddns/blob/main/unifi-cloudflare-ddns.png\" width=\"100%\"\u003e\n\n# Cloudflare DDNS for UniFi OS\n\n[![CodeQL](https://github.com/willswire/unifi-ddns/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/willswire/unifi-ddns/actions/workflows/github-code-scanning/codeql)\n[![Code Coverage](https://github.com/willswire/unifi-ddns/actions/workflows/coverage.yml/badge.svg)](https://github.com/willswire/unifi-ddns/actions/workflows/coverage.yml)\n[![Dependabot Updates](https://github.com/willswire/unifi-ddns/actions/workflows/dependabot/dependabot-updates/badge.svg)](https://github.com/willswire/unifi-ddns/actions/workflows/dependabot/dependabot-updates)\n[![Deploy](https://github.com/willswire/unifi-ddns/actions/workflows/deploy.yml/badge.svg)](https://github.com/willswire/unifi-ddns/actions/workflows/deploy.yml)\n\nA Cloudflare Worker script that enables UniFi devices (e.g., UDM-Pro, USG) to dynamically update DNS A/AAAA records on Cloudflare.\n\n\u003e **Note:** This is a fork of [willswire/unifi-ddns](https://github.com/willswire/unifi-ddns). Check out the original project for updates and community support.\n\n## Why Use This?\n\nUniFi devices do not natively support Cloudflare as a DDNS provider. This script bridges that gap, allowing your UniFi device to keep your DNS records updated with your public IP address.\n\n## 🚀 **Setup Overview**\n\n### 1. **Deploy the Cloudflare Worker**\n\n#### **Option 1: Click to Deploy**\n\n[![Deploy to Cloudflare Workers](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/ry-ops/unifi-ddns)\n\n1. Click the button above.\n2. Complete the deployment.\n3. Note the `*.workers.dev` route.\n\n#### **Option 2: Deploy with Wrangler CLI**\n\n1. Clone this repository:\n   ```sh\n   git clone https://github.com/ry-ops/unifi-ddns.git\n   cd unifi-ddns\n   ```\n2. Install [Wrangler CLI](https://developers.cloudflare.com/workers/wrangler/install-and-update/).\n3. Run:\n   ```sh\n   npm i\n   wrangler login\n   wrangler deploy\n   ```\n4. Note the `*.workers.dev` route.\n\n### 2. **Generate a Cloudflare API Token**\n\n1. Go to the [Cloudflare Dashboard](https://dash.cloudflare.com/).\n2. Navigate to **Profile \u003e API Tokens**\n3. Create a token using the **Edit zone DNS** template.\n4. Scope the token to **one** specific zone.\n5. Save the token securely.\n\n### 3. **Configure UniFi OS**\n\n1. Log in to your [UniFi OS Controller](https://unifi.ui.com/).\n2. Go to **Settings \u003e Internet \u003e WAN \u003e Dynamic DNS**.\n3. Create New Dynamic DNS with the following information:\n   - **Service:** `custom`\n   - **Hostname:** `subdomain.example.com` or `example.com`\n   - **Username:** Cloudflare Account Email Address (e.g., `you@example.com`)\n   - **Password:** Cloudflare User API Token *(not an Account API Token)*\n   - **Server:** `\u003cworker-name\u003e.\u003cworker-subdomain\u003e.workers.dev/update?ip=%i\u0026hostname=%h`\n     *(Omit `https://`)*\n\n## 🛠️ **Testing \u0026 Troubleshooting**\n\n### Verify It's Working\n\n1. Check the DDNS status in UniFi (Settings \u003e Internet \u003e WAN)\n2. Verify the DNS record in Cloudflare matches your public IP\n3. Monitor the worker in Cloudflare Dashboard (Workers \u0026 Pages \u003e your worker \u003e Logs)\n\n### Common Issues\n\nUsing this script with various Ubiquiti devices and different UniFi software versions can introduce unique challenges. If you encounter issues:\n\n- Check that you omitted `https://` from the Server field\n- Verify your API token has correct permissions (Edit zone DNS)\n- Ensure the hostname exactly matches what you want in Cloudflare\n- Confirm `%i` and `%h` placeholders are in the Server URL\n\nFor more help, refer to the [original project's FAQ](https://github.com/willswire/unifi-ddns/blob/main/docs/faq.md) or [discussions](https://github.com/willswire/unifi-ddns/discussions).\n\n## 📝 **License**\n\nThis project maintains the same license as the original [willswire/unifi-ddns](https://github.com/willswire/unifi-ddns) project.\n\n## 🙏 **Credits**\n\nOriginal project by [willswire](https://github.com/willswire). This fork is maintained by [ry-ops](https://github.com/ry-ops) for personal use.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fry-ops%2Funifi-cloudflare-ddns","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fry-ops%2Funifi-cloudflare-ddns","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fry-ops%2Funifi-cloudflare-ddns/lists"}