Skip to content
Snippets Groups Projects
make-testing.nix 2.28 KiB
Newer Older
  • Learn to ignore specific revisions
  • { publicIPv4
    , hardware
    , publicStoragePort
    , ristrettoSigningKeyPath
    , passValue
    , sshUsers
    , stateVersion
    
    , monitoringvpnKeyDir ? null
    
    , monitoringvpnIPv4 ? null
    
    , monitoringvpnEndpoint ? null
    
      enableVpn = monitoringvpnKeyDir != null &&
    
                  monitoringvpnIPv4 != null &&
                  monitoringvpnEndpoint != null;
    
    
      vpnSecrets = if !enableVpn then {} else {
        "monitoringvpn-secret-key" = {
    
          source = monitoringvpnKeyDir + "/${monitoringvpnIPv4}.key";
    
          destination = "/run/keys/monitoringvpn/client.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 {
    
        secrets = {
          "ristretto-signing-key" = {
            source = ristrettoSigningKeyPath;
    
            destination = "/run/keys/ristretto.signing-key";
    
            owner.user = "root";
            owner.group = "root";
            permissions = "0400";
            # Service name here matches the name defined by our tahoe-lafs nixos
            # module.  It would be nice to not have to hard-code it here.  Can we
            # extract it from the tahoe-lafs nixos module somehow?
            action = ["sudo" "systemctl" "restart" "tahoe.storage.service"];
          };
    
        ../../nixos/modules/private-storage.nix
    
    Florian Sesser's avatar
    Florian Sesser committed
        ../../nixos/modules/monitoring/vpn/client.nix
    
      services.private-storage =
      { enable = true;
        inherit publicIPv4;
        inherit publicStoragePort;
    
        ristrettoSigningKeyPath = deployment.secrets.ristretto-signing-key.destination;
    
    Jean-Paul Calderone's avatar
    Jean-Paul Calderone committed
    
      system.stateVersion = stateVersion;
    
      services.private-storage.monitoring.vpn.client = if !enableVpn then {} else {
    
        enable = true;
        ip = monitoringvpnIPv4;
    
        endpoint = monitoringvpnEndpoint;
    
        endpointPublicKeyFile = monitoringvpnKeyDir + "/server.pub";