NixOS headscale module generates a minimal config.yaml with only explicitly set values. Headplane with config_strict=true rejects this because fields like database, derp, dns, listen_addr are missing (headscale fills these with internal defaults). Setting config_strict to false makes headplane tolerate the incomplete config.
31 lines
659 B
Nix
31 lines
659 B
Nix
{
|
|
outputs,
|
|
constants,
|
|
...
|
|
}:
|
|
|
|
{
|
|
imports = [
|
|
outputs.nixosModules.headplane
|
|
];
|
|
|
|
services.headplane = {
|
|
enable = true;
|
|
port = constants.services.headplane.port;
|
|
settings = {
|
|
headscale = {
|
|
url = "http://127.0.0.1:${toString constants.services.headscale.port}";
|
|
public_url = "https://${constants.services.headscale.fqdn}";
|
|
config_strict = false;
|
|
};
|
|
};
|
|
};
|
|
|
|
services.nginx.virtualHosts."${constants.services.headplane.fqdn}" = {
|
|
forceSSL = true;
|
|
enableACME = true;
|
|
locations."/" = {
|
|
proxyPass = "http://127.0.0.1:${toString constants.services.headplane.port}";
|
|
};
|
|
};
|
|
}
|