media
Spotify logo

Should I self-host Spotify?

NOT REALLYkeep paying

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 math (nothing hidden, including your time)

Spotify (Premium Individual)$11.99/mo
VPS share + storage−$1.50/mo
Your maintenance: 15 min/mo at $20/h−$5.00/mo
Net saving$5.49/mo
Setup: 30 min measured (one-time)$10.00
Break-even1.8 months
Markup Index (price ÷ real self-host cost)1.8×

Price: source, checked 2026-08-10. Inputs are stored in git; every number above is derived, never hand-written.

What you lose

  • 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

What you're paying Spotify for

  • stream a ~100M-track catalog
  • discovery: recommendations, radio, Discover Weekly
  • playlists synced across every device
  • offline listening on mobile
Navidrome running from the boot-verified compose file
Navidrome, running from the compose file on this page — screenshot from our verified instance, not marketing material.

Ranked alternatives

A music server for the files you already own, and the phone apps that make them worth owning.

navidrome/navidrome · ★ 22,811 · last commit 0d ago · GPL-3.0

Hardware

Runs comfortably on Raspberry Pi.

The tested compose file (our evidence, CI-booted)

# 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.

Verification

Protocol v1 · verified by zernonia on 2026-08-10 · setup measured at 30 min · AI assistant: claude-code (allowed & stated)

What broke

  • 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.
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.

Verdict history

  • 2026-08-10: unscored → NOT_REALLY — Initial verdict: replaces the player, not the catalog — and the catalog is the subscription.