Skip to content
Snippets Groups Projects
make-issuer.nix 2.44 KiB
Newer Older
  • Learn to ignore specific revisions
  • { hardware
    , ristrettoSigningKeyPath
    
    , stripeSecretKeyPath
    
    , issuerDomain
    , letsEncryptAdminEmail
    
    , monitoringvpnKeyDir ? null
    
      enableVpn = if (monitoringvpnKeyDir != null &&
    
                      monitoringvpnIPv4 != null)
                  then true else false;
    
      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";
            action = ["sudo" "systemctl" "restart" "zkapissuer.service"];
          };
    
          "stripe-secret-key" = {
            source = stripeSecretKeyPath;
    
            destination = "/run/keys/stripe.secret-key";
    
            owner.user = "root";
            owner.group = "root";
            permissions = "0400";
            action = ["sudo" "systemctl" "restart" "zkapissuer.service"];
          };
    
        ../../nixos/modules/issuer.nix
    
    Florian Sesser's avatar
    Florian Sesser committed
        ../../nixos/modules/monitoring/vpn/client.nix
    
      services.private-storage.sshUsers = sshUsers;
    
      services.private-storage-issuer = {
        enable = true;
    
    Jean-Paul Calderone's avatar
    Jean-Paul Calderone committed
        tls = true;
    
        ristrettoSigningKeyPath = deployment.secrets.ristretto-signing-key.destination;
        stripeSecretKeyPath = deployment.secrets.stripe-secret-key.destination;
    
        database = "SQLite3";
        databasePath = "/var/db/vouchers.sqlite3";
    
        inherit letsEncryptAdminEmail;
        domain = issuerDomain;
    
      };
    
      system.stateVersion = stateVersion;
    
    Florian Sesser's avatar
    Florian Sesser committed
    
    
      services.private-storage.monitoring.vpn.client = 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
      };