Currently I'm using Jellyfin (since I already use it for other stuff), but it isn't ideal. No option to download entire albums easily, and if the server is offline then I can't even use the music downloaded to my phone.
I use Roon ARC to self-host my library. It is paid, but, I bought the lifetime subscription because there is really no other music app that has the features Roon has.
Other than that, I have HiBy R3 Pro that is useless for Bluetooth, and when I'm hiking I want Bluetooth.
I’ve been using navidrome since the start of the year. It was my first instance of self hosting my music and my main focus was to have a dedicated project for it and to not use something like Plex, Jellyfin, etc. I’ve been liking it so far, it’s simple and just hosts and streams music. Doesn’t have any client side apps or any tagging or smart algorithmic playlists, which is fine by me. Plenty of iOS and Android client side apps with varying features that can download. Worth checking out!
I use Navidrome as the backend and DSub to connect to it. When I'm on the go I use a site-to-site wireguard VPN connection back to my server to listen to music and it also caches the songs so even if I don't have reception I can still listen to my music.