{ ristrettoSigningKeyPath
, passValue
, publicStoragePort
, sshUsers
, domain
, monitoringvpnKeyDir
, monitoringvpnEndpoint
, monitoringvpnIPv4
, stateVersion
, ...
}:
{ config, ... }: {
  # See customize-issuer.nix for an explanatoin of targetHost value.
  deployment.targetHost = "${config.networking.hostName}.${config.networking.domain}";

  deployment.secrets = {
    "ristretto-signing-key".source = ristrettoSigningKeyPath;
    "monitoringvpn-secret-key".source = "${monitoringvpnKeyDir}/${monitoringvpnIPv4}.key";
    "monitoringvpn-preshared-key".source = "${monitoringvpnKeyDir}/preshared.key";
  };

  networking.domain = domain;

  services.private-storage = {
    inherit sshUsers passValue publicStoragePort;
  };

  services.private-storage.monitoring.vpn.client = {
    enable = true;
    ip = monitoringvpnIPv4;
    endpoint = monitoringvpnEndpoint;
    endpointPublicKeyFile = "${monitoringvpnKeyDir}/server.pub";
  };

  system.stateVersion = stateVersion;
}