{"id":18353586,"url":"https://github.com/felbinger/cf-webdns","last_synced_at":"2025-04-06T12:31:40.321Z","repository":{"id":44686769,"uuid":"451089654","full_name":"felbinger/CF-WebDNS","owner":"felbinger","description":"Cloudflare WebDNS Panel with API Token authentication","archived":true,"fork":false,"pushed_at":"2022-01-31T11:26:53.000Z","size":19,"stargazers_count":2,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-15T16:27:54.357Z","etag":null,"topics":["cloudflare","dns"],"latest_commit_sha":null,"homepage":"https://webdns.pages.dev","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/felbinger.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-01-23T11:55:56.000Z","updated_at":"2024-12-02T10:20:54.000Z","dependencies_parsed_at":"2022-09-12T13:41:18.315Z","dependency_job_id":null,"html_url":"https://github.com/felbinger/CF-WebDNS","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felbinger%2FCF-WebDNS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felbinger%2FCF-WebDNS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felbinger%2FCF-WebDNS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felbinger%2FCF-WebDNS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/felbinger","download_url":"https://codeload.github.com/felbinger/CF-WebDNS/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247484291,"owners_count":20946384,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["cloudflare","dns"],"created_at":"2024-11-05T21:42:15.568Z","updated_at":"2025-04-06T12:31:39.900Z","avatar_url":"https://github.com/felbinger.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cloudflare WebDNS\nThis project provides a web application to manage your cloudflare dns records using an api token.\n\n## Motivation\nCloudflare itself only allows another person to access the entire account, but not a single domain.  \nThis is possible with API tokens, to manage the DNS settings in a simple web interface this project was developed.\n\n## How to use it\nThis project is based on two parts. The first part is the \"Backend\" which is a simple cloudflare worker to bypass\n[Cross-Origin Resource Sharing](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) Headers.\nYou can host this \"proxy\" in cloudflare workers. Feel free to use my worker using [webdns.an2ic3.workers.dev](https://webdns.an2ic3.workers.dev).\n```node\naddEventListener(\"fetch\", (event) =\u003e {\n  event.respondWith(\n    handleRequest(event.request).catch(\n      (err) =\u003e new Response(err.stack, { status: 500 })\n    )\n  );\n});\n\nasync function handleRequest(request) {\n  const url = new URL(request.url);\n  url.hostname = 'api.cloudflare.com';\n  request.headers.Host = 'api.cloudflare.com';\n\n  // handle cors options\n  if (request.method == 'OPTIONS') {\n    return new Response(\"\", {\n      status: 200,\n      headers: {\n        \"Access-Control-Allow-Origin\": \"*\",\n        \"Access-Control-Allow-Headers\": \"*\",\n        \"Access-Control-Allow-Methods\": \"*\",\n      },\n    });\n  }\n\n  let response = await fetch(url.toString(), request);\n  response = new Response(response.body, response)\n  response.headers.set('Access-Control-Allow-Origin', '*');\n  return response;\n}\n```\n\nThe other part is the frontend itself, which is provided in this repository. It's also hosted in cloudflare pages, checkout: [webdns.pages.dev](https://webdns.pages.dev).\n\nYou need an API Token to log in to the panel. This token can be acquired [here (dash.cloudflare.com/profile/api-tokens)](https://dash.cloudflare.com/profile/api-tokens).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelbinger%2Fcf-webdns","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffelbinger%2Fcf-webdns","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelbinger%2Fcf-webdns/lists"}