Replacing a polished, multi-billion dollar service like Spotify or Apple Music with self-hosted software seems daunting, but it actually isn’t.
An open source media server—Navidrome—paired with the right client app is significantly better and more capable than I anticipated. Rather than feeling like a downgrade, it feels like a viable alternative.
A lightweight, self-hosted streaming server for your own library
Navidrome is a free, open-source music server that you host yourself on your own hardware. By default, it provides a sleek web interface that you can access via any browser, but you can also connect to your Navidrome server using any client (which provides the user interface) that is compatible with the Subsonic API. There are literally dozens of them available; their complexity ranges from very basic to full Spotify competitors.
You can carefully tune your music streaming experience to your liking, all while skipping on a monthly fee to access a company’s library. And, since you’re hosting your own media, you don’t have to worry about half of your favorite playlist disappearing when a licensing agreement expires.
Navidrome will run on anything
Because it is so simple and lightweight, it runs on virtually anything. I’ve tested Navidrome on a Pi 4 with 8GB of RAM, a Pi Zero 2 W with 512MB of RAM, and a variety of Proxmox containers.
I’d recommend just running it in a Proxmox container if you have the option. It is quick, easy, and even a 10-year-old PC has way more power than a Navidrome server is ever likely to need.
- Brand
-
Raspberry Pi
- CPU
-
Quad-core 64-bit ARM Cortex-A53
- Memory
-
512MB of SDRAM
The Raspberry Pi Zero 2 W is super tiny and super affordable, but it packs enough computing power for a variety of DIY projects. You can use it to create a handheld retro gaming console, for Klipper/Mainsail, a super compact home or media server, and more.
Setting up Navidrome
Install, scan your library, and connect a client
The first step is configuring your host. If you’re running a VM or a container in Proxmox, a dual-core Ubuntu Server setup with 2–4 GB of RAM is a good place to start. If you’re running it on a Raspberry Pi, flash Raspberry Pi OS Lite to a microSD card. You need to keep things as lightweight as possible.
Setting up the server was actually the hard part. Once that is done, just run the following command to download Navidrome. Be sure to check the most recent releases and replace the X with the most recent release available.
wget https://github.com/navidrome/navidrome/releases/download/v0.61.2/navidrome_0.61.2_linux_amd64.deb
Then run the next command to install it:
sudo apt install ./navidrome_0.61.2_linux_amd64.deb
Now, the final configuration step just involves telling Navidrome where to find your music. Run sudo nano /etc/navidrome/navidrome.toml and then modify the MusicFolder path to point to the place where you’re going to store your music. I’d keep it simple and store it in a folder in your home directory, unless you specifically need to store it somewhere else.
Finally, run sudo systemctl enable –now navidrome to start the server.
Listening outside of your home
To make your Navidrome server really useful, it needs to be accessible all the time. I’d recommend setting up a small WireGuard VPN server on your local network. Whenever you want to listen, just connect to the WireGuard server and your device will be able to connect to your locally hosted services as if you were actually at home.
This is the one Raspberry Pi project I leave running 24/7 in my homelab
Any Raspberry Pi will do to start, even a Pi Zero.
A WireGuard VPN is quick, easy, and less prone to security problems than other ways you can make your Navidrome server accessible. It is the primary way I access my home network these days, since it is so simple and reliable.
Navidrome and Symfonium are better than I ever hoped
The experience holds up against a paid service
Navidrome basically allows you to design your own streaming service, and with a bit of care, it can be an excellent experience. I’ve been using Symfonium for a bit over a year now since it integrates so well with Android Auto.
So long as you use the right Subsonic-compatible player, you get all of the features that you take for granted in a modern mobile media app: offline synchronization for your drive, gapless playback for albums that require it, and a listening history.
Ownership comes at the cost of convenience
Of course, running your own service does come with a drawback: convenience. You don’t have a catalog of billions of songs at your disposal instantly.
I’ve been building my collection for years now by buying and copying music CDs when I see them at a good price at yard sales and in stores, and given my actual listening habits (the same few thousand songs on repeat), over a 10-year timeframe it is definitely less expensive than a family Spotify subscription would be.
There is also the “labor” cost. The initial setup, the process of tagging your files correctly, and the configuration of remote access are all things you have to handle yourself. Additionally, you are now IT and customer service. You have to handle the backups and uptime concerns, and if something breaks, you have to fix it.
A subscription replacement that does not feel like a sacrifice
When you combine Navidrome with a well-curated library, you get most of what made Spotify pleasant—the streaming convenience and the mobile interface—minus the monthly bill and the interruptions.
This setup is best for people who already own a significant amount of music and want total control over their data. The real surprise is how little you actually give up on a day-to-day basis. While you lose the discovery tools, you gain a sense of stability and quality that a subscription service simply cannot provide.


