nix machine / user configurations
at terra 1.8 kB view raw
1{ 2 pkgs, 3 terra, 4 inputs, 5 ... 6}: 7let 8 client-modules = pkgs.callPackage "${inputs.nsid-tracker}/nix/client-modules.nix" { }; 9 client = pkgs.callPackage "${inputs.nsid-tracker}/nix/client.nix" { 10 PUBLIC_API_URL = "gaze.systems/nsid-tracker/api"; 11 inherit client-modules; 12 }; 13 # server = terra.nsid-tracker-server; 14 port = 3713; 15in 16{ 17 systemd.services.nsid-tracker-client = { 18 description = "nsid-tracker-client"; 19 wantedBy = [ "multi-user.target" ]; 20 after = [ "network.target" ]; 21 environment = { 22 # ORIGIN = "https://gaze.systems"; 23 PORT = toString port; 24 }; 25 serviceConfig = { 26 DynamicUser = true; 27 ExecStart = "${client}/bin/website"; 28 Restart = "on-failure"; 29 RestartSec = 5; 30 WorkingDirectory = "/var/lib/nsid-tracker"; 31 }; 32 }; 33 34 systemd.services.nsid-tracker-keep-alive = { 35 description = "keeps nsid-tracker peer connection alive"; 36 wantedBy = [ "multi-user.target" ]; 37 after = [ "network.target" ]; 38 serviceConfig = { 39 Type = "oneshot"; 40 ExecStart = "${pkgs.curl}/bin/curl http://dusk-devel-mobi:${toString port}/events"; 41 }; 42 }; 43 systemd.timers.nsid-tracker-keep-alive.timerConfig = { 44 OnBootSec = "5 min"; 45 OnUnitActiveSec = "5 min"; 46 Unit = "nsid-tracker-keep-alive.service"; 47 }; 48 49 services.nginx.virtualHosts."gaze.systems" = { 50 locations."/nsid-tracker/api" = { 51 proxyPass = "http://100.64.0.6:${toString port}/"; 52 proxyWebsockets = true; 53 extraConfig = '' 54 rewrite ^/nsid-tracker/api/(.*) /$1 break; 55 ''; 56 }; 57 locations."/nsid-tracker".return = "301 /nsid-tracker/"; 58 locations."/nsid-tracker/" = { 59 proxyPass = "http://localhost:${toString port}/"; 60 extraConfig = '' 61 rewrite ^/nsid-tracker/(.*)$ /$1 break; 62 ''; 63 }; 64 }; 65}