{"id":18944508,"url":"https://github.com/null93/cloudflare-public-ip","last_synced_at":"2026-03-26T01:30:20.120Z","repository":{"id":49060896,"uuid":"208924485","full_name":"null93/cloudflare-public-ip","owner":"null93","description":"Container to periodically update public IP address with a Cloudflare DNS record","archived":false,"fork":false,"pushed_at":"2023-03-02T21:14:48.000Z","size":38,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-01T00:22:53.961Z","etag":null,"topics":["cloudflare-dns","cronjob","docker-image","home-lab"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/null93/cloudflare-public-ip","language":"JavaScript","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/null93.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2019-09-17T00:36:52.000Z","updated_at":"2021-06-29T15:44:38.000Z","dependencies_parsed_at":"2024-11-08T12:47:16.480Z","dependency_job_id":"84b6a871-ee46-415a-9639-9b5329ae0049","html_url":"https://github.com/null93/cloudflare-public-ip","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/null93%2Fcloudflare-public-ip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/null93%2Fcloudflare-public-ip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/null93%2Fcloudflare-public-ip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/null93%2Fcloudflare-public-ip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/null93","download_url":"https://codeload.github.com/null93/cloudflare-public-ip/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239945829,"owners_count":19722860,"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","cronjob","docker-image","home-lab"],"created_at":"2024-11-08T12:47:11.126Z","updated_at":"2026-03-26T01:30:20.075Z","avatar_url":"https://github.com/null93.png","language":"JavaScript","readme":"# Cloudflare — Public IP\n\u003e Container to periodically update public IP address with a Cloudflare DNS record\n\n![MIT License](https://img.shields.io/badge/License-MIT-lightgrey.svg?style=for-the-badge)\n![Version 1.0.0](https://img.shields.io/badge/Version-1.0.0-lightgrey.svg?style=for-the-badge)\n![Stars](https://img.shields.io/docker/stars/null93/cloudflare-public-ip.svg?style=for-the-badge\u0026colorB=9f9f9f)\n![Pulls](https://img.shields.io/docker/pulls/null93/cloudflare-public-ip.svg?style=for-the-badge\u0026colorB=9f9f9f)\n\n### About\n\nThis project aims to provide a docker image that can be used to update an A record through Cloudflare's API. The value would be the external (public) IP address relative to the running container. Why would this be important? If you ever wanted to run a home-lab with a dynamic IP address, then this can be used to periodically ensure that said IP address is saved to a given Cloudflare A record.\n\n### Environmental Variables\n\n|      **Key**      | **Required** | **Default** | **Type** |      **Description**      |\n|:-----------------:|:------------:|:-----------:|:--------:|:-------------------------:|\n|      CF_DEBUG     |      No      |    false    |   bool   |    Display debug info?    |\n|      CF_ZONE      |      Yes     |      -      |  string  |     Cloudflare Zone ID    |\n|      CF_TOKEN     |      Yes     |      -      |  string  |    Cloudflare API token   |\n|   CF_RECORD_NAME  |      Yes     |      -      |  string  |       A record name       |\n| CF_RECORD_PROXIED |      No      |     true    |   bool   | Proxy through Cloudflare? |\n|   CF_RECORD_TTL   |      No      |      1      |    int   |      TTL for A record     |\n\n### Example (Docker)\n\n```shell\ndocker run -it \\\n    -e CF_DEBUG=\"true\" \\\n    -e CF_ZONE=\"Sm8k6RYi0yHfsb6AyIIBVdb2AaJ6IX1y\" \\\n    -e CF_TOKEN=\"TzpPptgsMSTrhVWzg9J9XjYJ6G91kr9yhPeTEwkf\" \\\n    -e CF_RECORD_NAME=\"foo.example.com\" \\\n    -e CF_RECORD_PROXIED=\"true\" \\\n    -e CF_RECORD_TTL=\"1\" \\\n    null93/cloudflare-public-ip\n```\n\n### Example (CronJob)\n\n```yaml\napiVersion: batch/v1beta1\nkind: CronJob\nmetadata:\n    name: comcast-foo\nspec:\n    schedule: \"*/1 * * * *\"\n    jobTemplate:\n        spec:\n            template:\n                spec:\n                    restartPolicy: OnFailure\n                    containers:\n                    -   name: comcast-foo\n                        image: null93/cloudflare-public-ip\n                        imagePullPolicy: IfNotPresent\n                        env:\n                        -   name: CF_DEBUG\n                            value: \"false\"\n                        -   name: CF_ZONE\n                            value: \"Sm8k6RYi0yHfsb6AyIIBVdb2AaJ6IX1y\"\n                        -   name: CF_TOKEN\n                            value: \"TzpPptgsMSTrhVWzg9J9XjYJ6G91kr9yhPeTEwkf\"\n                        -   name: CF_RECORD_NAME\n                            value: \"foo.example.com\"\n                        -   name: CF_RECORD_PROXIED\n                            value: \"true\"\n                        -   name: CF_RECORD_TTL\n                            value: \"1\"\n```\n\n### Docker Build \u0026 Push\n\n```shell\ndocker build -t null93/cloudflare-public-ip:latest .\ndocker push null93/cloudflare-public-ip:latest\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnull93%2Fcloudflare-public-ip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnull93%2Fcloudflare-public-ip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnull93%2Fcloudflare-public-ip/lists"}