Aarnav Tale 0a51182eed fix(pre-auth-keys): pass Headscale numeric user id when expiring on 0.27.x
The pre-0.28 ExpirePreAuthKey RPC takes a uint64 `user` field plus the
key string. The API layer reads that uint64 from `key.user?.id`, but
the action was wrapping the form's user_id as `{ name: user }` — so
.id was always undefined and the wire request sent an empty string,
which Headscale rejects with "proto: invalid value for uint64 field
user". 0.28+ is unaffected because the new expire endpoint only reads
`key.id` (the stable preauthkey id).

Pass `{ id: user }` so the numeric Headscale user id reaches the wire.

Amp-Thread-ID: https://ampcode.com/threads/T-019e7ae4-6862-760c-a3e7-239350eab71d
Co-authored-by: Amp <amp@ampcode.com>
2026-05-30 18:49:11 -04:00
2026-04-11 14:56:46 -04:00
2026-05-25 15:53:44 +00:00
2026-04-26 23:52:49 -04:00
2025-10-19 14:09:56 -04:00
2026-04-11 14:32:21 -04:00
2026-03-14 11:50:19 -04:00
2025-06-16 11:45:23 -04:00
2026-02-08 11:11:56 -05:00
2026-05-27 20:37:47 -04:00
2026-01-15 22:16:49 -05:00
2024-03-26 10:24:28 -04:00
2026-03-17 13:22:48 -04:00
2026-04-26 20:38:45 -04:00
2026-04-26 23:52:49 -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

S
Description
A feature-complete Web UI for Headscale
Readme MIT 14 MiB
Languages
TypeScript 90.9%
Go 3.5%
Nix 3.4%
CSS 1%
Shell 0.7%
Other 0.5%