Repository navigation
Headscale
mattbox03 edited this page Oct 23, 2026
·
1 revision
The gateway joins a self-hosted Headscale control server (0.26 or newer) the same way as hosted Tailscale; only the login server differs.
- On the Headscale server create a user and a pre-auth key — preferably expiring, reusable only if needed, ideally tagged.
- Web UI → Tailscale: set Login server, e.g.
https://headscale.example.com(host,host:portandhttp://…also work). - Paste the pre-auth key in Auth key, choose a hostname, enable, save.
- Approve advertised routes or the exit node on the server
(
headscale routes …or your admin UI); the device cannot see approval. - Status → Tailscale connected. A control connection alone is not proof that peers or services work.
- HTTPS certificates are validated against public CAs only; a private or self-signed CA is not accepted.
- The DERP map comes from your server; if it serves none, only direct paths work.
- Reported client version is an optional compatibility override and adds no capability.
- Tailnet lock is not supported: the device cannot sign its own node key.
Full guide: HEADSCALE.md.
Start
Roles
- Service Gateway
- Subnet Router
- Exit Node
- Headscale
- Recovery and Wake-on-LAN
- Monitoring and Health
- Integrations
Operate
Reference
Project