Cloudflare tunnels so I don’t have to open any port in my network. You can do this even with the Cloudflare free tier. And the byproduct is DNS for free for your domain name, I actually moved the Cloudflare because DNS was getting too expensive with my domain name provider.
I use Nextcloud only for the sync but I think it is too clunky and it uses too many resources, but I haven’t found anything else that syncs from Android and iOS. After they are sync to Nextcloud I sync them somewhere else for permanent storage. I wish there was an easier solution.