diff options
Diffstat (limited to 'os/srv/headscale.nix')
| -rw-r--r-- | os/srv/headscale.nix | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/os/srv/headscale.nix b/os/srv/headscale.nix new file mode 100644 index 0000000..a650067 --- /dev/null +++ b/os/srv/headscale.nix @@ -0,0 +1,42 @@ +{ + config, + lib, + masterDomain, + ... +}: +let + cfg = config.os.srv.headscale; +in +{ + options.os.srv.headscale.enable = lib.mkEnableOption "enables headscales"; + config = lib.mkIf cfg.enable { + services.headscale = { + enable = true; + address = "127.0.0.1"; + port = 8080; + + settings = { + server_url = "https://vpn.${masterDomain}"; + + dns = { + magic_dns = true; + base_domain = "vpn.internal"; + nameservers = [ "10.255.1.1" ]; + }; + + ip_prefixes = [ + "10.254.0.0/16" + ]; + }; + }; + + services.nginx.virtualHosts."vpn.${masterDomain}" = { + enableACME = true; + forceSSL = true; + locations."/" = { + proxyPass = "http://127.0.0.1:8080"; + proxyWebsockets = true; + }; + }; + }; +} |
