---
title: "Deploy Navidrome | Open Source Music Server, Spotify Alternative"
description: "Self-host Navidrome. Stream your music from any device, FLAC support"
category: "Other"
url: https://railway.com/deploy/navidrome
---

# Deploy Navidrome | Open Source Music Server, Spotify Alternative

Self-host Navidrome. Stream your music from any device, FLAC support

**[Deploy Navidrome | Open Source Music Server, Spotify Alternative on Railway](https://railway.com/template/navidrome)**

- **Creator:** Heimdall
- **Category:** Other
- **Total deploys:** 16

## Template content

### Navidrome https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/navidrome.svg

- **Image:** deluan/navidrome:latest
- **Start command:** `/bin/sh -c 'mkdir -p /data/music && /app/navidrome'`
- **Public domain:** Yes

## Documentation

![Navidrome logo](https://noted.lol/content/images/2023/02/navidrome-self-hosted-noted.lol.jpg)

# Deploy and Host Navidrome on Railway

Deploy Navidrome on Railway to self-host your personal music streaming server. Navidrome is a lightweight, open-source music server written in Go that indexes your digital music collection and makes it available through a modern web player and any Subsonic-compatible client app. Run Navidrome on Railway with a single click — this template pre-configures the `deluan/navidrome:latest` Docker image with persistent storage, automatic library scanning, and a public domain ready for streaming from any device.

## Getting Started with Navidrome on Railway

Once deployed, open your Railway-generated public URL in a browser. Navidrome will prompt you to create an admin account on first visit — choose a strong password as this protects your entire music library. After account creation, you'll land on the Navidrome dashboard. Upload music files to the `/data/music` directory using `railway shell` or SFTP, then Navidrome will automatically scan and index your library (scans run hourly by default). Connect mobile apps like Symfonium, play:Sub, or substreamer using the Subsonic API endpoint at `https://your-domain.up.railway.app/rest`.

![Navidrome dashboard screenshot](https://raw.githubusercontent.com/navidrome/navidrome/master/.github/screenshots/ss-desktop-player.png)

## About Hosting Navidrome

Navidrome is a personal music streaming service — the self-hosted alternative to Spotify, Apple Music, and YouTube Music. It gives you full ownership of your music library with zero subscription fees or privacy concerns.

- **Subsonic API compatible** — works with 20+ mature client apps across iOS, Android, desktop, and web
- **Multi-user support** — each user gets their own playlists, favorites, and play history
- **On-the-fly transcoding** — streams MP3, OPUS, AAC, FLAC, and more via built-in ffmpeg
- **Smart playlists** — auto-generated playlists based on genre, rating, play count, and custom rules
- **Last.fm and ListenBrainz scrobbling** — track your listening history across platforms
- **Gapless playback** — seamless transitions between tracks in the web player
- **Embedded SQLite** — no external database required, minimal operational overhead

## Why Deploy Navidrome on Railway

Railway makes self-hosting Navidrome effortless:

- One-click deploy with persistent volume for music and database storage
- Public HTTPS domain out of the box — stream from anywhere
- ~50 MB RAM idle footprint keeps Railway costs minimal
- No database service to manage — SQLite runs embedded
- Scale up storage as your music collection grows

## Common Use Cases for Self-Hosted Navidrome

- **Replace Spotify/Apple Music** — stream your own FLAC and high-bitrate music collection from any device without subscription fees
- **Family music server** — create separate accounts for family members with individual playlists and listening history
- **DJ/Producer library** — organize and stream large lossless music collections while on the go
- **Podcast and audiobook server** — Navidrome can index and stream any audio file format supported by ffmpeg

## Dependencies for Navidrome on Railway

- **Navidrome** — `deluan/navidrome:latest` (v0.61.2) — the music server itself
- **Volume** — persistent storage at `/data` for SQLite database, cache, and music files

### Environment Variables Reference for Navidrome

| Variable | Description | Default |
|----------|-------------|---------|
| `PORT` | HTTP server listening port | `4533` |
| `ND_MUSICFOLDER` | Path to music files directory | `/data/music` |
| `ND_SCANSCHEDULE` | How often to scan for new music | `1h` |
| `ND_LOGLEVEL` | Log verbosity (debug, info, warn, error) | `info` |
| `RAILWAY_RUN_UID` | Run container as root for volume permissions | `0` |

### Deployment Dependencies

- **Runtime:** Go binary, single container
- **Docker Hub:** [deluan/navidrome](https://hub.docker.com/r/deluan/navidrome)
- **GitHub:** [navidrome/navidrome](https://github.com/navidrome/navidrome)
- **Docs:** [navidrome.org/docs](https://www.navidrome.org/docs/)

## Hardware Requirements for Self-Hosting Navidrome

| Resource | Minimum | Recommended |
|----------|---------|-------------|
| CPU | 1 core | 2 cores (for transcoding) |
| RAM | 50 MB | 256 MB |
| Storage | 100 MB + music library | 1 GB + music library |
| Runtime | Docker or native binary | Docker recommended |

Navidrome is exceptionally lightweight — it runs comfortably on a Raspberry Pi Zero. Transcoding multiple simultaneous streams is the only operation that demands meaningful CPU, at roughly 0.5 cores per stream.

## Self-Hosting Navidrome with Docker

Run Navidrome locally with Docker Compose:

```
version: "3"
services:
  navidrome:
    image: deluan/navidrome:latest
    ports:
      - "4533:4533"
    environment:
      ND_SCANSCHEDULE: 1h
      ND_LOGLEVEL: info
      ND_MUSICFOLDER: /data/music
    volumes:
      - navidrome_data:/data

volumes:
  navidrome_data:
```

Or with a single `docker run` command:

```
docker run -d \
  --name navidrome \
  -p 4533:4533 \
  -v navidrome_data:/data \
  -e ND_MUSICFOLDER=/data/music \
  -e ND_SCANSCHEDULE=1h \
  deluan/navidrome:latest
```

## Is Navidrome Free to Self-Host?

Navidrome is 100% free and open source under the GNU GPL v3 license. There are no paid tiers, no premium features behind a paywall, and no telemetry. When self-hosting on Railway, your only cost is Railway infrastructure usage — typically under $5/month for a personal music server given Navidrome's ~50 MB RAM footprint. You can optionally donate to support Navidrome's development via their GitHub Sponsors page.

## Navidrome vs Jellyfin vs Plex for Music

| Feature | Navidrome | Jellyfin | Plex |
|---------|-----------|----------|------|
| Focus | Music only | All media | All media |
| License | GPL v3 | GPL v2 | Proprietary |
| RAM Usage | ~50 MB | ~500 MB+ | ~500 MB+ |
| Client Apps | 20+ (Subsonic API) | Finamp + web | Plexamp ($) |
| Transcoding | Built-in ffmpeg | Built-in | Built-in |
| Cost | Free | Free | Plex Pass $5/mo |
| Database | Embedded SQLite | Embedded | Embedded |

Navidrome wins for music-focused self-hosting: it's 10x lighter, has the broadest client ecosystem via the mature Subsonic API, and costs nothing.

## FAQ

**What is Navidrome and why should I self-host it?**
Navidrome is an open-source, self-hosted music streaming server. Self-hosting gives you full control over your music library — no subscription fees, no DRM, no algorithmic playlists you didn't ask for, and complete privacy over your listening data.

**What does this Railway template deploy for Navidrome?**
This template deploys a single Navidrome container with the `deluan/navidrome:latest` Docker image, a persistent volume at `/data` for your music files and SQLite database, automatic hourly library scanning, and a public HTTPS domain for streaming access.

**How do I upload music to self-hosted Navidrome on Railway?**
Use `railway shell --service ` to access the container, then transfer files to `/data/music/` using standard Linux commands. Alternatively, use `railway volume` commands or mount external storage. Navidrome scans for new files every hour by default.

**What music client apps work with Navidrome's Subsonic API?**
Any app supporting the Subsonic or OpenSubsonic API works — popular choices include Symfonium (Android), play:Sub (iOS), Sonixd (desktop), and the built-in Navidrome web player. Over 20 clients are available across all major platforms.

**Can multiple users stream from the same Navidrome instance on Railway?**
Yes. Navidrome supports multi-user with separate accounts, playlists, favorites, and play history. Each user can connect their own client apps independently. Create additional users from the admin panel after initial setup.

**What audio formats does self-hosted Navidrome support?**
Navidrome supports MP3, FLAC, AAC, OGG, OPUS, WMA, WAV, AIFF, and any other format supported by ffmpeg. It can transcode on-the-fly to lower bitrates for mobile streaming over slower connections.


## Similar templates

- [Rocky Linux](https://railway.com/deploy/rocky-linux) — [Jul'26] Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀
- [Foundry Virtual Tabletop](https://railway.com/deploy/X5tR6G) — A Self-Hosted & Modern Roleplaying Platform
- [Letta Code Remote](https://railway.com/deploy/letta-code-remote) — Run a Letta Code agent 24/7. No inbound ports, just deploy.

Open this page in a browser: https://railway.com/deploy/navidrome
