Tooling

Self-Hosted VPN & Tailscale Management

Headscale, Headplane, Wg-easy, NetBird, Pangolin — running your own tailnet.

For VPN / mesh fundamentals see VPN & Mesh Networking. This page focuses on the self-hosted control planes and management UIs that let you run a tailnet without depending on Tailscale's SaaS.

Self-hosted Tailscale (Headscale + UIs)

WireGuard with web UI (no Tailscale layer)

Tailscale alternatives (self-hostable)

Cloudflare Tunnel alternatives (self-hostable inbound)

Mesh routing extras

  • Subnet routers — advertise your home LAN through a tailnet device; Tailscale + Headscale both support.
  • Exit nodes — route all traffic through one tailnet node; useful for "use my home IP from anywhere."
  • MagicDNS — Tailscale's name resolution; built into Headscale too.
  • DNS overrides — push your Pi-hole / AdGuard DNS as the tailnet resolver.

Common topology

  • Headscale running in a container behind Caddy + Cloudflare Tunnel (so clients reach it but you don't open ports).
  • Headplane for managing it.
  • All your boxes run the official Tailscale client pointed at your Headscale instance.
  • Pi-hole or AdGuard Home as MagicDNS upstream — every client gets ad-blocking automatically.
  • Subnet router advertising your home LAN so Tailscale clients can reach it like they're on it.

Patterns to adopt

  • Use the official Tailscale client with Headscale. Don't fork the client.
  • ACLs in JSON, in git. Treat them like code.
  • Short-lived auth keys — pre-auth keys with short expiry for new device onboarding.
  • MagicDNS + Pi-hole — best ad-blocking story available.
  • Pin Headscale version — minor versions sometimes break wire compat with newer clients.

Pick this if…

  • Default self-host Tailscale: Headscale + Headplane.
  • You don't want Tailscale-shape: NetBird (closest alternative) or Wg-easy (raw WireGuard with UI).
  • Self-host CF Tunnel alternative: Pangolin.
  • Quick port forwarding without VPN: frp / rathole / bore / inlets.
  • Identity + VPN combined: Firezone or DefGuard.

On this page