diff --git a/docs/QUICKSTART.md b/docs/QUICKSTART.md
index b6fd2a8..ad81923 100644
--- a/docs/QUICKSTART.md
+++ b/docs/QUICKSTART.md
@@ -215,11 +215,41 @@ flux bootstrap git \
## 4. Continue with the shared steps
-From here, `docs/SETUP.md` steps 8 onward apply exactly as written,
+From here, `docs/SETUP.md` steps 8–10 and 12–13 apply exactly as written,
regardless of how the cluster was created — verifying the podinfo GitOps
-loop, registering the Forgejo Actions runner, exposing apps through Caddy,
-the Dashboard, remote kubectl access. Just use `~/.kube/config-manual` as
-the kubeconfig throughout instead of the Terraform-provisioned one.
+loop, registering the Forgejo Actions runner, the Dashboard, remote kubectl
+access. Just use `~/.kube/config-manual` as the kubeconfig throughout
+instead of the Terraform-provisioned one.
+
+**Step 11 (exposing apps through Caddy) does not apply as-written**,
+though — it assumes the Terraform track's static `10.20.30.x` addressing.
+This VM is on libvirt's `default` network instead, using DHCP:
+
+```sh
+virsh -c qemu:///system domifaddr k3s-manual # note the IP and MAC address
+```
+
+DHCP leases are "sticky" to a MAC address in practice, but not guaranteed
+fixed the way the Terraform track's static IPs are — pin it explicitly so
+it can't change later:
+
+```sh
+virsh -c qemu:///system net-update default add ip-dhcp-host \
+ "" --live --config
+```
+
+Then in Caddy's config, use that IP directly rather than
+`docs/Caddyfile.example`'s multi-node placeholder blocks:
+
+```
+podinfo.boglabob.com {
+ reverse_proxy http://:80
+}
+
+hello.boglabob.com {
+ reverse_proxy http://:80
+}
+```
## Tearing this down