diff --git a/infra/common/options.nix b/infra/common/options.nix
index c8ec4aa..0e9d5b5 100644
--- a/infra/common/options.nix
+++ b/infra/common/options.nix
@@ -41,6 +41,15 @@ in
       '';
     };
 
+    description = mkOption {
+      description = ''
+        A human-readable description of the machine's purpose. It should be
+        constituted of a first line giving a very short description, followed
+        by a blank line, then followed by more details if necessary.
+      '';
+      default = "";
+    };
+
     ##########################################################################
     ## Virtualised hardware
 
diff --git a/infra/flake-part.nix b/infra/flake-part.nix
index 2088f39..a14a453 100644
--- a/infra/flake-part.nix
+++ b/infra/flake-part.nix
@@ -115,9 +115,12 @@ let
     inherit ((makeResourceConfig { inherit vmName isTestVm; }).fediversityVm)
       proxmox
       vmId
+      description
+
       sockets
       cores
       memory
+
       hostPublicKey
       unsafeHostPrivateKey
       ;
diff --git a/infra/machines/fedi200/default.nix b/infra/machines/fedi200/default.nix
index db9950e..bdea321 100644
--- a/infra/machines/fedi200/default.nix
+++ b/infra/machines/fedi200/default.nix
@@ -2,6 +2,8 @@
   fediversityVm = {
     vmId = 200;
     proxmox = "fediversity";
+    description = "Testing machine for Hans";
+
     domain = "abundos.eu";
     ipv4 = {
       address = "95.215.187.200";
diff --git a/infra/machines/fedi201/default.nix b/infra/machines/fedi201/default.nix
index c0d1bd9..c856711 100644
--- a/infra/machines/fedi201/default.nix
+++ b/infra/machines/fedi201/default.nix
@@ -1,5 +1,9 @@
 {
   fediversityVm = {
+    vmId = 201;
+    proxmox = "fediversity";
+    description = "FediPanel";
+
     domain = "abundos.eu";
     ipv4 = {
       address = "95.215.187.201";
diff --git a/infra/machines/vm02116/default.nix b/infra/machines/vm02116/default.nix
index 496b985..cfee563 100644
--- a/infra/machines/vm02116/default.nix
+++ b/infra/machines/vm02116/default.nix
@@ -1,5 +1,8 @@
 {
   fediversityVm = {
+    proxmox = "procolix";
+    description = "Forgejo";
+
     ipv4.address = "185.206.232.34";
     ipv6.address = "2a00:51c0:12:1201::20";
   };
diff --git a/infra/machines/vm02187/default.nix b/infra/machines/vm02187/default.nix
index 7310e9c..82a1ade 100644
--- a/infra/machines/vm02187/default.nix
+++ b/infra/machines/vm02187/default.nix
@@ -1,5 +1,8 @@
 {
   fediversityVm = {
+    proxmox = "procolix";
+    description = "Wiki";
+
     ipv4.address = "185.206.232.187";
     ipv6.address = "2a00:51c0:12:1201::187";
   };
diff --git a/infra/proxmox-provision.sh b/infra/proxmox-provision.sh
index 3b5b773..0ecaaa0 100755
--- a/infra/proxmox-provision.sh
+++ b/infra/proxmox-provision.sh
@@ -181,6 +181,7 @@ grab_vm_options () {
 
   proxmox=$(echo "$options" | jq -r .proxmox)
   vm_id=$(echo "$options" | jq -r .vmId)
+  description=$(echo "$options" | jq -r .description)
 
   if [ "$proxmox" != fediversity ]; then
     die "I do not know how to provision things that are not Fediversity VMs,
@@ -286,6 +287,7 @@ create_vm () {
     vmid=="$vm_id" \
     name=="$vm_name" \
     pool==Fediversity \
+    description=="$description" \
     \
     ide2=="local:iso/installer-$vm_name.iso,media=cdrom" \
     ostype==l26 \