You need to know what you are doing.
x—————-
Example: Dropbox is open to the world. You can share files with everyone. Can you properly secure a nextcloud instance?
VPN may not be applicable, because you have to share files with others. Even then, you need to have fair amount of knowledge about networking, protocols, security, current software, vulnerabilities, etc. Even with SSH, you need to be careful. And this is only the security part, I am not getting into a dozen of other concerns.
Overall, as software complexity grows, self-hosting will be increasingly harder.
Encrypting client-side and using a managed solution is a compelling option.