# Navidrome

Music you stream from disk. Navidrome is GPL-3.0 — Spotify without the catalog in someone else's building.

**Replaces:** Spotify

**Tier:** Easy

## Problem

Spotify is licensed streaming of someone else's catalog, then a Premium seat. You wanted your files, a Subsonic-compatible API, and apps that already speak it. Navidrome is GPL-3.0 (one Go binary). Jellyfin can play music too — it is the movie/show box on /replace/plex and /replace/netflix. This is not Spotify's radio, Connect speakers, or every official app.

## Stack

- [Navidrome](https://www.navidrome.org) — GPL-3.0 Subsonic-compatible personal music server

## Estimated SaaS cost saved

| You stop paying | Typical / year | Self-host instead |
|---|---:|---|
| Spotify Premium (household) | $1,200 | Navidrome + a music volume |

**About $1,200 / year** on a small team, before you count lock-in.

## Deploy on Railway

Placeholder: Navidrome plus a volume for the music library. Bind HTTP. Clients stay on phones. No one-click template in this repo yet — Start on Railway. Movies/shows stay on /stacks/jellyfin-media.

[Start on Railway](https://c17.io/go/railway/navidrome-music?from=%2Fstacks%2Fnavidrome-music.md)

[Jellyfin if this is movies and shows, not a music server](https://c17.io/stacks/jellyfin-media)

## AGENT_PROMPT

```
Replace Spotify with Navidrome (https://www.navidrome.org).

- Official image, persist config, mount the music library. Bind HTTP. Play one album in a Subsonic client.
- Do not claim Spotify's licensed catalog, radio, or Connect. Write AGENT_PROMPT.md.
- Movies and shows stay on /stacks/jellyfin-media.
```

## FAQ

### Why not Jellyfin?

Jellyfin is the media library (/replace/plex, /replace/netflix). Navidrome is music with Subsonic apps. You can run both; do not start with both.

### Do I get Spotify's catalog?

No. You stream files you already have. That is the point.

Source: https://c17.io/stacks/navidrome-music
