Many of us have a large collection of physical media, be it CDs, vinyl records or cassette tapes. Unfortunately, there aren't as many things to do with them as there used to be – you'd be hard-pressed to find a modern car that can use CDs, much less cassettes.
Here's how I got all the benefits of my personal media collection in my car without taking up space on my phone.
Why start a personal music server and how does it work?
I started collecting CDs and vinyl records after yet another Spotify song disappeared from my playlist without warning, but I had one problem: I couldn't easily take them into my car since it doesn't have a CD or record player. Fortunately, they are fairly easy to digitize.
The problem is taking it all with you, even if you convert them. File size and storage are a big issue. High quality media, whether you downloaded it from a CD or bought it from Kobuztakes up a lot of space.
If you're an avid CD or FLAC collector and digitizer, it's fairly easy to build up a library of tens or hundreds of gigabytes. My phone simply doesn't have much extra memory – it's constantly running out anyway.
If you set up a music server, this won't be a big problem. You can easily connect an external 1TB SSD or even a USB drive. If you run out of storage, just connect another one.
In many ways, a personal media server works much the same as Spotify or Apple music, but instead of playing songs from their library, you play them from your own library.
All you have to do is create a copy of the contents of your CD, load it onto a small computer that will send the music to your phone, and install it in your car.
How I set up a music server in my car
This setup consists of two large parts: the server and the client. The server provides the music and the client plays it.
Setting up a music server
I have configured the server using Navidrom on Raspberry Pi 4. I chose Navidrome because it is very easy to install and use. If you also want to be able to store videos, you should consider something like Jellyfin instead.
Getting Navidrome to work is actually very easy. First, install some lightweight operating system on your Raspberry Pi. I chose the headless version of the Raspberry Pi OS. When prompted to apply OS settings, be sure to click “Change Settings” and enter your Wi-Fi network details so you can use SSH to connect to it.
Otherwise, you will have to connect a keyboard and monitor to the Pi in order to work on it.
Once this is done, I installed Navidrome as follows. instructions for the pre-built binary on the Navidrome website. This means downloading and installing the DEB file – that's all. Everything else will be taken care of automatically.
The default instructions were fine for me, so I didn't bother customizing them.
Finally, the Pi needs to be configured to broadcast as a hotspot so I can connect to it using my phone. It supports this out of the box with one command:
sudo nmcli device wifi hotspot ssid (Wi-Fi name here) password (password here) ifname wlan0 It was immediately visible on my phone, which is exactly what I needed.
After I used this command to make sure it actually worked, I configured the access point to start automatically. Run Nmtui on the Raspberry Pi, then go to “Change Connection”.
Once there, select the hotspot you want to use. In my case, my temporary hotspot is called exampleHotspot. Scroll down and be sure to put an X in the box that says Auto Connect. This will ensure that your hotspot starts up every time the Pi boots up.
At this point the hardest part was done. The only step left is to configure the Pi to automatically install external SSD when it's connected, then tell Navidrome to search for music in that location.
Client: Play music from server
There are a lot of clients who can communicate with Navidrome, but I chose Symphony. It works well with Android Auto, which was important to me.
The only configuration that Symfonium requires is the IP address of the music server on port 4533, along with a username and password. When you use a Raspberry Pi server as an access point And music server, the server IP address will be the same as the gateway address. In my case it was 10.42.0.1.
If you don't know yours, just run IP a in the terminal and find the entry associated with wlan0 inet.
Once this is done, you will have access to your entire library through Symfonium.
The server works surprisingly well, but it has one problem: adding new music could be easier. I have to physically unplug the drive, plug it into my computer, add new music, and then plug it back into the Raspberry Pi.
Once the weather warms up again, I'll permanently connect this setup to my car and add a second wireless adapter that will automatically sync music to my home network—no manual steps required.






