A tiny DNS server that fetches your list of Tailscale machines and serves records for them on any domain you want.
I love using Tailscale for all my devices, but I am paranoid about configuring my services to use the *.ts.net
domain given to me by Tailscale in case I ever need to migrate away from Tailscale.
This small DNS server reads the list of all your Tailscale devices and returns A
and AAAA
records as subdomains on an arbitrary domain you specify.
- Download the latest release from Github
- Install via Docker from GHCR:
$ docker pull ghcr.io/giodamelio/tailscale-custom-domain-dns:0.1.0
- Install with Golang cli:
go install github.com/giodamelio/tailscale-custom-domain-dns
- Clone and build from repo:
git clone https://github.com/giodamelio/tailscale-custom-domain-dns.git
For docs on all the config optons, see the example config file
The config file can be overridden with environment variables. They all have the prefix TSDNS
. Nested options are seperated by underscores and dashes are removed. For example:
[dns-server]
port = 2222
# becomes
$ export TSDNS_DNSSERVER_PORT=2222
- Webhook endpoint allowing automatic refreshing of devices when a new device is added
- LetsEncrypt DNS-01 Challenge integration
Config based static records/aliases- Simple web ui listing status
- Status url for Prometheus or monitoring