There are many different ways, but personally (and hopefully I don’t get crucified for saying this) I use Plex and Plexamp. Plexamp has got to be the best music app I’ve ever used. I even tied it into Last.fm to get recommendations for new music based on my listening.
You’d need to set up Plex media server to go this route: https://support.plex.tv/articles/200264746-quick-start-step-by-step-guides/
Personally I host via Docker.
It might be a little overkill if you don’t have other media, though, and it’s not fully open source.
I’m now using Fedora CoreOS which can be deployed from config files. It’s really neat to be able to define everything the way you need it and just start up the VM with no further config necessary. I’m using podman to manage my services.