Quick answer

Headscale replaces Tailscale’s coordination server with one you run. Its requirements ask for a public IP and HTTPS on 443, so it cannot live on the homelab it unlocks. Budget a small VPS and a domain. But free Tailscale covers 6 users and unlimited devices, so most homelabs do not need it.

By LK Wood IV · 2026-08-15 · ~8 min read · St. Louis County, MO

Most people who look up Headscale want to run it on the machine already humming in their closet. That is the one deployment it does not do.

Headscale’s own requirements page asks for a server with a public IP address, recommends dual-stack IPv4 and IPv6, and serves over HTTPS on port 443 because the Tailscale client assumes that in certain situations. If your home connection sits behind CGNAT, you have no public IP to hand it. If it does have a real public IP, you can technically proceed, and you will have built a coordination server that depends on the same uplink as everything it coordinates.

So the shape of a Headscale deployment is fixed before you write any config: a small host somewhere else, with a public address and a name you can put a certificate on.

That is the practical answer. The more useful answer is the next section.

First, the case against doing this

Tailscale’s free Personal plan covers up to 6 users with unlimited user devices, 3 ACL groups, and access to nearly all features. It costs nothing and it is explicitly intended for homelabs and personal projects.

Read that against your actual situation. One person, a NAS, a Proxmox host, three VMs, a laptop and a phone? You are not close to a limit. There is no bill coming. Headscale would replace a working, maintained, zero-cost service with one you patch, back up, and get paged about.

I want to be blunt, because the search results for this topic are not: for the majority of homelabs, Headscale solves a problem you do not have. Running it is a hobby in its own right, and that is a completely legitimate reason to run it. It is not the same reason as necessity, and the two get blurred constantly.

Three situations where it genuinely earns the work:

You object to the metadata, not the cost. Tailscale’s coordination server knows your device names, your public keys, and who connects to what. The traffic is end-to-end encrypted and they cannot read it, but the graph is theirs. If that specific fact is what bothers you, Headscale is a direct answer and no amount of free tier fixes it.

Your structure does not fit the Personal plan. More than 6 users, or an ACL model that needs more than 3 groups, and you are looking at a paid tier. At that point the comparison is a real one.

You want the control plane to survive theirs. Existing tailnets keep passing traffic when the coordination server is unreachable, but new nodes and key rotations do not. If your tolerance for that is zero, owning the control plane is the only fix.

Everything else — “self-hosting is better,” “I want to own my stack” — is preference, and preference is fine. Just price it honestly against a free service that already works.

What it does support

The 2026 feature list is broad, which surprised me. Node registration by web auth and pre-auth keys, MagicDNS, split DNS and search domains, tags, subnet routers, exit nodes with route filtering, dual-stack, ephemeral nodes, embedded DERP and peer relays, ACLs and grants, autogroups, Tailscale SSH, OIDC single sign-on, Taildrop and Taildrive, Funnel and Serve, network flow logs.

The documented gap worth checking before you commit: OIDC groups cannot be used in ACLs. If your plan was to point Headscale at your identity provider and let group membership drive access policy, that specific path is closed. Verify it against your intended policy now rather than after you have migrated forty nodes.

Headscale is not a Tailscale product. It reimplements a protocol it does not control, which is the standing structural risk with anything in this category and is worth naming even though the project has tracked upstream well.

The host

A control server does very little work. It coordinates key exchange and hands out routes, then gets out of the way while nodes talk directly. SQLite is the assumed database in the setup requirements, so there is no separate database tier to size.

What it needs is not capacity. It is position:

  • A public IPv4 address. Dual-stack with IPv6 is recommended.
  • Port 443 reachable, with a valid certificate.
  • Uptime that is independent of the network it serves.

Any small VPS tier meets the first two. The third is the one people undercut by hosting it at home, and it is the whole reason the requirement exists.

There is one more reason not to put it on your home connection, and it is the sharpest: if Headscale is the thing that lets you reach your homelab remotely, and Headscale lives in your homelab, then you cannot fix your homelab remotely. You have built a mesh VPN whose failure mode is a locked door with the key inside. I would put the control server anywhere except the network it exists to let me into.

The domain

HTTPS on 443 means a certificate, and a certificate means a hostname. A subdomain on a domain you already own works fine — nothing about this needs a dedicated registration.

If you do not own one yet, this is the same purchase you would make for any public service, and it is worth doing before the install rather than during it. Certificate issuance is the step where a missing DNS record turns twenty minutes into an evening.

Where this sits against the alternatives

If you have not committed yet, the comparison is worth doing properly. I have written up Tailscale against plain WireGuard, which is the real decision for most people, and Tailscale against Cloudflare Tunnel for the case where you want to publish rather than connect. NetBird against Tailscale covers the other self-hostable mesh worth a look, and it is the one I would compare Headscale to most carefully, because it was designed to be self-hosted rather than adapted to it.

If you just want remote access to your homelab today and are not attached to owning the control plane, Tailscale on a homelab takes about ten minutes. If you want no third party in the path at all, WireGuard on Proxmox is the honest floor — more manual, no coordination server to run, no vendor.

What I have not tested

I have not run Headscale through a Tailscale client major-version bump, which is the failure mode I would most want data on before recommending it to someone whose remote access depends on it. The project tracks upstream well by reputation. Reputation is not a measurement.

I have not tested the OIDC integration, so I cannot tell you how painful the ACL group limitation is in practice, only that it is documented.

I have not run it at a scale where SQLite is the constraint.

What getting this wrong costs

The expensive version is not a failed install. It is a successful one, six months ago, on a box in the closet, which you have quietly come to depend on. Then the power blips while you are travelling, and the control server that would have let you back in is the thing that is down.

Put it somewhere else. That is most of the advice on this page.

Frequently asked questions

Can I run Headscale on my home server?
Not in the normal case. Headscale’s own requirements page asks for a server with a public IP address, recommends dual-stack IPv4 and IPv6, and states that Headscale is served over HTTPS on port 443 because the Tailscale client assumes that in certain situations. A home connection behind CGNAT has no public IP to give it. Even on a connection with a real public IP, you are making your coordination server depend on the same uplink and the same power as the network it coordinates.
Is Headscale an official Tailscale product?
No. The project describes itself as a self-hosted, open source alternative to the Tailscale control server. It is not built or supported by Tailscale, and it tracks their client protocol rather than being tracked by it.
Do I actually need Headscale, or is free Tailscale enough?
For most homelabs, free Tailscale is enough. The Personal plan is free and covers up to 6 users with unlimited user devices, 3 ACL groups, and access to nearly all features. If you are one person with a rack of machines, you are comfortably inside that. Headscale earns its keep when you object to a third party holding your coordination metadata, when you need more than the Personal plan’s structure allows without paying, or when you want the control plane to keep working if Tailscale’s does not.
What does Headscale not do that Tailscale does?
The supported list is broad in 2026 — MagicDNS, split DNS, subnet routers, exit nodes, ACLs and grants, Tailscale SSH, OIDC single sign-on, Taildrop and Taildrive, embedded DERP, Funnel and Serve. The documented gap worth knowing before you commit is that OIDC groups cannot be used in ACLs, so if your access policy was going to be driven by identity-provider group membership, check that limitation against your plan first.
What database does Headscale use?
SQLite is the assumed backend in the setup requirements, which suits the scale most self-hosters run. Plan your backups around that file. It holds your node registrations, and losing it means re-registering every device by hand.
Does Headscale need its own domain?
Practically, yes. HTTPS on 443 means a certificate, and a certificate means a hostname. A subdomain on a domain you already own is fine. This is the same requirement as any other public service you terminate TLS for.

Evidence ledger

Last updated
Methodology
This networking guide was written and edited by Lowell K. Wood IV in St. Louis County, MO. Specs and prices verified against vendor and project documentation current on the date above. Full editorial standard: methodology.
Update log
  • 2026-08-15 — Last reviewed and updated.
Corrections
Spotted an error or a stale number? Email hello@techfuelhq.com. Confirmed corrections are added to the update log above.

About the author

Written by Lowell K. Wood IV, who builds and runs TechFuelHQ from St. Louis, Missouri.