For years, I relied on Spotify like millions of others. The convenience was undeniable stream anything, anywhere, discover new music through algorithms, and share playlists with friends. But over time, several issues became impossible to ignore: artists getting paid fractions of pennies per stream, fake Artists and ghost Tracks, AI music and impersonation, creepy age verification complicity and the fact that despite paying monthly, I never actually owned anything. So I decided to take back control of my music experience. Here's how I built my own self-hosted music streaming setup that gives me everything Spotify offered and more.
tip There are components of this post which may be improved if you zoom in with your device. The mermaid diagram and code blocks in particular may be hard to read on smaller screens.
At the core of my setup is Navidrome, an open-source music server that handles streaming your personal music collection.
To access my music from anywhere, I expose Navidrome via a CloudFlare Tunnel, which provides secure access without exposing my home IP address or dealing with port forwarding.
For client apps, I use:
Browser: Navidrome's built-in web player works perfectly
iOS: Play :Sub connects seamlessly
Android: Symfonium offers excellent playback quality and features
Desktop: Feishin provides a native app experience with synced lyrics
Definition Scrobbling: (Internet slang) To publish one's music-listening habits to the Internet via software, in order to track when and how often certain songs are played.
... continue reading