Goodbye Spotify, Hello Navidrome
After years of paying for Spotify Premium, I finally pulled the plug and migrated to a self-hosted setup. The streaming service that once felt revolutionary now feels bloated, expensive, and increasingly filled with AI-generated slop.
Why Leave Spotify?
The reasons piled up over time:
- AI Music Flooding the Platform: Searching for anything now returns a mix of legitimate artists and algorithmically generated filler. It's getting harder to discover actual human-made music.
- Price Increases: Every year it gets more expensive. At some point you have to ask what you're actually paying for.
- Features I Don't Use: Audiobooks, podcasts, video content. Spotify keeps adding things I have zero interest in while the core music experience stagnates.
I own a decent collection of music purchased over the years. Mashups for running, albums from artists I actually want to support, tracks you simply can't find on streaming platforms. Having all of that scattered between YouTube, local files, and Spotify never made sense.
The Self-Hosted Stack
After some research, I settled on:
- Navidrome: A lightweight, self-hosted music server that implements the Subsonic API. It's designed specifically for music, unlike more general media servers.
- Symfonium: An Android app that connects to Subsonic-compatible servers. It's a paid app, but the customization options are extensive. You can configure it to look and feel surprisingly close to Spotify. Also can be used for local storage, several other media servers (Yes also Jellyfin) or cloud storage providers. But the customization is quiet powerful!
I did consider Jellyfin since I already use it for video. But for music specifically, Navidrome felt like the better choice. It's focused, actively developed, and the Subsonic standard means broad client compatibility. And their webplayer makes it look like Spotify in the browser too!
The Reality of 3TB+ Libraries
One thing to note: Navidrome uses SQLite by default, and with a library pushing over 3TB, performance can get sluggish. Scanning, searching, and updating metadata takes time. The developer is working on PostgreSQL support which should help significantly for larger collections. For now, it's manageable but not instant. I did use Docker to host it myself and had to fiddle around some parameters when to do some automatic scanning. But it should work out of the box as intended and honestly after I was done wasn't sure if I am that I did create much performance boost after all.
Symfonium Configuration
The app deserves special mention. Out of the box it looks nothing like Spotify, but dig into the settings and you can reshape almost everything:
- Grid layouts for albums and artists
- Customizable now-playing screen
- Offline sync for selected playlists
- Downloadable options so I can sync when I am at home but am fine when going for a walk (Didn't want to allow access from the outside even if I could using my vpn)
- Gapless playback and replay gain support
It took an evening of tweaking, but now the experience feels familiar while actually playing music I own.
Worth It?
Absolutely. The initial setup takes effort, and maintaining your own library requires more work than just hitting play on a playlist. But knowing exactly what I'm listening to, having full control over my collection, and not paying a subscription for an increasingly worse service makes it worthwhile.
Self-hosting isn't for everyone. But if you've got the music and the hardware, give Navidrome a look.