{"id":13676436,"url":"https://github.com/oscartbeaumont/netlify-dynamic-dns","last_synced_at":"2025-04-07T10:29:25.920Z","repository":{"id":37502865,"uuid":"167419114","full_name":"oscartbeaumont/netlify-dynamic-dns","owner":"oscartbeaumont","description":"A Dynamic DNS Client For Netlify Managed DNS","archived":false,"fork":false,"pushed_at":"2025-03-24T16:12:01.000Z","size":355,"stargazers_count":63,"open_issues_count":7,"forks_count":19,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-31T09:06:39.759Z","etag":null,"topics":["dockerised","dynamic-dns","dynamic-dns-updater","netlify","netlify-api","netlify-dns","netlify-dynamic-dns","netlify-managed-dns","netlify-openapi"],"latest_commit_sha":null,"homepage":"","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/oscartbeaumont.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"oscartbeaumont","custom":"https://www.paypal.me/oscartbeaumont"}},"created_at":"2019-01-24T18:49:28.000Z","updated_at":"2025-03-17T15:36:12.000Z","dependencies_parsed_at":"2024-01-14T14:31:24.781Z","dependency_job_id":"3ddfa036-ce8a-4b99-82cb-f0721bd38f7b","html_url":"https://github.com/oscartbeaumont/netlify-dynamic-dns","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oscartbeaumont%2Fnetlify-dynamic-dns","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oscartbeaumont%2Fnetlify-dynamic-dns/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oscartbeaumont%2Fnetlify-dynamic-dns/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oscartbeaumont%2Fnetlify-dynamic-dns/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oscartbeaumont","download_url":"https://codeload.github.com/oscartbeaumont/netlify-dynamic-dns/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247635276,"owners_count":20970709,"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":["dockerised","dynamic-dns","dynamic-dns-updater","netlify","netlify-api","netlify-dns","netlify-dynamic-dns","netlify-managed-dns","netlify-openapi"],"created_at":"2024-08-02T13:00:26.883Z","updated_at":"2025-04-07T10:29:25.887Z","avatar_url":"https://github.com/oscartbeaumont.png","language":"Go","funding_links":["https://github.com/sponsors/oscartbeaumont","https://www.paypal.me/oscartbeaumont","https://paypal.me/oscartbeaumont"],"categories":["Go"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eNetlify Dynamic DNS\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n    \u003cimg width=\"80%\" src=\".github/usage.gif\"\u003e\u003c/img\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    A simple command line tool for updating a \u003ca href=\"https://www.netlify.com/docs/dns/\"\u003eNetlify's Managed DNS\u003c/a\u003e record to point at your public IP address. Supporting both IPv4 and IPv6.\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://goreportcard.com/report/github.com/oscartbeaumont/netlify-dynamic-dns\"\u003e\u003cimg src=\"https://goreportcard.com/badge/github.com/oscartbeaumont/netlify-dynamic-dns\"\u003e\u003c/img\u003e\u003c/a\u003e\n    \u003ca href=\"https://paypal.me/oscartbeaumont\" style=\"padding-left: 10px;\"\u003e\u003cimg src=\"https://img.shields.io/badge/Donate-PayPal-green.svg\"\u003e\u003c/img\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## Installation \u0026 Usage\n\n```bash\n# Install via script\ncurl -s -L https://raw.githubusercontent.com/oscartbeaumont/netlify-dynamic-dns/master/install.sh | sudo sh\n\n# Set home.example.com to your public IP and quit\nnddns -accesstoken xxx -zone example.com -record home\n\n# Set home.example.com to your pulbic IP every 5 minutes\nnddns -accesstoken xxx -zone example.com -record home -interval 5\n\n# Using Docker\ndocker run ghcr.io/oscartbeaumont/netlify-dynamic-dns:latest -accesstoken xxx -zone example.com -record home -interval 5\n\n# From Git\ngit clone https://github.com/oscartbeaumont/netlify-dynamic-dns.git\ncd netlify-dynamic-dns\ngo run ./cmd -accesstoken xxx -zone example.com -record home\n```\n\n## Configuration\n\n| Flag         | Environment Variable | Default     | Description                                                                                                |\n|--------------|----------------------|-------------|------------------------------------------------------------------------------------------------------------|\n| access-token | NDDNS_ACCESS_TOKEN   |             | Your Netlify personal access token. Can be created at [here](https://app.netlify.com/account/applications) |\n| zone         | NDDNS_ZONE           | example.com | The Netlify DNS zone domain name                                                                           |\n| record       | NDDNS_RECORD         | home        | The record in the DNS zone to set as your public IP                                                        |\n| ipv6         | NDDNS_IPv6_ENABLED   | true        | Whether the IPv6 record (AAAA) should also be updated                                                      |\n| interval     | NDDNS_INTERVAL       | 0           | The amount of minutes between sending updates. If 0 only a single update is done.                          |\n\nIf you would like a custom TTL value, create an existing record (you can set anything in the IP field) and then the application will use it when recreating the record.\n\n## How It Works\n\nNetlify Dynamic DNS uses the [OpenDNS](https://www.opendns.com) resolver to determine your public IP. The resolver has a feature which echoes the clients IP address when you lookup `myip.opendns.com`. This lookup is done both over IPv4 and IPv6 to determine both public IP's then using the [Netlify OpenAPI Client](https://github.com/netlify/open-api) the old DNS records are removed and new ones are created with your latest public IP.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foscartbeaumont%2Fnetlify-dynamic-dns","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foscartbeaumont%2Fnetlify-dynamic-dns","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foscartbeaumont%2Fnetlify-dynamic-dns/lists"}