{ config, ... }: let domain = "headscale.hoyer.xyz"; in { services = { headscale = { enable = true; address = "0.0.0.0"; port = 8080; settings = { server_url = "https://${domain}"; dns = { base_domain = "hoyer.tail"; }; oidc = { allowed_domains = [ "hoyer.xyz" ]; client_id = "UgQYtXftYvB9ua4cuyZ9NBvaknQfN76pPnf50pDhqghdb87g9tFcuSMiTLVje3R7"; client_secret_path = "/var/lib/headscale/client_secret"; issuer = "https://nc.hoyer.xyz"; }; }; }; nginx.virtualHosts.${domain} = { useACMEHost = "hoyer.xyz"; forceSSL = true; locations."/" = { proxyPass = "http://localhost:${toString config.services.headscale.port}"; proxyWebsockets = true; }; }; }; environment.systemPackages = [ config.services.headscale.package ]; }