I've been using Nextcloud for quite some time, starting as a replacement for Google Photos, but it has some performance limitations.
All self-hosting environments have some level of not-hosted-here. Here's what I use in my environment.
A little more detail on how my KVM/libvirt networking is set up, to allow for external access to virtualized services.
In this post, I write about the hardware I'm running in my what-I-now-feel-comfortable-calling homelab, as well as a high-level overview of the software I self-host and use daily.