Short version: self-hosting replaces Spotify's player, not its catalogue. You stream music files you already own — rips, purchases, Bandcamp downloads — from your own server to every device. In exchange you get no ads, no subscription, lossless audio and a library nobody can delist. Stars below are from GitHub on 23 October 2026.

The four worth considering
| Server | Best for | Licence | Stars |
|---|---|---|---|
| Navidrome | Music only, light on resources | GPL-3.0 | ~24k |
| Jellyfin | Music plus films and TV | GPL-2.0 | ~58k |
| Koel | A polished web player | MIT | ~17k |
| Ampache | Long-running, very configurable | AGPL-3.0 | ~3.8k |
Navidrome: the default pick
Navidrome is a single Go binary that runs happily on a Raspberry Pi or a small VPS. Its big advantage is the Subsonic API: dozens of existing phone and desktop apps can connect to it, so you are not stuck with one client. If music is all you want, start here.
Jellyfin: one server for everything
Jellyfin is a full media system — films, TV and music. If you are already self-hosting video, adding music to the same server is simpler than running two. It is heavier than Navidrome, and its music experience is good rather than specialised.
Koel and Ampache
Koel focuses on a clean, Spotify-like web player and is MIT-licensed. Ampache has been around for years, supports audio and video, and offers deep configuration for people who enjoy tuning their setup.
What self-hosting will not give you

- No streaming catalogue. Only music you own and store.
- Weaker discovery. No algorithmic playlists trained on millions of listeners.
- You run it. Updates, backups and remote access are your job — a reverse proxy or a VPN such as Tailscale is the safe way to reach it outside home.
For many people the right answer is both: Spotify for discovery, a self-hosted server for the albums you care about. For the same idea applied to files and photos, see our self-hosted Google Drive and Immich photos guides.