tnl.dev :: docs
use your domain.
Use your own domain for public URLs.
managed and claimed domains
The selected team has a default domain. tnl uses it to build member namespaces and default public URL hostnames. A team can use the server's managed deployment domain or claim its own domain.
The managed deployment domain is controlled by the tnl server and available to team members. Each membership gets a server-generated managed label there. A claimed domain belongs exclusively to one team after DNS authority verification; each membership uses its immutable member slug under it. Only a ready domain can be used for new publish runs or selected as default.
claim a development domain
Select the team first, then claim a lowercase ASCII DNS name without a trailing dot. An admin or owner can claim; a claim may be pending while DNS authority is provisioned. On a self-hosted tnl server with the built-in authority, claiming requires Route 53 DNS automation (TNLD_ROUTE53_MANAGED_ZONE_ID and at least one ingress IP address). Without it, the claim returns HTTP 503 (unavailable). Hosted claims depend on the hosted deployment's DNS setup. See Self-hosting for server setup.
tnl team use "Studio"
tnl domain claim studio.example.com --default
tnl domain list--default asks to make the domain the team's default once it is ready. The claim response and domain list show its state and required DNS records when available. A domain overlapping an existing managed or claimed domain cannot be claimed.
delegate dns
Add the exact records reported by tnl domain claim or tnl domain list at your DNS provider. For a claimed domain, these are NS delegation records: delegate that domain to the nameservers reported by the server. If the domain is a subdomain such as studio.example.com, add the NS records in the parent example.com zone. Do not substitute an A record pointing at ingress for NS delegation. Check again with tnl domain list after DNS propagates; publish only when the state is ready. The tnl server then manages public URL DNS and certificate challenges beneath that domain.
tnl domain listchoose a default domain
tnl domain default studio.example.com
tnl domain listdomain default accepts a domain name or ID available to the selected team; it must be ready. The selected default determines where --subdomain and generated worktree hostnames go. There is no project domain setting. Use tunnel.host or --host for a complete hostname in another ready domain available to the team.
Only an owner can release a claimed domain, and it cannot be the current default. Select another ready domain first; releasing revokes authority for its public URLs.
tnl domain default MANAGED_DOMAIN
tnl domain release studio.example.comuse a namespace or shared hostname
For a member named alex on studio.example.com, tnl publish web --subdomain preview uses preview.alex.studio.example.com. A complete --host preview.studio.example.com is a team-shared public URL, reserved for an admin or owner. On the managed deployment domain, hostnames must remain in the member's managed-label namespace. See Teams for roles and Configuration for hostname defaults.