Great write up. I would love to hear more detail how WireGuard is setup.
* On the new host, I run a Fabric task which generates a key pair and spits out the public key. The private key never leaves the server.
* I paste the public key in a peer configuration template.
* On every host that must be able to contact the new host, I run another Fabric task which updates the peer configuration from the template ("wg syncconf").
One thing to watch out is any services that bind to the Wireguard network interface. I had to make sure on reboot they start after wg-quick.