A feature-complete Web UI for Headscale
  • TypeScript 88.8%
  • Go 5.5%
  • Nix 3.6%
  • Shell 0.9%
  • CSS 0.6%
  • Other 0.6%
Find a file
2026-03-27 13:32:59 -04:00
.devcontainer feat: update nodejs 22 references to 24 2026-03-17 13:24:55 -04:00
.github chore: update build process 2026-03-17 12:23:39 -04:00
app feat: switch agent to a periodic dump rather than long running process 2026-03-27 13:32:59 -04:00
cmd feat: switch agent to a periodic dump rather than long running process 2026-03-27 13:32:59 -04:00
docs feat: switch agent to a periodic dump rather than long running process 2026-03-27 13:32:59 -04:00
drizzle feat: upgrade to node 24 and drizzle 2026-03-17 13:22:48 -04:00
internal feat: switch agent to a periodic dump rather than long running process 2026-03-27 13:32:59 -04:00
nix chore: update nix pnpm deps hash 2026-03-26 17:00:23 +00:00
patches chore: random quick fixes 2025-12-04 04:11:52 -05:00
public feat: refactor several components and clean up ui 2026-03-09 22:09:58 -04:00
tests test: add some unit tests for auth methods 2026-03-19 14:11:17 -04:00
.dockerignore chore: switch to build script 2025-10-19 14:09:56 -04:00
.gitignore feat: support headplane compiled without ssh 2025-10-19 15:29:13 -04:00
.npmrc feat: switch away from websocket to stdout messaging for agent 2025-05-25 11:02:19 -04:00
.oxfmtrc.json feat: switch to oxc linting/formatting 2026-01-15 22:09:58 -05:00
.oxlintrc.json feat: switch to oxc linting/formatting 2026-01-15 22:09:58 -05:00
AGENTS.md chore: update agents file 2026-03-14 11:50:19 -04:00
build.sh feat: add docker health check 2026-01-13 22:54:11 -05:00
Caddyfile chore: add tooling for go wasm 2025-06-16 11:45:23 -04:00
CHANGELOG.md chore: v0.6.2 2026-02-26 18:22:12 -05:00
compose.yaml chore: upgrade dev to 0.28 2026-02-08 11:11:56 -05:00
config.example.yaml feat: switch to a generalized api key config 2026-03-27 13:32:59 -04:00
Dockerfile fix: prefix hp_wasm paths correctly 2026-03-26 12:54:29 -04:00
drizzle.config.ts feat: cleanup removal of old ssh plexer and logic 2025-06-20 00:14:00 -04:00
flake.lock flake.lock: Update 2026-03-22 08:36:54 +00:00
flake.nix feat: update nodejs 22 references to 24 2026-03-17 13:24:55 -04:00
go.mod fix: upgrade to new tailscale go version to fix ssh 2025-09-27 12:10:15 -04:00
go.sum fix: upgrade to new tailscale go version to fix ssh 2025-09-27 12:10:15 -04:00
lefthook.yml fix: bruh 2026-01-15 22:16:49 -05:00
LICENSE chore: add license and readme again 2024-03-26 10:24:28 -04:00
mise.toml feat: upgrade to node 24 and drizzle 2026-03-17 13:22:48 -04:00
package.json feat: ditch react-aria 2026-03-26 12:58:24 -04:00
pnpm-lock.yaml feat: ditch react-aria 2026-03-26 12:58:24 -04:00
react-router.config.ts chore: update dependencies 2026-01-15 22:11:19 -05:00
README.md docs: new installation docs! 2025-10-16 21:03:40 -04:00
tsconfig.json fix: actually fix type errors 2026-03-16 23:41:09 -04:00
vite.config.ts feat: upgrade to vite 8 stable 2026-03-17 13:41:47 -04:00
vitest.config.ts test: add docker and proc e2e testing 2026-03-19 12:35:25 -04:00
wrangler.toml fix: reorganize vitepress docs into /docs 2025-10-16 18:29:51 -04:00

Headplane

A feature-complete web UI for Headscale

Preview

Headscale is the de-facto self-hosted version of Tailscale, a popular Wireguard based VPN service. By default, it does not ship with a web UI, which is where Headplane comes in. Headplane is a feature-complete web UI for Headscale, allowing you to manage your nodes, networks, and ACLs with ease.

Headplane aims to replicate the functionality offered by the official Tailscale product and dashboard, being one of the most feature complete Headscale UIs available. These are some of the features that Headplane offers:

  • Machine management, including expiry, network routing, name, and owner management
  • Access Control List (ACL) and tagging configuration for ACL enforcement
  • Support for OpenID Connect (OIDC) as a login provider
  • The ability to edit DNS settings and automatically provision Headscale
  • Configurability for Headscale's settings

Deployment

Refer to the website for detailed installation instructions.

Versioning

Headplane uses semantic versioning for its releases (since v0.6.0). Pre-release builds are available under the next tag and get updated when a new release PR is opened and actively in testing.

Contributing

Headplane is an open-source project and contributions are welcome! If you have any suggestions, bug reports, or feature requests, please open an issue. Also refer to the contributor guidelines for more info.


ACLs Machine Management

Copyright (c) 2025 Aarnav Tale