Skip to content

Headplane

A feature-complete Web UI for Headscale.

View the synix NixOS module on Forgejo.

References

Sops

Provide the following entries to your secrets.yaml:

Replace abc123 with your actual secrets

headplane:
    cookie_secret: abc123
    agent_pre_authkey: abc123

Generate your cookie secret with:

nix-shell -p openssl --run "openssl rand -hex 16"

Generate your agent pre-authkey with:

sudo headscale users create headplane-agent
sudo headscale users list # get headplane-agent user id
sudo headscale preauthkeys create --expiration 99y --reusable --user <HEADPLANE-AGENT-ID>

Setup

Set a CNAME record for your Headplane subdomain (headplane by default) pointing to your domain.

Config

# flake.nix
headplane.url = "github:tale/headplane";
headplane.inputs.nixpkgs.follows = "nixpkgs";
# configuration.nix
{
  imports = [ inputs.synix.nixosModules.headplane ];

  services.headplane = {
    enable = true;
  };
}

Usage

Create a Headscale API key:

sudo headscale apikeys create

Visit the admin login page: https://sub.domain.tld/admin/login