diff options
| author | adikro <adikro@disroot.org> | 2026-06-12 00:53:25 +0200 |
|---|---|---|
| committer | adikro <adikro@disroot.org> | 2026-06-12 00:53:25 +0200 |
| commit | 1eba5398fd09f98bd11cbf8c3b80f20bb9ce1f2d (patch) | |
| tree | c103e3d6ee0e3b2a1e3ac8fd525c08eb7d37e938 /os/srv/headscale.nix | |
| parent | 66eff7dbb117ccf9cbf743036f058d5dcb0a78e6 (diff) | |
microvm and dns stuff
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; + }; + }; + }; +} |
