let
  pubkeys = builtins.fromJSON (builtins.readFile ./chaosInternalWireGuardPubKeys.json);
  listenPort = 51820;
in rec {
  # 10.0.0.0/24 - machines
  # 10.0.1.0/24 - containers for hetzner-arm

  hosts = {
    "hetzner-arm" = {
      ip = "10.0.0.1";
      allowedIPs = [
        "10.0.0.1/32" # Allow itself
        "10.0.1.1/24" # Containers
      ];
      public = pubkeys."hetzner-arm";
      inherit listenPort;
      endpoint = "hetzner-arm.servers.genderfucked.monster:${toString listenPort}";
    };
    "vault" = {
      ip = "10.0.0.2";
      public = pubkeys."vault";
      inherit listenPort;
      endpoint = "vault.servers.genderfucked.monster:${toString listenPort}";
    };
    "lappy-t495" = {
      ip = "10.0.0.3";
      public = pubkeys."lappy-t495";
    };
    "raspberry" = {
      ip = "10.0.0.4";
      public = pubkeys."raspberry";
      inherit listenPort;
      endpoint = "raspberry.servers.genderfucked.monster:${toString listenPort}";
    };
    "iphone15" = {
      ip = "10.0.0.5";
      public = pubkeys."iphone15";
    };
    "iphone8" = {
      ip = "10.0.0.6";
      public = pubkeys."iphone8";
    };
  };
}