This is quite a bit more involved to set up but once the work's done, it works seamlessly like a pay streaming service:
1.
Subsonic - ripped CDs, purchased music etc. in music collection
2. Port forward inbound from the home Internet to the Subsonic server, plus DNS - dynamic or static, and
3.
DSub for Subsonic - Apps on Google Play
While it's possible to stream anything from the collection, I usually cache entire playlists in the phone. DSub is one of a few Android Subsonic client apps with decent support for Android Auto. SubMuxic, another, is a fork of DSub. I forget the name of it, but my wife installed a similar Subsonic client on her iPhone that works well with CarPlay.
I don't recommend the original Subsonic server, as it's no longer maintained. It's just what I already had. It has flexible transcoding support for nice 64 Kbps Opus streams that sound great and sip the mobile data, and links to Last FM to dynamically create "radio stations" with similar artists, using one's own collection. There are also many other Subsonic API-compatible server choices, some completely free such as
Ampache - Music Streaming Server
We're still in our three-month trial of SiriusXM and discovered a channel we both like. Turns out we already have most of the tunes they play in our collection, no surprise there. I created a sizable playlist in Subsonic named the same as that channel, and just hit "shuffle" in the car.