Skip to content
Snippets Groups Projects
make-monitoring.nix 1.41 KiB
Newer Older
  • Learn to ignore specific revisions
  • { publicIPv4
    , hardware
    , publicStoragePort
    , ristrettoSigningKeyPath
    , passValue
    , sshUsers
    , stateVersion
    
    , monitoringvpnIPv4 ? null
    , monitoringvpnKeyDir ? null
    , vpnClientIPs ? null
    , ... }: let
    
      enableVpn = if (monitoringvpnKeyDir != null &&
                      monitoringvpnIPv4 != null &&
                      vpnClientIPs != null)
                  then true else false;
    
      vpnSecrets = if !enableVpn then {} else {
        "monitoringvpn-private-key" = {
          source = monitoringvpnKeyDir + "/server.key";
          destination = "/run/keys/monitoringvpn/server.key";
          owner.user = "root";
          owner.group = "root";
          permissions = "0400";
          action = ["sudo" "systemctl" "restart" "wireguard-monitoringvpn.service"];
        };
        "monitoringvpn-preshared-key" = {
          source = monitoringvpnKeyDir + "/preshared.key";
          destination = "/run/keys/monitoringvpn/preshared.key";
          owner.user = "root";
          owner.group = "root";
          permissions = "0400";
          action = ["sudo" "systemctl" "restart" "wireguard-monitoringvpn.service"];
        };
      };
    in rec {
    
    Florian Sesser's avatar
    Florian Sesser committed
    
      deployment = {
        targetHost = publicIPv4;
    
    
        secrets = { } // vpnSecrets;
    
    Florian Sesser's avatar
    Florian Sesser committed
      };
    
      imports = [
        hardware
        ../../nixos/modules/monitoring/vpn/server.nix
      ];
    
    
      services.private-storage.monitoring.vpn.server = if !enableVpn then {} else {
    
    Florian Sesser's avatar
    Florian Sesser committed
        enable = true;
    
    Florian Sesser's avatar
    Florian Sesser committed
        ip = monitoringvpnIPv4;
    
    Florian Sesser's avatar
    Florian Sesser committed
      };
    
      system.stateVersion = stateVersion;
    }