{"id":13509913,"url":"https://github.com/siennathesane/cloudflare-sync","last_synced_at":"2025-04-09T22:18:43.139Z","repository":{"id":99127461,"uuid":"206555519","full_name":"siennathesane/cloudflare-sync","owner":"siennathesane","description":"A nice to have, MIT-licensed tool for using Cloudflare as a dynamic DNS provider.","archived":false,"fork":false,"pushed_at":"2021-09-01T18:18:20.000Z","size":42,"stargazers_count":267,"open_issues_count":4,"forks_count":19,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-04T05:45:43.993Z","etag":null,"topics":["cloudflare","cloudflare-ddns","dns","dns-record","dynamic-dns"],"latest_commit_sha":null,"homepage":null,"language":"Go","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/siennathesane.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null},"funding":{"github":null,"patreon":null,"open_collective":"cloudflare-dyns","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2019-09-05T12:12:50.000Z","updated_at":"2025-03-30T17:42:09.000Z","dependencies_parsed_at":"2023-07-19T19:15:50.400Z","dependency_job_id":null,"html_url":"https://github.com/siennathesane/cloudflare-sync","commit_stats":{"total_commits":19,"total_committers":6,"mean_commits":"3.1666666666666665","dds":0.3157894736842105,"last_synced_commit":"df8bf42de38aca65259485b438f838ddf5153148"},"previous_names":["siennathesane/cloudflare-sync","mxplusb/cloudflare-sync"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siennathesane%2Fcloudflare-sync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siennathesane%2Fcloudflare-sync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siennathesane%2Fcloudflare-sync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siennathesane%2Fcloudflare-sync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/siennathesane","download_url":"https://codeload.github.com/siennathesane/cloudflare-sync/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247271527,"owners_count":20911587,"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","cloudflare-ddns","dns","dns-record","dynamic-dns"],"created_at":"2024-08-01T02:01:16.894Z","updated_at":"2025-04-09T22:18:43.122Z","avatar_url":"https://github.com/siennathesane.png","language":"Go","funding_links":["https://opencollective.com/cloudflare-dyns"],"categories":["Go","cloudflare"],"sub_categories":[],"readme":"## cloudflare-sync\n[![Go Report Card](https://goreportcard.com/badge/github.com/mxplusb/cloudflare-sync)](https://goreportcard.com/report/github.com/mxplusb/cloudflare-sync)\n\nA nice to have, MIT-licensed tool for using Cloudflare as a dynamic DNS provider.\n\n### Project Status (1 Sept 2021)\n\nThis project was originally archived because I didn't have the time or desire to develop in my personal life for a long time, and I didn't want to lead folks on that I would support this. I've decided to unarchive this project because lots of people have shown interest in it through more stars. I'll work on getting some CI and other things put into place so it's easier to accept changes in the coming weeks and months. This is a useful tool and I do like that folks are interested in using it more.\n\nMaybe in time it can support more than just Cloudflare, but for now, I want to make sure that integration is rock solid for lots of different DNS record types.\n\nIf you want to help maintain this, let me know, I'm definitely open to involving others, even though it's a very small, very basic program. 🙂\n\n## Usage\n\nBefore you get started, ensure that you have a Cloudflare site (one or more, doesn't matter since it's by Zone ID) so records can be updated. Leveraging the `config/example.json`, create a file that you want to contain your own DNS A records. Run `go build -v ./cmd -o cloudflare-sync.exe`, then leverage `cloudflare-sync.exe -h` for the specifics.\n\nCurrently this is undergoing an overhaul, so please feel to provide some feedback on its changes.\n\n### Configuration\n\nThe configuration is file-based, you can find an example of the schema in `config/example.json`. You need to pass this file via a flag, which you can find with `cloudflare-sync.exe --help`. This file is a subset of the Cloudflare API, so if you don't want it to override the values you already have in Cloudflare, just make sure they match. Please feel free to update this configuration section with more commentary if my explanation isn't satisfactory.\n\n### Docker\n\nThere is a Dockerfile you can use to push to your own registry, if you want. Here is a template command you'll want:\n\n```bash\ndocker run \\\n    -ti \\\n    -e \"API_TOKEN=''\" \\\n    -e \"ZONE_ID=''\" \\\n    -e \"FREQUENCY=30\" \\\n    -e \"RECORDS_FILE_NAME=production.json\" \\\n    \u003cyour-image\u003e\n```\n\nDon't forget to pass in your own `production.json` file via docker volumes.\n\n### Kubernetes\n\nThere is a `kubernetes.yml` file which you can use to deploy a `ConfigMap` and `Deployment` for this. You shouldn't ever need more than one replica. Fill out the `ConfigMap`, `spec.template.spec.containers[0].env` values, and `data.production.json` with your configuration.\n\n## Contributors\n\nThis project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)].\n\u003ca href=\"https://github.com/mxplusb/cloudflare-sync/graphs/contributors\"\u003e\u003cimg src=\"https://opencollective.com/cloudflare-dyns/contributors.svg?width=890\u0026button=false\" /\u003e\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsiennathesane%2Fcloudflare-sync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsiennathesane%2Fcloudflare-sync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsiennathesane%2Fcloudflare-sync/lists"}