I have found that navidrome (uses subsonic as a base API ) covers a bunch of these. It has a web app to interact with it but because it uses subsonic it can work with any subsonic music app. Navidrome also has smart playlist support but no current UI (supposed to be on the way) to set it up so of you're comfortable with file editing via terminal you'll probably be fine
Mobile I use symfonium which does have smart playlist support which you configure yourself. It can get quite involved depends on how "smart" you want to get. But it's an offline first app. So will cache songs to your phone to play them. Any ratings or favourites or playlists you make can get pushed back to navidrome via subsonic to your server. It also has android auto support which was a Biggie for me. Only downside is it costs £5 but it's a one off payment not a subscription. Worth the cost in my mind.
For desktop I like to use a foss app called feishin, just prefer the UI to navidrome. Again it just needs to be subsonic compatible :)
If you are starting from scratch then this should be really simple. Most of the change notes here are for those upgrading from 1 dB style to another and making sure you have a backup. I use jellyfin daily, it is my main entertainment source for the TV shows and movies I own. It is a fantastic tool that lets me watch my Media locally or anywhere in the world (external access takes some extra network configuration which uses domains and SSL certs, setting that up may take a day if you are unfamiliar with it.) if you have a lot of media it's a great alternative to Plex which are making silly decisions and pushing you with ads.