Files
headscale/nix
Kristoffer Dalby 4d0b273b90 types: add node.expiry config, deprecate oidc.expiry
Introduce a structured NodeConfig that replaces the flat
EphemeralNodeInactivityTimeout field with a nested Node section.

Add node.expiry config (default: no expiry) as the unified default key
expiry for all non-tagged nodes regardless of registration method.

Remove oidc.expiry entirely — node.expiry now applies to OIDC nodes
the same as all other registration methods. Using oidc.expiry in the
config is a hard error. determineNodeExpiry() returns nil (no expiry)
unless use_expiry_from_token is enabled, letting state.go apply the
node.expiry default uniformly.

The old ephemeral_node_inactivity_timeout key is preserved for
backwards compatibility.

Updates #1711
2026-04-08 13:00:22 +01:00
..

Headscale NixOS Module

This directory contains the NixOS module for Headscale.

Rationale

The module is maintained in this repository to keep the code and module synchronized at the same commit. This allows faster iteration and ensures the module stays compatible with the latest Headscale changes. All changes should aim to be upstreamed to nixpkgs.

Files

Usage

Add to your flake inputs:

inputs.headscale.url = "github:juanfont/headscale";

Then import the module:

imports = [ inputs.headscale.nixosModules.default ];

See example-configuration.nix for configuration options.

Upstream

The module in this repository may be newer than the nixpkgs version.