This should be excellent for selfhosters that have all their services in one VM. I haven’t tried this myself, but I think this means you can:
- you can create memorable links instead of memorizing port numbers:
jellyfin.foo-bar.ts.net - share one service from a machine instead of all of them in a more intuitive way
If you’re new to Tailscale Services, it lets you publish internal resources like databases, APIs, and web servers as named services in your tailnet, using stable MagicDNS names. Rather than connecting to individual machines, teams connect to logical services that automatically route traffic to healthy, available backends across your infrastructure. This decoupling makes migrations, scaling, and high availability far easier, without reconfiguring clients, rewriting access policies, or standing up load balancers. Our documentation has details on use cases, requirements, and implementation.



I have long had a switch to pangolin for my homelab services on the roadmap. Can you explain what you mean with internal connections making more sense?
Just minor issue that maybe I’m not configuring correctly but when I use private resources I have to use the Ip instead of the alias. Looked online and it seemed other users were experiencing the same issue of not being able to use the alias. At this point I’m almost thinking it might be easier set up a second traefik container that just handles all the local connections and configure manually. Would love to just type my *.local address and have it be simple like that. Otherwise I love it and everything else it comes with! An alternative could be netbird, but want to see if I can figure out that small tid bit of pangolin first.