diff options
author | Ben Sima <ben@bsima.me> | 2023-10-09 15:12:06 -0400 |
---|---|---|
committer | Ben Sima <ben@bsima.me> | 2023-10-10 13:16:49 -0400 |
commit | 39481b42c19f91ee714987176937c089d2c170cb (patch) | |
tree | d526d0e850ed94310cd566e3ac6917753b90bc5d /Biz/Dev/Vpn.nix | |
parent | 6baad9c5fae4a7b8ea07376a0be52443eaa488fa (diff) |
Add beryllium and connect via VPN
I finally got everything setup for the new dev machine, but I ran into a
networking problem: I can't tell my home router to expose the ssh port 22 to
multiple hosts. I could have made beryllium use a different port, but instead I
decided to use tailscale, and this seems to work well. I still don't have
hostname routing working, but maybe that's a simple config in tailscale
somewhere.
Eventually I will get all intra-networking stuff to use a vpn, but for now just
using it for beryllium is fine.
Diffstat (limited to 'Biz/Dev/Vpn.nix')
-rw-r--r-- | Biz/Dev/Vpn.nix | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Biz/Dev/Vpn.nix b/Biz/Dev/Vpn.nix new file mode 100644 index 0000000..5a3c3e6 --- /dev/null +++ b/Biz/Dev/Vpn.nix @@ -0,0 +1,33 @@ +{ config, ... }: + +let + ports = import ../Cloud/Ports.nix; + domain = "headscale.simatime.com"; +in { + services.headscale = { + enable = true; + address = "0.0.0.0"; + port = ports.headscale; + settings = {}; + }; + + services.nginx.virtualHosts.${domain} = { + forceSSL = true; + enableAcme = true; + locations."/" = { + proxyPass = "http://localhost:${toString ports.headscale}"; + proxyWebsockets = true; + }; + }; + + environment.systemPackages = [ config.services.headscale.package ]; + + services.tailscale.enable = true; + + networking.firewall = { + checkReversePath = "loose"; + trustedInterfaces = [ "tailscale0" ]; + allowedUDPPorts = [ config.services.tailscale.port ]; + }; + +} |