{"id":20704172,"url":"https://github.com/solidsnack/drdns","last_synced_at":"2025-08-28T06:06:02.347Z","repository":{"id":66073448,"uuid":"81921381","full_name":"solidsnack/drdns","owner":"solidsnack","description":"Dynamic DNS for AWS EC2","archived":false,"fork":false,"pushed_at":"2017-02-14T20:18:18.000Z","size":84,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-23T01:05:56.235Z","etag":null,"topics":["aws","dns","dynamic-dns","dyndns","ec2","route53","serverless"],"latest_commit_sha":null,"homepage":"","language":"Python","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/solidsnack.png","metadata":{"files":{"readme":"README.rst","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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-02-14T08:11:08.000Z","updated_at":"2021-07-30T03:45:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"1242c85c-b902-4ccf-8ff9-ed25e5e4366f","html_url":"https://github.com/solidsnack/drdns","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/solidsnack%2Fdrdns","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solidsnack%2Fdrdns/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solidsnack%2Fdrdns/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solidsnack%2Fdrdns/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/solidsnack","download_url":"https://codeload.github.com/solidsnack/drdns/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250349054,"owners_count":21415914,"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":["aws","dns","dynamic-dns","dyndns","ec2","route53","serverless"],"created_at":"2024-11-17T01:11:16.847Z","updated_at":"2025-04-23T01:06:01.897Z","avatar_url":"https://github.com/solidsnack.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"==============================\nDr. DNS -- Dynamic DNS for AWS\n==============================\n\nDr. DNS is a serverless app providing dynamic DNS on AWS. EC2 instances tagged\nwith a ``Name`` that matches one of your domains in Route 53 will automatically\nhave entries created (and removed) for them on startup (and shutdown/stop).\n\n\n-----------------------------\nTags Used \u0026 How They Are Used\n-----------------------------\n\n``Name = something.example.com``\n    Records created are ``\u003cinstance-id\u003e.something.example.com`` and\n    ``something.example.com``. If multiple hosts have the same name, they will\n    each have a unique record ``\u003cinstance-id\u003e.something.example.com`` and\n    ``something.example.com`` will round-robin between them. As a special case,\n    if ``Name`` already includes the instance ID, like\n    ``\u003cinstance-id\u003e.a.b.c``, then it is treated as though it were just the\n    base name: a record is created for ``\u003cinstance-id\u003e.a.b.c`` pointing only at\n    the instance, and a round-robin record is created at ``a.b.c``. The\n    ``Name`` tag thus behaves ergonomically when used with either individual\n    instances or auto-scaling groups.\n\n``dns:fqdn = name.example.com``, ``dns:fqdn:... = name.example.com``\n    One or many DNS names can be assigned to an instance with the tag\n    ``dns:fqdn`` and tags prefixed with ``dns:fqdn:`` (like: ``dns:fqdn:1``,\n    ``dns:fqdn:2``). These names are used exactly as given.\n\n``dns:base = group.example.com``, ``dns:base:... = group.example.com``\n    When the tag ``dns:base`` or a tag prefixed with ``dns:base:`` (like:\n    ``dns:base:1``, ``dns:base:2``) is specified, two records are created:\n    a round-robin record like ``group.example.com`` which points to all\n    instances sharing the same base, and a record\n    ``\u003cinstance-id\u003e.group.example.com`` pointing to just that specific\n    instance. This is especially useful with auto-scaling groups.\n\nWhen tags are assigned to an auto-scaling group, they can be automatically\ninherited by the instances in the group. This works well with the ``Name`` and\n``dns:base`` and ``dns:base:...`` style tags. To enable tagging of instances,\ncheck the **Tag New Instances** option in the Amazon console or set\n``PropagateAtLaunch`` from the AWS APIs when creating the group.\n\nThe tags are always weighted records, identified by the instance ID, even when\nthey point directly to the instance, to ensure that Dr. DNS updates and deletes\nonly a very narrow selection of records.\n\n\n-----------------------------------\nSetup with Cloud Formation Template\n-----------------------------------\n\nSetting up the permissions and event streams for a serverless application is\nalmost as much work as writing the application itself. The Cloud Formation\ntemplate sets up the Lambda and provides it with appropriate permissions and\nevent streams for instances launched in EC2 directly or by way of an\nauto-scaling group:\n\n.. image:: cfn.png\n   :target: https://us-west-2.console.aws.amazon.com/cloudformation/designer/home?templateUrl=https://s3-us-west-2.amazonaws.com/s3.drcloud.io/drdns/drdns.template.json\n\n`View in the CloudFormation template designer.`_\n\n.. _View in the CloudFormation template designer.: https://us-west-2.console.aws.amazon.com/cloudformation/designer/home?templateUrl=https://s3-us-west-2.amazonaws.com/s3.drcloud.io/drdns/drdns.template.json\n\n\n--------------------------\nFrequently Asked Questions\n--------------------------\n\nWhat kinds of records does Dr. DNS create?\n    Dr. DNS creates members of \"weighted record sets\", identified by the\n    instance ID, even when they point directly to the instance, to ensure that\n    only a narrow band of records are ever updated or deleted.\n\nWhat is the target of the records created by Dr. DNS?\n    The EC2 instance's public DNS name is used in preference to the private DNS\n    name, where available.\n\nHow does Dr. DNS handle invalid DNS names in tags?\n    If a tag does not match the domain name syntax restrictions, Dr. DNS logs\n    as much and returns early.\n\nHow does Dr. DNS know which domain in which to place a record?\n    The domain or domains with the longest suffix match on a record name are\n    used to store the record.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolidsnack%2Fdrdns","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsolidsnack%2Fdrdns","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolidsnack%2Fdrdns/lists"}