{"id":13582485,"url":"https://github.com/agorf/dyndns53","last_synced_at":"2025-04-06T14:30:58.456Z","repository":{"id":136981278,"uuid":"80281691","full_name":"agorf/dyndns53","owner":"agorf","description":"Run your own dynamic DNS service with Amazon Route 53","archived":true,"fork":false,"pushed_at":"2018-10-30T20:38:33.000Z","size":27,"stargazers_count":31,"open_issues_count":0,"forks_count":7,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-11-05T22:41:27.487Z","etag":null,"topics":["amazon","aws","cron","crontab","dns","dynamic-dns","dyndns","dyndns-service","golang","iam-policy","route53"],"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/agorf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-01-28T11:51:38.000Z","updated_at":"2023-01-28T10:39:49.000Z","dependencies_parsed_at":"2023-03-22T12:17:40.634Z","dependency_job_id":null,"html_url":"https://github.com/agorf/dyndns53","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/agorf%2Fdyndns53","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agorf%2Fdyndns53/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agorf%2Fdyndns53/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agorf%2Fdyndns53/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/agorf","download_url":"https://codeload.github.com/agorf/dyndns53/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247495751,"owners_count":20948103,"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":["amazon","aws","cron","crontab","dns","dynamic-dns","dyndns","dyndns-service","golang","iam-policy","route53"],"created_at":"2024-08-01T15:02:45.642Z","updated_at":"2025-04-06T14:30:58.161Z","avatar_url":"https://github.com/agorf.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# dyndns53\n\ndyndns53 lets you run your own [dynamic DNS][] service with [Amazon Route 53][]\nby updating a domain of your choice with the public IP address of the machine it\nruns on.\n\n[dynamic DNS]: https://en.wikipedia.org/wiki/Dynamic_DNS\n[Amazon Route 53]: https://aws.amazon.com/route53/\n\n## Installation\n\n[Install Go][] and issue:\n\n    $ go get github.com/agorf/dyndns53\n\n[Install Go]: https://golang.org/doc/install\n\n## Configuration\n\nRegister a domain name, if you haven't already. Then log in to the [AWS\nmanagement console][] and follow the steps below.\n\n[AWS management console]: https://console.aws.amazon.com/\n\n### Step 1: Create a hosted zone\n\nGo to the [Route 53 Hosted Zones page][] and click _Create Hosted Zone_.\n\nFill in your domain name in _Domain Name_ and choose _Public Hosted Zone_ for\n_Type_, then click _Create_.\n\nIn the hosted zone page, note down the domain names of the Amazon name servers\n(row with type _NS_). You need to set them as name servers in your domain name\nregistrar.\n\n**Note:** DNS propagation usually takes a few hours for newly-registered\ndomain names. If resolving your domain doesn't work, try again later.\n\nClick _Back to Hosted Zones_ and note down the _Hosted Zone ID_ since you will\nneed it in the next step.\n\n[Route 53 Hosted Zones page]: https://console.aws.amazon.com/route53/home#hosted-zones:\n\n### Step 2: Create an IAM policy\n\nGo to to the [IAM Policies page][] and click _Create Policy_.\n\nClick _Select_ on the _Policy Generator_ section.\n\nIn the following form, choose _Allow_ for _Effect_, _Amazon Route 53_ for _AWS\nService_, _ChangeResourceRecordSets_ for _Actions_, fill in\n`arn:aws:route53:::hostedzone/\u003cHOSTEDZONEID\u003e` for _Amazon Resource Name (ARN)_\n(replacing `\u003cHOSTEDZONEID\u003e` with the one from the previous step) and click _Add\nStatement_ and then _Next Step_.\n\nFill in a name for _Policy Name_ so that you can look up the policy later and\nclick _Create Policy_.\n\n[IAM Policies page]: https://console.aws.amazon.com/iam/home#/policies\n\n### Step 3: Create an IAM user\n\nGo to the [IAM Users page][] and click the _Add user_ button.\n\nFill in the user name, check _Programmatic access_ for _Access type_ and click\n_Next: Permissions_.\n\nOn the permissions page, click the last option _Attach existing policies\ndirectly_ and fill in the _Search_ field with the name of the policy you created\nin the previous step. Click on the policy to check it and click _Next: Review_.\n\nClick _Create user_ and you will be presented with an _Access key ID_ and a\n_Secret access key_ (masked), the credentials dyndns53 needs to access the\nservice programmatically. Don't close the window since you will need them in the\nnext step.\n\n[IAM Users page]: https://console.aws.amazon.com/iam/home#/users\n\n### Step 4: Create an AWS credentials file\n\nIn the machine you plan to run dyndns53, issue:\n\n    $ mkdir -p ~/.aws\n    $ touch ~/.aws/credentials\n    $ chmod go-r ~/.aws/credentials # prevent other users from reading the file\n\nEdit the file with your editor:\n\n    $ $EDITOR ~/.aws/credentials\n\nAnd write:\n\n    [dyndns53]\n    aws_access_key_id = \u003cACCESS_KEY_ID\u003e\n    aws_secret_access_key = \u003cSECRET_ACCESS_KEY\u003e\n\nReplacing `\u003cACCESS_KEY_ID\u003e` and `\u003cSECRET_ACCESS_KEY\u003e` with the actual values you\nwere presented in the previous step.\n\nYou are now ready to use dyndns53.\n\n## Usage\n\nRunning the program with no arguments prints a usage text:\n\n    $ dyndns53\n    Usage of dyndns53:\n      -log string\n            file name to log to (default is stdout)\n      -name value\n            record set names (-name domain1 -name domain2 -name domain3 ...)\n      -ttl int\n            TTL (time to live) in seconds (default 300)\n      -type string\n            record set type; \"A\" or \"AAAA\" (default \"A\")\n      -zone string\n            hosted zone id\n\nYou can set [Cron][] (with `crontab -e`) to run the program e.g. every five\nminutes:\n\n    */5 * * * * ~/go/bin/dyndns53 -name mydomain1 -name mydomain2 -zone HOSTEDZONEID -log ~/dyndns53.log\n\nWhere `~/go` is your `$GOPATH`, `mydomain1` and `mydomain2` are the names of the\nrecord sets (domains) you want to update and `HOSTEDZONEID` is the id of the\n[hosted zone][] they belong to.\n\nIf the record set does not exist, it will be created the first time dyndns53\nruns.\n\nAssuming that the IP address changes right after dyndns53 runs (with a default\nTTL of 5 minutes), the above [Cron][] entry has a worst-case scenario of a\n10-minute delay until the domain name resolves to the new IP address (5 minutes\nuntil next run that issues the update + 5 minutes for the DNS change to\npropagate).\n\n[Cron]: https://en.wikipedia.org/wiki/Cron\n[hosted zone]: http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ListInfoOnHostedZone.html\n\n## License\n\nLicensed under the MIT license (see [LICENSE.txt][]).\n\n[LICENSE.txt]: https://github.com/agorf/dyndns53/blob/master/LICENSE.txt\n\n## Author\n\nAngelos Orfanakos, https://agorf.gr/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagorf%2Fdyndns53","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagorf%2Fdyndns53","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagorf%2Fdyndns53/lists"}