My current setup is running a wireguard server, syncthing and DuckDNS on the pi. I also port forward the wireguard port from my ISP's router.
With this, my devices are always connected to the VPN, and sync always works (and is fast!) like everything is on a LAN.