A million ways to do this, of course, but I'm focused on using wireguard so that eg only my wireguard peers can get access to my local service, and for internal traffic (ie vpn).
At the moment I'm settling on having a simple script that I can run on a host alongside wireguard. The script will function like `wg-quick`, parsing a wireguard config file and handilng the routing stuff behind the scenes, and returning a cleaned up config to be passed to `wg`.
Ideally, the wireguard configs could be generated by some other tool or service, like https://wirehub.org, and automatically fetched and applied to the running wg interface.
So, a one liner on a server with a public IP and the services exposed by your wireguard peers can be accessed via a custom domain name while still respecting internal wireguard routing rules (based on AllowedIPs).
If anyone finds this interesting and wants to chat about it, I would love to! My contact info is in my profile.