I personally use Navidrome to host the music, and there are multiple android clients; personally I use Symfonium, but there is also Tempus and Tempo.
Jellyfin can also do Music.
The Music I put on Navidrome already has correct metadata, so I haven't worried about that aspect.
Its easy to maintain because I run it with docker.