I’m weird (and I didn’t find many good options at the time), so I wrote a server (with a web interface and an Android app) for streaming my music collection many years ago. It stores ratings, tags, and my playback history, so I can queue up e.g. “instrumental songs with four or more stars that I haven’t heard recently”.
I’m not an audiophile, so I listen using Bose QC25 or Sony MDR-7506 headphones connected to my computer’s or phone’s built-in DAC, or by sending the audio to crappy Google Home speakers via flaky Bluetooth or Chromecast streaming. I did some ABX testing a while back and determined that I can’t tell the difference above VBR -V0 (~192 kbps), so my mediocre ears reduce the storage costs too. It would probably be even more efficient to use Opus, but my whole collection is in MP3 so I can’t switch at this point.