{"id":18011499,"url":"https://github.com/tmiland/cloudflare-bind-zone-file-upload","last_synced_at":"2025-04-04T13:43:06.850Z","repository":{"id":70814932,"uuid":"344251395","full_name":"tmiland/Cloudflare-BIND-Zone-File-Upload","owner":"tmiland","description":"A quick script to upload a BIND zone file to Cloudflare","archived":false,"fork":false,"pushed_at":"2021-03-06T11:17:36.000Z","size":7,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-09T23:27:59.219Z","etag":null,"topics":["bash","bash-script","bind","bind9","cloudflare","cloudflare-api","cloudflare-dns","shell","shell-script","virtualmin","virtualmin-virtual-servers"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/tmiland.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-03T20:12:04.000Z","updated_at":"2023-12-27T03:04:47.000Z","dependencies_parsed_at":"2023-08-19T22:32:12.542Z","dependency_job_id":null,"html_url":"https://github.com/tmiland/Cloudflare-BIND-Zone-File-Upload","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/tmiland%2FCloudflare-BIND-Zone-File-Upload","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmiland%2FCloudflare-BIND-Zone-File-Upload/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmiland%2FCloudflare-BIND-Zone-File-Upload/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmiland%2FCloudflare-BIND-Zone-File-Upload/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tmiland","download_url":"https://codeload.github.com/tmiland/Cloudflare-BIND-Zone-File-Upload/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247189215,"owners_count":20898648,"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":["bash","bash-script","bind","bind9","cloudflare","cloudflare-api","cloudflare-dns","shell","shell-script","virtualmin","virtualmin-virtual-servers"],"created_at":"2024-10-30T03:10:52.370Z","updated_at":"2025-04-04T13:43:06.828Z","avatar_url":"https://github.com/tmiland.png","language":"Shell","readme":"# Cloudflare BIND Zone File Upload\n\n A quick script to upload a BIND zone file to Cloudflare\n\n### *WARNING: THIS WILL DELETE ALL OF YOUR CURRENT DNS RECORDS FOR YOUR DOMAIN!*\n\n### Tip:\n\nExport your current DNS records before using this script.\n\nGo to Cloudflare, choose your domain and go to the DNS tab,\nthen the advanced button -\u003e Export DNS records.\n\n### Why?\n\nI wanted an easy way to \"sync\" DNS records since there isn't a way to do that currently with [Virtualmin](https://github.com/virtualmin/virtualmin-gpl).\n\n### Issues?\n\nNot all records are valid. (See sample output below)\n\n## Example usage\n\n```bash\n ./cloudflare_BIND_upload.sh email@domain.com auth-key zone-id domain.com false\n ```\n\n- The script will search /var for domain.com.hosts file so that it'll match the domain you enter in the cmd, and copy it to the current dir as domain.com.txt\n\n\u003cdetails\u003e\u003csummary\u003esample output\u003c/summary\u003e\u003cp\u003e\n\n```bash\n\n {\"result\":{\"id\":\"xxxxxxxxxxxxxxxxxxxxxxxxxx\"},\"success\":true,\"errors\":[],\"messages\":[]}{\"result\":{\"id\":\"xxxxxxxxxxxxxxxxxxxxxxxxxx\"},\"success\":true,\"errors\":[],\"messages\":[]}{\"result\":{\"id\":\"xxxxxxxxxxxxxxxxxxxxxxxxxx\"},\"success\":true,\"errors\":[],\"messages\":[]}{\"result\":{\"id\":\"xxxxxxxxxxxxxxxxxxxxxxxxxx\"},\"success\":true,\"errors\":[],\"messages\":[]}{\"result\":{\"id\":\"xxxxxxxxxxxxxxxxxxxxxxxxxx\"},\"success\":true,\"errors\":[],\"messages\":[]}{\"result\":{\"id\":\"xxxxxxxxxxxxxxxxxxxxxxxxxx\"},\"success\":true,\"errors\":[],\"messages\":[]}{\"result\":{\"id\":\"xxxxxxxxxxxxxxxxxxxxxxxxxx\"},\"success\":true,\"errors\":[],\"messages\":[]}{\"result\":{\"id\":\"xxxxxxxxxxxxxxxxxxxxxxxxxx\"},\"success\":true,\"errors\":[],\"messages\":[]}{\"result\":{\"id\":\"xxxxxxxxxxxxxxxxxxxxxxxxxx\"},\"success\":true,\"errors\":[],\"messages\":[]}{\"result\":{\"id\":\"xxxxxxxxxxxxxxxxxxxxxxxxxx\"},\"success\":true,\"errors\":[],\"messages\":[]}{\"result\":{\"id\":\"xxxxxxxxxxxxxxxxxxxxxxxxxx\"},\"success\":true,\"errors\":[],\"messages\":[]}{\"result\":{\"id\":\"xxxxxxxxxxxxxxxxxxxxxxxxxx\"},\"success\":true,\"errors\":[],\"messages\":[]}{\"result\":{\"id\":\"xxxxxxxxxxxxxxxxxxxxxxxxxx\"},\"success\":true,\"errors\":[],\"messages\":[]}{\"result\":{\"id\":\"xxxxxxxxxxxxxxxxxxxxxxxxxx\"},\"success\":true,\"errors\":[],\"messages\":[]}{\"result\":{\"id\":\"xxxxxxxxxxxxxxxxxxxxxxxxxx\"},\"success\":true,\"errors\":[],\"messages\":[]}{\"result\":{\"id\":\"xxxxxxxxxxxxxxxxxxxxxxxxxx\"},\"success\":true,\"errors\":[],\"messages\":[]}{\"result\":{\"id\":\"xxxxxxxxxxxxxxxxxxxxxxxxxx\"},\"success\":true,\"errors\":[],\"messages\":[]}{\"result\":{\"id\":\"xxxxxxxxxxxxxxxxxxxxxxxxxx\"},\"success\":true,\"errors\":[],\"messages\":[]}{\"result\":{\"recs_added\":18,\"recs_added_by_type\":{\"A\":9,\"DNSKEY\":2,\"DS\":2,\"MX\":1,\"NS\":1,\"TXT\":3},\"total_records_parsed\":19},\"success\":true,\"errors\":[],\"messages\":[{\"code\":9002,\"message\":\"domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"_dmarc.domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"_dmarc.domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"_dmarc.domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"202101._domainkey.domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"202101._domainkey.domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"202101._domainkey.domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"autoconfig.domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"autoconfig.domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"autoconfig.domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"autodiscover.domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"autodiscover.domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"autodiscover.domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"ftp.domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"ftp.domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"ftp.domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"localhost.domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"localhost.domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"localhost.domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"m.domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"m.domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"m.domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"mail.domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"mail.domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"mail.domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"ns1.domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"ns1.domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"ns1.domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"www.domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"www.domain.com.: DNS record type is invalid.\"},{\"code\":9002,\"message\":\"www.domain.com.: DNS record type is invalid.\"},{\"code\":81055,\"message\":\"mail.domain.com: Non-NS records with that host already exist.\"}]}#\n \n ```\n\u003c/p\u003e\u003c/details\u003e\n\n## Credits\nCode is customized from these sources:\n- [Delete all DNS records for specified zone](https://gist.github.com/slayer/442fa2fffed57f8409e0b23bd0673a92)\n- [Cloudflare API v4 Documentation](https://api.cloudflare.com/)\n\n## Donations \n- [PayPal me](https://paypal.me/milanddata)\n- [BTC] : 33mjmoPxqfXnWNsvy8gvMZrrcG3gEa3YDM\n\n## Web Hosting\n\nSign up for web hosting using this link, and receive $100 in credit over 60 days.\n\n[DigitalOcean](https://m.do.co/c/f1f2b475fca0)\n\n#### Disclaimer \n\n*** ***Use at own risk*** ***\n\n### License\n\n[![MIT License Image](https://upload.wikimedia.org/wikipedia/commons/thumb/0/0c/MIT_logo.svg/220px-MIT_logo.svg.png)](https://github.com/tmiland/Cloudflare-BIND-Zone-File-Upload/blob/master/LICENSE)\n\n[MIT License](https://github.com/tmiland/Cloudflare-BIND-Zone-File-Upload/blob/master/LICENSE)\n","funding_links":["https://paypal.me/milanddata"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmiland%2Fcloudflare-bind-zone-file-upload","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftmiland%2Fcloudflare-bind-zone-file-upload","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmiland%2Fcloudflare-bind-zone-file-upload/lists"}