Tools/juanfont/headscale

Headscale

Self-hosted Tailscale control server

45.4k ★+260/wkgrowthGoBSD 3-Clause "New" or "Revised" Licensetrending

The Lens

By Erik Loyd, SaaS CEO and former COO/CFO of an AWS Premier Partner.

Updated Oct 2026

Headscale replaces the closed server at the center of Tailscale: the coordination server that hands out keys, addresses and access rules. Your devices keep running the official Tailscale apps and direct WireGuard tunnels; the control plane is just yours. BSD-3 licensed, free, no paid tier.

It's a single Go binary on SQLite. You need a public server with HTTPS on port 443, and the maintainers officially support the binary and DEB packages, not Docker or reverse proxies. The 0.29 line closed real gaps: grants, SSH check mode with OIDC or CLI approval, and policy tests that reject a bad ACL before it lands. Upgrade gotcha: * in ACLs now means tailnet addresses only.

Solo and homelab: free. Small companies: this is where it pays, because Tailscale's free Personal plan is non-commercial only and Standard costs $8 per user per month. Larger orgs: its own docs say it isn't enterprise software and it runs a single tailnet, so pay Tailscale.

The catch: you're the support and security team. No built-in web UI, no Funnel, no flow logs, and relays default to Tailscale's public DERP servers. October's 0.29.5 fixed SSH access surviving removal of its policy rules, so stay current.

Free vs Self-Hosted vs Paid

fully free

Free: All of it. BSD-3-Clause, no paid tier, no hosted version. Supported per the docs: node registration (web auth and pre-auth keys), MagicDNS and split DNS, Taildrive and Taildrop, tags, subnet routers, exit nodes and via routing, an embedded DERP server, peer relays, ACLs and grants, Tailscale SSH, node attributes, policy tests and OIDC registration. Not supported in 0.29.5: Funnel, Serve, network flow logs, and OIDC groups in ACLs. Scope is a single tailnet.

Self-hosted: A server with a public IP, HTTPS on tcp/443, tcp/80 for Let's Encrypt HTTP-01, and udp/3478 if you enable the embedded DERP server (off by default; the default config points clients at Tailscale's public DERP map). SQLite is the default and recommended database; the config calls Postgres highly discouraged and kept for legacy reasons. Officially supported installs are the release binaries and DEB packages; container images are built but Docker and reverse proxies are not officially supported. Upgrades must step through every minor version. Clients are the official Tailscale apps, minimum v1.80.0. No built-in web UI; community UIs such as Headplane fill the gap.

Paid: None. The managed alternative is Tailscale: Personal is $0 for up to 6 users but only for non-commercial use, Standard is $8 per user per month, Premium is $18 per user per month, Enterprise is custom. Headscale's cost is a small public server plus your time.

Free with no paid tier. It matters most for small businesses: Tailscale's free Personal plan is non-commercial only, so the managed option for a company is Standard at $8 per user per month.

What to do by team size

Solo
free; your own control plane on any small public server
Small team
free; replaces Tailscale Standard at $8 per user per month if someone owns the server
Medium team
free if you have ops capacity, but no web UI, SCIM or flow logs; compare Tailscale Standard
Large team
Tailscale Premium ($18 per user per month) or Enterprise; Headscale's docs say it is not enterprise software
Self-hosting ops:moderate
View pricing page →

Get tools like this every Wednesday

One featured tool, three on the radar. No fluff.

Similar Tools

Score
88/100 · A
Adoption27/30
Maintenance25/25
Community11/20
License15/15
Analysis10/10

A low score is not a verdict on quality. Young and niche tools start low by design. How we calculate scores

Trust Signals

High adoption: 37,485 starsActive community: 2,030 forksPermissive license (BSD-3-Clause)

About

Stars
45,417
Forks
2,629

Explore Further

More tools in the directory