The easy solution is just to use Tailscale. But I am setting up my own #Wireguard mesh network.
There are scripting languages and/or configuration management systems which can help here!
Working on my Wireguard Mesh Network generator here: https://codeberg.org/snonux/wireguardmeshgenerator and for the first time, it works (generating a Wireguard full-mesh network across 8 hosts and 3 Operating Systems (#FreeBSD, #RockyLinux #OpenBSD)).
Will blog about it soon (as part of my f3s series: https://foo.zone/gemfeed/2024-11-17-f3s-kubernetes-with-freebsd-part-1.html)