My setup is entirely free. WireGuard is a VPN protocol. You run the open source server somewhere on the network you want to get into and the client(s) on the devices you want to connect in using. You can do quite creative things with the config(s), but they pretty much mirror each other. My IP is dynamic and I catch it using DuckDNS.