I just recently set up a reverse proxy with Nginx Reverse Proxy, and Cloudflare. I pointed my domain to my home address with Cloudflare (they have dynamic DNS capability), then set up NRP, to forward traffic by subdomain. The nice thing about the reverse proxy it is I can bind a subdomain to an ip:port on my local network. Like “music.!MYIP!.com” goes to my Navidrome instance “LOCALIP:4553”. This allows me to close unnecessary outbound ports.
I run almost exactly the same thing. Plex running in Proxmox VM with a GPU passthrough, and an OMV instance in Proxmox VM hosting all the data shares. Proxmox also hosts multiple Docker stacks for various instances. This is spread out over multiple bare metal boxes.