{"id":20549588,"url":"https://github.com/edenreich/cloudflare-dns-updater","last_synced_at":"2025-04-14T11:04:55.468Z","repository":{"id":42032455,"uuid":"245621360","full_name":"edenreich/cloudflare-dns-updater","owner":"edenreich","description":"Service written in rust for mapping dynamic IP-Address provided by an ISP to Cloudflare DNS (use-case: on-premise web servers)","archived":false,"fork":false,"pushed_at":"2022-05-03T19:11:07.000Z","size":105,"stargazers_count":5,"open_issues_count":3,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-14T11:04:26.148Z","etag":null,"topics":["cli","client","cloudflare","cloudflare-api","dns","ip","service","static-ip-address","systemd-service"],"latest_commit_sha":null,"homepage":null,"language":"Rust","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/edenreich.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":"2020-03-07T11:36:04.000Z","updated_at":"2024-08-13T03:51:46.000Z","dependencies_parsed_at":"2022-08-12T02:51:10.772Z","dependency_job_id":null,"html_url":"https://github.com/edenreich/cloudflare-dns-updater","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edenreich%2Fcloudflare-dns-updater","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edenreich%2Fcloudflare-dns-updater/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edenreich%2Fcloudflare-dns-updater/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edenreich%2Fcloudflare-dns-updater/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edenreich","download_url":"https://codeload.github.com/edenreich/cloudflare-dns-updater/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248868769,"owners_count":21174757,"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":["cli","client","cloudflare","cloudflare-api","dns","ip","service","static-ip-address","systemd-service"],"created_at":"2024-11-16T02:18:40.020Z","updated_at":"2025-04-14T11:04:55.429Z","avatar_url":"https://github.com/edenreich.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Build - Linux on ARM (Raspbian Buster)](https://github.com/edenreich/cloudflare-dns-updater/workflows/Build%20-%20Linux%20on%20ARM%20(Raspbian%20Buster)/badge.svg?branch=master)\n![Build - Linux (Ubuntu)](https://github.com/edenreich/cloudflare-dns-updater/workflows/Build%20-%20Linux%20(Ubuntu)/badge.svg?branch=master)\n\n# Cloudflare-DNS-Updater\n\nMost ISP provide a dynamic public IP address, once your ISP changes the public IP address, this service will pickup on this changes and update your DNS records on cloudflare, to maintain\nthe IP address statically (P.S this is a FREE solution, do note that you could still purchase from some ISP a static IP).\n\n- [Cloudflare-DNS-Updater](#Cloudflare-DNS-Updater)\n    - [Usage](#Usage)\n    - [Build](#Build)\n    - [Tests](#Tests)\n    - [Download](#Download)\n    - [Target](#Target)\n    - [Motivation](#Motivation)\n\n## Usage\n\n```sh\nCLOUDFLARE_ACCESS_TOKEN=[ACCESS_TOKEN] \\\nCLOUDFLARE_ZONE_ID=[ZONE_ID] \\\ncloudflare update \\ \n    --dns [DNS_LIST..] \\\n    --intervals 5\n```\n\nRun this as a long running process:\n- as a [systemd service](systemd/README.md).\n- as a system pod on [kubernetes](kubernetes/README.md) \n\n## Build\n\nNote: compilation is done using statically linking, to make sure everything comes with the binary as is.\n\nBuild on ubuntu:\n\n```sh\ndocker build -t cloudflare/ubuntu-1910 -f build/ubuntu-1910/Dockerfile .\n```\n\nBuild on raspberry:\n\n```sh\ndocker build -t cloudflare/raspbian-buster-20180926 -f build/raspbian-buster-20180926/Dockerfile .\n```\n\nInside the containers binaries are located at `/home/rust/app/bin` directory after complete build.\nTo use them just copy them out of the containers, for example:\n\n```sh\nid=$(docker create --name cloudflare_ubuntu-1910 cloudflare/ubuntu-1910) \u0026\u0026 \\\ndocker cp cloudflare_ubuntu-1910:/home/rust/app/bin/cloudflare bin/cloudflare \u0026\u0026 \\\ndocker rm $id\n\nid=$(docker create --name cloudflare_raspbian-buster-20180926 cloudflare/raspbian-buster-20180926) \u0026\u0026 \\\ndocker cp cloudflare_raspbian-buster-20180926:/home/rust/app/bin/cloudflare bin/cloudflare \u0026\u0026 \\\ndocker rm $id\n```\n\n## Tests\n\nAfter building and copying the binaries outside of the containers, test to check if it works on:\n\n- ubuntu:\n```sh\ndocker build -t cloudflare/test-ubuntu-1910 -f tests/ubuntu-1910/Dockerfile .\ndocker run --rm -it cloudflare/test-ubuntu-1910\n```\n\n- raspberry:\n```sh\ndocker build -t cloudflare/test-raspbian-buster-20180926 -f tests/raspbian-buster-20180926/Dockerfile .\ndocker run --rm -it cloudflare/test-raspbian-buster-20180926\n```\n\n## Download\n\nYou may also download the released binary and simply use it:\n\n```sh\nsudo curl -sSL \"https://github.com/edenreich/cloudflare-dns-updater/releases/download/v1.0.2/cloudflare\" -o /usr/local/bin/cloudflare\n# or for ARM:\n# sudo curl -sSL \"https://github.com/edenreich/cloudflare-dns-updater/releases/download/v1.0.2/cloudflare_arm\" -o /usr/local/bin/cloudflare\n\nsudo chmod +x /usr/local/bin/cloudflare\nsudo ln -s /usr/local/bin/cloudflare /usr/bin/cloudflare\n```\n\n## Target\n\nThis project targets linux, works on ARM as well.\n\n## Motivation\n\nI have a raspberry pi k3s cluster at home, and I often find it annoying that the internet provider changes the IP address.\nSo I thought it could be nice to have a webserver without needing to worry about the IP, that would automatically update my DNS\nrecords on cloudflare to point to that newly dynamic IP provided by my ISP.\n\n## Bugs Reporting\n\nIf you find any bug please submit an issue ;)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedenreich%2Fcloudflare-dns-updater","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedenreich%2Fcloudflare-dns-updater","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedenreich%2Fcloudflare-dns-updater/lists"}