{lib, ...}: rec {
  harbor = {
    publicKey = "se1SYdSuu+e8FLqHJO0Fk+kWV3WlrVj9qeCPOhAqsmA=";

    # Forward all trafic to the VPN.
    allowedIPs = ["10.10.10.0/24"];

    # Server endpoint to connect to.
    endpoint = "173.249.42.252:51820";

    # Send keepalives every 25 seconds. Important to keep NAT tables alive.
    persistentKeepalive = 25;
  };

  clients = {
    comfy-station = {
      publicKey = "OsP5tyyYq2B9K8kcDJRLMVE/XuFk57aEhzhQcJc+e3M=";
      address = ["10.10.10.2/24"];
      allowedIPs = ["10.10.10.2/32"];
    };

    monolith = {
      publicKey = "r60a6TyR2jV6ePvZgtznd3H4hQPE3sjznoiE8vx3+iI=";
      address = ["10.10.10.3/24"];
      allowedIPs = ["10.10.10.3/32"];
    };
  };

  forServer =
    lib.mapAttrsToList (_: v: {
      inherit (v) publicKey allowedIPs;
    })
    clients;
  forClient = c:
    (lib.mapAttrsToList (_: v: {
      inherit (v) publicKey allowedIPs;
    }) (builtins.removeAttrs clients [c]))
    ++ [harbor];
  clientAddress = c: clients.${c}.address;
}
