mirror of
https://github.com/nickyeoman/docker-compose-cookbooks.git
synced 2026-10-22 20:16:22 +00:00
Move step-by-step guides into headscale/docs/, slim README to a quick reference, and use $HEADSCALE_CONTAINER for docker exec commands. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1.1 KiB
1.1 KiB
Configure Nginx Proxy Manager
Add a proxy host for your headscale domain:
- Details tab:
- Domain Names:
headscale.example.com - Scheme:
http, Forward Hostname/IP:headscale, Forward Port:8080 - Enable: Websockets Support, Block Common Exploits
- Domain Names:
- SSL tab:
- Request a new Let's Encrypt certificate, force SSL
- Disable "HTTP/2 Support" — important and easy to miss.
Why HTTP/2 must be off
Tailscale clients register through a "noise" control protocol (/ts2021) that needs an upgrade handshake. Forcing HTTP/2 on this host silently breaks it, even though normal HTTPS requests (like /health) still work. Symptoms:
tailscale uphangs indefinitely- headscale logs
no upgrade header in TS2021 request /ts2021requests returnstatus=500
Don't disable caching/buffering unless you also see stalled long-poll connections — the important toggles are Websockets Support (on) and HTTP/2 Support (off).
Admin UI
The admin panel goes on this same proxy host as a Custom Location (/admin), not a separate subdomain. See Admin UI.