diff --git a/infra/flake-part.nix b/infra/flake-part.nix
index 4a4a0718..4c4e7f3a 100644
--- a/infra/flake-part.nix
+++ b/infra/flake-part.nix
@@ -14,17 +14,19 @@ let
     ;
   inherit (lib.attrsets) genAttrs;
 
-  ## Given a machine's name, make a resource module, except for its missing
-  ## provider. (Depending on the use of that resource, we will provide a
-  ## different one.)
-  makeResourceModule = vmName: {
-    _module.args = { inherit inputs; };
-    imports = [
-      ./common/resource.nix
-      (./. + "/${vmName}")
-    ];
-    fediversityVm.name = vmName;
-  };
+  ## Given a machine's name and whether it is a test VM, make a resource module,
+  ## except for its missing provider. (Depending on the use of that resource, we
+  ## will provide a different one.)
+  makeResourceModule =
+    { vmName, isTestVm }:
+    {
+      _module.args = { inherit inputs; };
+      imports = [
+        ./common/resource.nix
+        (if isTestVm then ./test-machines + "/${vmName}" else ./machines + "/${vmName}")
+      ];
+      fediversityVm.name = vmName;
+    };
 
   ## Given a list of machine names, make a deployment with those machines'
   ## configurations as resources.
@@ -37,7 +39,10 @@ let
         type = providers.local.exec;
         imports = [
           inputs.nixops4-nixos.modules.nixops4Resource.nixos
-          (makeResourceModule vmName)
+          (makeResourceModule {
+            inherit vmName;
+            isTestVm = false;
+          })
         ];
       });
     };
@@ -55,7 +60,10 @@ let
         type = providers.local.exec;
         imports = [
           inputs.nixops4-nixos.modules.nixops4Resource.nixos
-          (makeResourceModule vmName)
+          (makeResourceModule {
+            inherit vmName;
+            isTestVm = false;
+          })
           { nixos.module = vmConfig; }
           { nixos.module = self.nixosModules.fediversity; }
         ];
@@ -78,25 +86,25 @@ let
   };
 
   makeResourceConfig =
-    vmName:
+    vm:
     (evalModules {
       modules = [
         nixops4ResourceNixosMockOptions
-        (makeResourceModule vmName)
+        (makeResourceModule vm)
       ];
     }).config;
 
   ## Given a VM name, make a NixOS configuration for this machine.
   makeConfiguration =
-    vmName:
+    isTestVm: vmName:
     inputs.nixpkgs.lib.nixosSystem {
       modules = [
-        (makeResourceConfig vmName).nixos.module
+        (makeResourceConfig { inherit vmName isTestVm; }).nixos.module
       ];
     };
 
-  makeVmOptions = vmName: {
-    inherit ((makeResourceConfig vmName).fediversityVm)
+  makeVmOptions = isTestVm: vmName: {
+    inherit ((makeResourceConfig { inherit vmName isTestVm; }).fediversityVm)
       proxmox
       vmId
       sockets
@@ -206,8 +214,10 @@ in
     default = makeDeployment machines;
     test = makeTestDeployment testMachineConfigurations;
   };
-  flake.nixosConfigurations = genAttrs (
-    machines ++ attrNames testMachineConfigurations
-  ) makeConfiguration;
-  flake.vmOptions = genAttrs (machines ++ attrNames testMachineConfigurations) makeVmOptions;
+  flake.nixosConfigurations =
+    genAttrs machines (makeConfiguration false)
+    // genAttrs (attrNames testMachineConfigurations) (makeConfiguration true);
+  flake.vmOptions =
+    genAttrs machines (makeVmOptions false)
+    // genAttrs (attrNames testMachineConfigurations) (makeVmOptions true);
 }
diff --git a/infra/fedi200/default.nix b/infra/machines/fedi200/default.nix
similarity index 100%
rename from infra/fedi200/default.nix
rename to infra/machines/fedi200/default.nix
diff --git a/infra/fedi201/default.nix b/infra/machines/fedi201/default.nix
similarity index 100%
rename from infra/fedi201/default.nix
rename to infra/machines/fedi201/default.nix
diff --git a/infra/vm02116/default.nix b/infra/machines/vm02116/default.nix
similarity index 100%
rename from infra/vm02116/default.nix
rename to infra/machines/vm02116/default.nix
diff --git a/infra/vm02116/forgejo.nix b/infra/machines/vm02116/forgejo.nix
similarity index 100%
rename from infra/vm02116/forgejo.nix
rename to infra/machines/vm02116/forgejo.nix
diff --git a/infra/vm02179/default.nix b/infra/machines/vm02179/default.nix
similarity index 100%
rename from infra/vm02179/default.nix
rename to infra/machines/vm02179/default.nix
diff --git a/infra/vm02186/default.nix b/infra/machines/vm02186/default.nix
similarity index 100%
rename from infra/vm02186/default.nix
rename to infra/machines/vm02186/default.nix
diff --git a/infra/vm02187/default.nix b/infra/machines/vm02187/default.nix
similarity index 100%
rename from infra/vm02187/default.nix
rename to infra/machines/vm02187/default.nix
diff --git a/infra/vm02187/wiki.nix b/infra/machines/vm02187/wiki.nix
similarity index 100%
rename from infra/vm02187/wiki.nix
rename to infra/machines/vm02187/wiki.nix
diff --git a/infra/test01/default.nix b/infra/test-machines/test01/default.nix
similarity index 100%
rename from infra/test01/default.nix
rename to infra/test-machines/test01/default.nix
diff --git a/infra/test01/ssh_host_ed25519_key b/infra/test-machines/test01/ssh_host_ed25519_key
similarity index 100%
rename from infra/test01/ssh_host_ed25519_key
rename to infra/test-machines/test01/ssh_host_ed25519_key
diff --git a/infra/test01/ssh_host_ed25519_key.pub b/infra/test-machines/test01/ssh_host_ed25519_key.pub
similarity index 100%
rename from infra/test01/ssh_host_ed25519_key.pub
rename to infra/test-machines/test01/ssh_host_ed25519_key.pub
diff --git a/infra/test02/default.nix b/infra/test-machines/test02/default.nix
similarity index 100%
rename from infra/test02/default.nix
rename to infra/test-machines/test02/default.nix
diff --git a/infra/test02/ssh_host_ed25519_key b/infra/test-machines/test02/ssh_host_ed25519_key
similarity index 100%
rename from infra/test02/ssh_host_ed25519_key
rename to infra/test-machines/test02/ssh_host_ed25519_key
diff --git a/infra/test02/ssh_host_ed25519_key.pub b/infra/test-machines/test02/ssh_host_ed25519_key.pub
similarity index 100%
rename from infra/test02/ssh_host_ed25519_key.pub
rename to infra/test-machines/test02/ssh_host_ed25519_key.pub
diff --git a/infra/test03/default.nix b/infra/test-machines/test03/default.nix
similarity index 100%
rename from infra/test03/default.nix
rename to infra/test-machines/test03/default.nix
diff --git a/infra/test03/ssh_host_ed25519_key b/infra/test-machines/test03/ssh_host_ed25519_key
similarity index 100%
rename from infra/test03/ssh_host_ed25519_key
rename to infra/test-machines/test03/ssh_host_ed25519_key
diff --git a/infra/test03/ssh_host_ed25519_key.pub b/infra/test-machines/test03/ssh_host_ed25519_key.pub
similarity index 100%
rename from infra/test03/ssh_host_ed25519_key.pub
rename to infra/test-machines/test03/ssh_host_ed25519_key.pub
diff --git a/infra/test04/default.nix b/infra/test-machines/test04/default.nix
similarity index 100%
rename from infra/test04/default.nix
rename to infra/test-machines/test04/default.nix
diff --git a/infra/test04/ssh_host_ed25519_key b/infra/test-machines/test04/ssh_host_ed25519_key
similarity index 100%
rename from infra/test04/ssh_host_ed25519_key
rename to infra/test-machines/test04/ssh_host_ed25519_key
diff --git a/infra/test04/ssh_host_ed25519_key.pub b/infra/test-machines/test04/ssh_host_ed25519_key.pub
similarity index 100%
rename from infra/test04/ssh_host_ed25519_key.pub
rename to infra/test-machines/test04/ssh_host_ed25519_key.pub
diff --git a/infra/test05/default.nix b/infra/test-machines/test05/default.nix
similarity index 100%
rename from infra/test05/default.nix
rename to infra/test-machines/test05/default.nix
diff --git a/infra/test05/ssh_host_ed25519_key b/infra/test-machines/test05/ssh_host_ed25519_key
similarity index 100%
rename from infra/test05/ssh_host_ed25519_key
rename to infra/test-machines/test05/ssh_host_ed25519_key
diff --git a/infra/test05/ssh_host_ed25519_key.pub b/infra/test-machines/test05/ssh_host_ed25519_key.pub
similarity index 100%
rename from infra/test05/ssh_host_ed25519_key.pub
rename to infra/test-machines/test05/ssh_host_ed25519_key.pub