Note: In my case (Overclocked Raspberry Pi4B + SSD), I manually installed Nextcloud using docker (https://hub.docker.com/_/nextcloud/) and used for a year.
As others have pointed out (and so is my experience) the performance will be okayish; the main issue you will encounter is thumbnail generation being quite slow (even with overclocked Raspberry Pi).
Couple of suggestions: Try to keep the installation slim, avoid too many addons/ extra packages.
Also, make sure your Raspberry Pi is connected to LAN and not via Wireless. As that will help with at least improving network throughput.
I recently migrated to old laptop based homelab setup and installed Nextcloud AIO, and the throughput is significantly higher as it should be over LAN.
Reverse proxy is not specifically for exposing a containerised service on internet, it also helps to enable SSL for all services via single reverse proxy on LAN.
If you want to expose a container based service just for yourself over internet, you can -
If you have static IP4 or IPV6 - Setup Wireguard VPN on your homelab/server, and wireguard client on client devices[1].
If you are behind NAT or CGNAT - either Cloudflared Tunnel[2] or Tailscale[3].
In either scenarios, you need to setup firewall of your server to allow connection from LAN to port of your docker container/services. By default you should set your firewall to block all incoming request from anywhere except LAN.
I'm personally using Cloudflared Tunnel, but planning to migrate to Tailscale.
AdGuardHome is also self-hosted and does have this feature.
Actually in my cases, I have to block Facebook on all of my devices, but want to allow it for rest of my family members. So, I know its possible in AdGuardHome.
my bad :(