Skip to main content

Tailscale Service

Observer embeds a userspace Tailscale node for private access through Tailscale or Headscale. A separate host tailscaled daemon is not required for this module.

SettingKeyDefaultMeaning
EnableenabledfalseConnect the embedded node.
Hostnamehostnameanyshake-observer-<random>Node name in the tailnet.
Control URLcontrol_urlhttps://controlplane.tailscale.comCoordination server; replace for Headscale.
Auth Keyauth_keyEmptyRequired for first enrollment; ignored when a saved identity exists.
Forward Portsforward_ports[]Additional local services, e.g. 18000/tcp, 30000/tcp, 123/udp.

The web listener is always forwarded over TCP at its configured port, including when bound to loopback. Additional forwarding targets local services; start each target separately. TCP and UDP are explicit and independent, so use 123/udp for NTP. Restart the module after changing forwards.

Create an enrollment key in your coordination server, enter it in Settings, enable the module, and start it. Initial registration without a key is rejected. If enrollment fails, check key validity, coordination-server reachability, and service logs. Locate the embedded node in the tailnet administration console and connect to its tailnet IP or MagicDNS name, for example http://<node-ip>:8073.

Node identity is persisted in Observer's database, so retain it across upgrades and container recreation. A settings JSON export alone does not preserve that identity. An existing identity takes precedence over the enrollment key. Tailnet access rules and Observer's own web login both remain relevant. This module forwards selected services; it does not make the entire host a subnet router.

See Access Services Using Tailscale for client installation and the alternative host-daemon setup.