{"id":13581639,"url":"https://github.com/damomurf/coredns-tailscale","last_synced_at":"2025-04-09T17:14:29.401Z","repository":{"id":59791480,"uuid":"538021918","full_name":"damomurf/coredns-tailscale","owner":"damomurf","description":"A Tailscale lookup plugin for CoreDNS","archived":false,"fork":false,"pushed_at":"2025-04-07T10:44:54.000Z","size":327,"stargazers_count":97,"open_issues_count":6,"forks_count":15,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-09T17:14:22.077Z","etag":null,"topics":["coredns","dns","tailscale"],"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/damomurf.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}},"created_at":"2022-09-18T06:28:29.000Z","updated_at":"2025-03-28T14:17:31.000Z","dependencies_parsed_at":"2023-02-16T06:15:39.578Z","dependency_job_id":"e9049a5a-0e3f-4fb1-9041-3a6c8253a44b","html_url":"https://github.com/damomurf/coredns-tailscale","commit_stats":null,"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/damomurf%2Fcoredns-tailscale","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/damomurf%2Fcoredns-tailscale/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/damomurf%2Fcoredns-tailscale/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/damomurf%2Fcoredns-tailscale/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/damomurf","download_url":"https://codeload.github.com/damomurf/coredns-tailscale/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248074925,"owners_count":21043490,"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":["coredns","dns","tailscale"],"created_at":"2024-08-01T15:02:08.866Z","updated_at":"2025-04-09T17:14:29.383Z","avatar_url":"https://github.com/damomurf.png","language":"Go","funding_links":[],"categories":["Go","others"],"sub_categories":[],"readme":"coredns-tailscale\n=================\n\nA CoreDNS plugin implementation for Tailscale networks.\n\nRationale\n---------\n\nTailscale has some great built-in support for DNS and it keeps getting better. But there are some nice (if not purely cosmetic) reasons to be able to have Tailscale hosts resolve within your own existing domain. In addition, it's common for various services to run at a single Tailscale IP, for example, on a load balancer or web server hosting multiple virtual hosts.\n\nFeatures\n--------\nThis plugin for CoreDNS allows the following:\n\n1. Automatically serving an (arbitrary) DNS zone with each Tailscale server in your Tailnet added with A and AAAA records.\n1. Allowing CNAME records to be defined via Tailscale node tags that link logical names to Tailscale machines.\n\n\nConfiguration\n-------------\n\n```\nexample.com:53 {\n  tailscale example.com\n  log \n  errors\n}\n```\nThe above configuration will serve the connected Tailnet on the `example.com`. So, for a Tailnet with a machine named `test-machine`, A and AAAA records for `test-machine.example.com` will resolve.\n\nCNAME records via Labels\n------------------------\n\nA CNAME record can be added to point to a machine by simply creating a Tailscale machine tag prefixed by `cname-`. Any text in the tag after that prefix will be used to generate the resulting CNAME entry, so for example, the tag `cname-friendly-name` on the above `test-machine` will result in the following DNS records:\n\n```\nfriendly-name IN CNAME test-machine.example.com.\ntest-machine  IN A \u003cTailscale IPv4 Address\u003e\ntest-machine  IN AAAA \u003cTailscale IPv6 Address\u003e\n```\n\nTailscale\n---------\nNote that currently this plugin uses the local machine Tailscale socket to access Tailnet information. As a result, only machines reachable from the hosting Tailscale machine will be configured in DNS. Those machines are the ones output in `tailscale status` output (and the machine itself). This was implemented to avoid the need for managing expiring Tailscale API tokens.\n\n\nTODO\n----\n   * Update documentation to CoreDNS plugin [documentation standard](https://github.com/coredns/coredns/blob/master/plugin.md#documentation)\n   * Add metrics support\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdamomurf%2Fcoredns-tailscale","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdamomurf%2Fcoredns-tailscale","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdamomurf%2Fcoredns-tailscale/lists"}