Installation

Every installation method ends in the same place: Northplane running next to an existing Headscale server, serving its UI under /admin. Pick the method that matches how Headscale already runs.

MethodUse it when
DockerHeadscale runs in Docker, or Docker is fine for both
NativeHeadscale runs directly on the host, often under systemd
Nix/NixOSThe machine is managed with NixOS

Docker is the recommended method. It ships everything prebuilt, including the agent and Browser SSH, and it's the only setup where Northplane can restart Headscale without a supervisor.

Before installing

Northplane needs Headscale 0.27.0 or newer, already running. Northplane reads its settings from a YAML file, /etc/headplane/config.yaml by default. Start from the example configuration and set at least these two fields:

headscale:
  # How Northplane reaches Headscale, for example http://headscale:8080 in Docker
  url: "http://headscale.example.com"

server:
  # Exactly 32 characters, for example from `openssl rand -hex 16`
  cookie_secret: "<32 random characters>"

Everything else has a default. Configuration covers the file in detail, including environment variables and keeping secrets out of it.

After installing

Once Northplane is up, sign in with a Headscale API key and decide how much it should manage:

  • Edit DNS and sign-in restrictions from the UI by giving Northplane access to Headscale's config file. See Integrations.
  • Put it behind a reverse proxy on the same domain as Headscale. See Reverse proxy.
  • Let people sign in with their own accounts through SSO or proxy authentication.
  • Show machine versions and open SSH sessions from the browser with the agent and Browser SSH.

On this page