A feature-complete Web UI for Headscale
Go to file
2025-02-19 10:37:10 -05:00
.github/workflows feat: update to node 22, pnpm 10 2025-02-04 17:25:39 -05:00
agent fix: require auth for agent ws 2025-01-15 15:14:37 +05:30
app fix: use ring instead of outline on components 2025-02-14 00:03:46 -05:00
assets feat: update images 2024-06-03 23:33:38 -04:00
docs feat: rework oidc to be more resilient 2025-01-10 13:55:24 +05:30
patches chore: remove unused patch 2024-12-06 19:05:15 -05:00
public chore: initial commit from create-remix 2024-03-25 17:50:10 -04:00
server fix: handle prod config for server correctly 2025-01-18 07:37:51 +00:00
test chore: remove old username in dns option 2025-01-18 13:22:43 +00:00
.dockerignore feat: add docker build 2024-03-26 10:10:34 -04:00
.env.example docs: solidify DOCKER_SOCK and ROOT_API_KEY usage 2024-05-22 12:43:42 -04:00
.gitignore chore: switch to react-router v7 2025-01-06 08:19:40 +05:30
.npmrc chore: add lefthook for lint staged 2025-01-20 08:26:00 +00:00
agent.Dockerfile feat: containerize agent 2025-01-15 10:17:30 +05:30
biome.json style: temporarily disable some naggy lints 2025-01-28 16:07:15 -05:00
CHANGELOG.md chore: v0.4.1 2025-01-18 08:18:28 +00:00
compose.yaml chore: switch to 0.25.0 in dev 2025-02-19 10:37:10 -05:00
config.example.yaml feat: switch to config file system 2025-02-13 12:35:12 -05:00
Dockerfile feat: update to node 22, pnpm 10 2025-02-04 17:25:39 -05:00
go.mod feat: create initial agent for localapi 2024-12-30 13:48:49 +05:30
go.sum feat: create initial agent for localapi 2024-12-30 13:48:49 +05:30
lefthook.yml chore: add lefthook for lint staged 2025-01-20 08:26:00 +00:00
LICENSE chore: add license and readme again 2024-03-26 10:24:28 -04:00
package.json feat: use new config env 2025-02-14 00:04:01 -05:00
pnpm-lock.yaml feat: switch to config file system 2025-02-13 12:35:12 -05:00
react-router.config.ts chore: switch to vite for server dev 2025-01-17 08:33:22 +00:00
README.md feat: update images 2024-06-03 23:33:38 -04:00
tailwind.config.ts chore: switch tailwind fonts 2025-01-20 08:15:14 +00:00
tsconfig.json chore: switch to vite for server dev 2025-01-17 08:33:22 +00:00
vite.config.ts feat: rework oidc to be more resilient 2025-01-10 13:55:24 +05:30

Headplane

An advanced UI for juanfont/headscale

Preview

Headscale is a self-hosted version of the Tailscale control server, however, it currently lacks a first-party web UI. Headplane aims to solve this issue by providing a GUI that can deeply integrate with the Headscale server. It's able to replicate nearly all of the functions of the official Tailscale SaaS UI, including:

  • Machine/Node expiry, network routing, name, and owner management
  • Access Control List (ACL) and tagging configuration
  • Support for OpenID Connect (OIDC) as a login provider
  • DNS and safe Headscale configuration management

Deployment

For more configuration options, refer to the Configuration guide.

For fully-featured deployments, see the Advanced Deployment guide. This includes automatic management of ACLs, DNS settings, and Headscale configuration. This is the closest experience to the Tailscale UI that can be achieved with Headscale and Headplane. If you aren't sure which one to pick, we recommend this.

If your environment is not able to support the advanced deployment, you can still use the basic deployment. For basic deployments, see the Basic Deployment guide. It does not include automatic management of ACLs, DNS settings, or the Headscale configuration, instead requiring manual editing and reloading when making changes.

Contributing

If you would like to contribute, please install a relatively modern version of Node.js and PNPM. Clone this repository, run pnpm install, and then run pnpm dev to start the development server.

Copyright (c) 2024 Aarnav Tale