Newer
Older
{ publicIPv4
, hardware
, publicStoragePort
, ristrettoSigningKeyPath
, passValue
, sshUsers
, stateVersion
, monitoringvpnKeyDir ? null
, monitoringvpnIPv4 ? null
, ... }: let
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 {
targetUser = "root";
Jean-Paul Calderone
committed
targetHost = publicIPv4;
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"];
};
} // vpnSecrets;
../../nixos/modules/private-storage.nix
services.private-storage =
{ enable = true;
inherit publicIPv4;
inherit publicStoragePort;
ristrettoSigningKeyPath = deployment.secrets.ristretto-signing-key.destination;
inherit sshUsers;
services.private-storage.monitoring.vpn.client = if !enableVpn then {} else {
enable = true;
ip = monitoringvpnIPv4;
endpointPublicKeyFile = monitoringvpnKeyDir + "/server.pub";