There have been a few mentions of Navidrome. I find it works well for sharing at an album or even artist level. It can do playlists as well. But you must explicitly choose what to share, at which point it’s generates a unique URL and will generate a web player and zip if you enable the option to download.
You can, of course, just make user accounts and distribute credentials.
If you’re needing to offer browsable folders to easily copy, basically a filesystem-like experience, it’s probably not the best tool.
Edit: one more thing to point out is that navidrome, jellyfin, and airsonic all construct music libraries differently. Navidrome is using tags, jellyfin uses file names, airsonic uses directory structure. Not sure about Plex.
I did a 4 node Pi4 kubernetes cluster for about 5 years. The learning experience was priceless. I think most notable was learning to do proper multiarch container builds to support arm and x86_64. That being said, about half a year ago I decided to try condensing it all into two n100 nuc-like clones and keep one pi as the controller. For me and my apps and use cases there was no going back. Performance gains were substantial and in this regard I think I was hobbling myself after the educational aspect plateaued.