Self-host Headscale
VPN & Mesh Networkingdeployed & timed by usprices checked · Jul 2026
An open-source, self-hosted implementation of the Tailscale control server — run your own coordination plane for a private WireGuard mesh and keep using the official Tailscale clients, without depending on Tailscale's hosted service.
Tailscale / yr$96
Self-hosted / yr~$55
You keep$41/yr
Pocket the difference — spin it up on a cheap VPS in minutes.Start free on Kamatera →
Key facts
CategoryVPN & Mesh Networking
LicenseBSD-3-Clause
StackGo
Min RAM256 MB
Dockeryes
Difficulty
What you need
- Any VPS with at least 256 MB of RAM
- A domain you control — most self-hosted setups need HTTPS in front of them
- About an afternoon — budget time for troubleshooting
Install
Run these commands on your server:
# Headscale — control server only (no web UI); needs a config.yaml + TLS on 443
mkdir -p ./headscale/config ./headscale/data && cd ./headscale
curl -fsSL -o config/config.yaml https://raw.githubusercontent.com/juanfont/headscale/main/config-example.yaml
# Required edits: set server_url to your https:// URL, and change
# listen_addr from 127.0.0.1:8080 to 0.0.0.0:8080 or the port won't publish.
docker run --name headscale -d -p 443:8080 \
-v $(pwd)/config:/etc/headscale -v $(pwd)/data:/var/lib/headscale \
headscale/headscale:stable servedeploy guideHow to Deploy Headscale on a VPSvps picksBest VPS for self-hostingbenchmarked quarterly · re-priced monthly
An alternative to
Head-to-head
More in VPN & Mesh Networking
VPN & Mesh NetworkingNetBird
Go
hardRead guide →
VPN & Mesh NetworkingPangolin
TypeScriptGo
moderateRead guide →
VPN & Mesh Networkingwg-easy
TypeScriptNode.js
easyRead guide →