Should I self-host Spotify?
Navidrome is a lovely server for music you own — and Spotify's product is music you don't. Self-hosting replaces the player, not the catalog, and the catalog is the subscription.
The catalog: everything you haven't bought — which for most subscribers is everything
Discovery — Discover Weekly has no self-hosted answer, because the input is everyone else's listening
Zero-effort availability on every speaker, car and TV that ships a Spotify button
stream a ~100M-track catalog · discovery: recommendations, radio, Discover Weekly · playlists synced across every device · offline listening on mobile
* Percent of the subscription price. Your time is priced at the slider's rate — $0/h ("my homelab time is free and I love it") is a legitimate position. Every number is derived from the record, never hand-written. Price source, checked 2026-08-10.
Runs comfortably on a Raspberry Pi.


Nothing — Navidrome is a single container that boots in seconds. The economics even pass our rubric. The capability gap is the entire verdict: it can only play files you bring.
# Navidrome — music streaming server for music YOU OWN (tested against Spotify's job list;
# see the verdict for why owning zero files changes the answer)
services:
navidrome:
image: deluan/navidrome:latest
container_name: navidrome
restart: unless-stopped
ports:
- "4533:4533"
volumes:
- navidrome-data:/data
- ./music:/music:ro # point at your library
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://localhost:4533/ping || exit 1"]
interval: 5s
timeout: 5s
retries: 24
start_period: 20s
volumes:
navidrome-data:
Want a guided install instead? caniselfhostit.com/spotify has AI-agent prompts that assume a bare machine — that's their half of the stool, and it's good.
FULL TIMED LOG
# Timed setup log: Spotify → Navidrome **Protocol:** v1 · **Verified by:** zernonia · **Date:** 2026-08-10 **Assistant:** claude-code · **Environment:** containerized runner, 2 vCPU class, Docker 29.3 / Compose v5.1 ## Timeline | Step | Time | |---|---| | Draft compose (one container + a music folder mount) | 6 min | | **Boot: healthy in 16 s (measured, `compose up --wait`)** | 1 min | | Core workflow: create admin, point at a test library, scan, stream a track in the browser | 15 min | | Re-run from clean volumes | 5 min | | **Total: ~30 min** | | ## Measurements - Boot to healthy: **16 s** · 1 container · idle RAM ~80 MB — Raspberry Pi territory ## What broke Nothing. Navidrome is a model citizen: one container, one config mount, a `/ping` endpoint, ARM builds, instant scan on a small library. ## Verdict-relevant notes - This is the clearest case on the site of **setup ≠ verdict**. The install passes every effort test; the economics even pass the rubric. What it cannot do is contain music you don't own — and "a ~100M-track catalog you don't own" is the first job on Spotify's list. - If you already have a real library (rips, Bandcamp), read this page as a personal YES: Navidrome + any Subsonic client is genuinely better than Spotify for owned music.