Public VPN is a great way to secure your connection without needing to know how to setup the backend infrastructure. However, if you want to securely access your resources on your network remotely, you need to have your VPN.
As I am using OPNSense for routing, it is possible to set up VPN in OPNSense, however, it isn't someone like me with limited networking skills.
This changes with the Nyr Wireguard script (https://github.com/Nyr/wireguard-install). This script make the whole set up process as easy as 1-2-3.
1) Have Linux machine available.
2) Run the installation script:
wget https://git.io/wireguard -O wireguard-install.sh && bash wireguard-install.sh
3) Set up port forwarding on your router.
That is it, now you have your Wireguard VPN set up for your use.
If you are like me who doesn't have a static IP, you may want to use a dynamic DNS services such as afraid.org to get a URL for using in your setup.
If you want more detail steps, try this tutorial on youtube which I was used for setting up mine.