{"id":19831198,"url":"https://github.com/ryanflannery/gddnsu","last_synced_at":"2025-07-23T05:35:02.027Z","repository":{"id":139296455,"uuid":"93581263","full_name":"ryanflannery/gddnsu","owner":"ryanflannery","description":"Script to batch update Google Domains configured for dynamic DNS","archived":false,"fork":false,"pushed_at":"2017-06-07T04:01:32.000Z","size":7,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-29T22:40:25.190Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ryanflannery.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":"2017-06-07T01:57:11.000Z","updated_at":"2017-10-11T01:30:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"9d1360df-fdbb-4c3b-9851-6b05e6b5db09","html_url":"https://github.com/ryanflannery/gddnsu","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ryanflannery/gddnsu","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanflannery%2Fgddnsu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanflannery%2Fgddnsu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanflannery%2Fgddnsu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanflannery%2Fgddnsu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ryanflannery","download_url":"https://codeload.github.com/ryanflannery/gddnsu/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanflannery%2Fgddnsu/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266624854,"owners_count":23958303,"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","status":"online","status_checked_at":"2025-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-11-12T11:29:09.136Z","updated_at":"2025-07-23T05:35:01.997Z","avatar_url":"https://github.com/ryanflannery.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gddnsu\n\nA small script to update google domains configured for dynamic DNS\n\n\n## what is it?\n\ngddnsu is a simple script to update your google domains configured for dynamic\ndns to your external ip address. It reads a list of domains and credentials\n(username and password pairs, generated by google domains) from a file,\ndetermines your external IP address, and updates those domains to your external\nIP with [Google Domains](https://domains.google.com)\nIt aims to support batch updates of domains while minimizing calls to services\nlike [ipinfo.io](https://ipinfo.io).\n\n\n## is this really needed?\n\nFor 99% of cases, where you need to update just a single domain, no...this is\noverkill. For those cases the following two line shell script would suffice:\n\n```sh\nip=`curl -s ipinfo.io/ip`\ncurl -s \"https://YourUsername:YourPassword@domains.google.com/nic/update?hostname=YourDomain\u0026myip=${ip}\"\n```\n\nwhere `YourDomain` is registered with google domains and you've configured it\nfor dynamic dns updates, following\n[this guide](https://support.google.com/domains/answer/6147083).\nAfter following that guide, google domains will generate `YourUsername`\nand `YourPassword` pairs for you (and can regenerate them if you ever feel\nthey are compromised).\n\n\n## so then why this?\n\nIf you have an environment where others can route (sub)domains and have them\nconfigured using various dynamic DNS services and want to support google\ndomains, then this might be a good fit.\n\n\n## usage\n\nFor basic usage, just run (probably via `cron` or similar) the command\n`gddnsu /path/to/gddnsu.conf`. See `sample.conf` for what `gddnsu.conf` looks\nlike. It's a simple file where each line is of the form\n\n```\n   domain   username    password\n```\n\nwhere `domain` is registered with google domains and `username` and `password`\nare the credentials provided there for dynamic DNS updates.\nSee [this guide](https://support.google.com/domains/answer/6147083) for\ndetails.\nBlank lines and comment lines (starting with `#`) are ignored.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanflannery%2Fgddnsu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fryanflannery%2Fgddnsu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanflannery%2Fgddnsu/lists"}