Skip to content
Snippets Groups Projects
make-issuer.nix 2.31 KiB
Newer Older
{ hardware
, ristrettoSigningKeyPath
, stripeSecretKeyPath
, monitoringvpnSecretKeyDir
, issuerDomain
, letsEncryptAdminEmail
Florian Sesser's avatar
Florian Sesser committed
, monitoringvpnIPv4
    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"];
      };
Florian Sesser's avatar
Florian Sesser committed
      "monitoringvpn-secret-key" = {
        source = monitoringvpnSecretKeyDir + "/${monitoringvpnIPv4}.key";
Florian Sesser's avatar
Florian Sesser committed
        destination = "/run/keys/monitoringvpn/client.key";
Florian Sesser's avatar
Florian Sesser committed
        owner.user = "root";
        owner.group = "root";
        permissions = "0400";
        action = ["sudo" "systemctl" "restart" "wireguard-monitoringvpn.service"];
      };
      "monitoringvpn-preshared-key" = {
        source = monitoringvpnSecretKeyDir + "/preshared.key";
Florian Sesser's avatar
Florian Sesser committed
        destination = "/run/keys/monitoringvpn/preshared.key";
        owner.user = "root";
        owner.group = "root";
Florian Sesser's avatar
Florian Sesser committed
        permissions = "0400";
        action = ["sudo" "systemctl" "restart" "wireguard-monitoringvpn.service"];
      };
    ../../nixos/modules/issuer.nix
Florian Sesser's avatar
Florian Sesser committed
    ../../nixos/modules/monitoring/vpn/client.nix
    ../../nixos/modules/monitoring/exporters/node.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 = {
    enable = true;
Florian Sesser's avatar
Florian Sesser committed
    ip = monitoringvpnIPv4;
Florian Sesser's avatar
Florian Sesser committed
  };