How to replace Spotify with your own music server.
A plain guide: what you need, how to install Navidrome, and what you give up.
By Nenad Jokic, who makes NaviBeat.
You can replace Spotify with your own music server and keep most of what you use it for: your library on every device, playlists, lyrics, offline music. You give up the catalogue. You own the files, so you only have what you own.
What you need
- Your music as files. MP3, FLAC, whatever you have.
- Something that stays on: a NAS, a Raspberry Pi, an old PC, or a small VPS.
- A server program. This guide uses Navidrome, which is free and open source.
- A player on each device.
Install Navidrome
Docker is the short way. Point the music volume at your folder and start it:
services:
navidrome:
image: deluan/navidrome:latest
restart: unless-stopped
ports:
- "4533:4533"
volumes:
- "navidrome_data:/data"
- "/path/to/music:/music:ro"
volumes:
navidrome_data:
Open http://your-server:4533, create the admin user, and wait for the first scan.
Fix your tags first
Navidrome builds the library from the tags in your files, so a bad tag is a bad library. An album that shows up twice usually has two spellings of the album artist. Run the files through MusicBrainz Picard or beets once, before you judge the result.
Pick a player
Navidrome has its own web player. On phones and desktops you want a client, and there are many. The official apps directory lists them, and our comparison goes through the ones people ask about most. NaviBeat is one of them, and I make it.
One player on every screen
A self-hosted library is only as good as the player on the device in your hand. NaviBeat runs on iPhone, iPad, Mac, Apple TV and Apple Watch, plus CarPlay, as one $5.99 Universal Purchase on the App Store. It is also on Android ($5.99 once on Google Play, phone and Android TV, with Android Auto), on Windows ($9.99 once, after a five-day free trial) and on Linux (free). No subscription on any of them, and the music always comes from your own server.
Reach it from outside the house
At home the server is on your network. Outside you need a way in, and it does not have to mean opening a port. See Navidrome remote access without port forwarding.
What about discovery?
This is the part you lose. Spotify knows millions of songs, your server knows yours. Three things bring some of it back:
- Last.fm or ListenBrainz keep your listening history and show you similar artists.
- AudioMuse-AI analyses how your songs sound, so a mix can follow the sound and the genre tag does not decide alone.
- NaviBeat Mixes is a free Navidrome plugin that builds daily mixes and a Rediscover list as normal playlists, so they show up in every client.
Questions
Can I really replace Spotify with a self-hosted server?
Yes, if you own your music as files. You keep your library on every device, playlists and offline listening. You lose the Spotify catalogue and most of its discovery.
What is the best self-hosted music server?
Navidrome is a good start: it is free, open source, light enough for a Raspberry Pi, and many client apps work with it through the Subsonic API.
How much does a self-hosted Spotify cost?
Navidrome is free. You pay for the hardware and the music you buy, and a paid client if you choose one.