Deployment guide

Navidrome: Self-Host Your Music Server on VPS

Deploy on a VPS Cloud →

Self-hosting5 min read

Navidrome: Self-Host Your Music Server on VPS

Have a large music collection you don't want on Spotify or Apple Music? Navidrome is an open-source self-hosted music server (GPL-3.0) that indexes your library and streams it to any browser or Subsonic-compatible mobile app — no subscription, no third-party data, from your own VPS.

Why Navidrome?

Navidrome fills a gap that Jellyfin doesn't cover the same way: music only, lightweight, with the Subsonic API. The Subsonic API is the de facto standard for self-hosted music streaming — supported by 20+ mobile clients on Android and iOS. Where Jellyfin handles movies and TV shows too, Navidrome is built exclusively for music: artist/album/genre indexing, album art, lyrics, Last.fm/ListenBrainz scrobbling, per-user playlists. All in a single Go container under 50 MB, running on less than 256 MB of RAM.

What you get with Navidrome

  • Subsonic API: stream from Symfonium, DSub, Ultrasonic (Android), Amperfy, iSub (iOS)
  • Built-in web player — no installation required on your computer
  • Automatic library scan every hour (or on demand)
  • Album art and metadata fetched automatically from MusicBrainz and embedded tags
  • Independent playlists, favourites, ratings and play history per user
  • Last.fm and ListenBrainz scrobbling per user, no plugin needed
  • Under 256 MB RAM — runs on the most modest entry-level VPS

The Subsonic API: a proven client ecosystem

One of Navidrome's strengths is not reinventing clients. By implementing the Subsonic API — an open protocol extended by the OpenSubsonic project — Navidrome benefits from a mature ecosystem of mobile and desktop clients.

On Android, Symfonium offers a polished experience with equalisation and offline playback. DSub is a reliable free and open-source option. On iOS, Amperfy and iSub have been reference apps for years. On desktop, Sublime Music (Linux) and XBMC/Kodi integrations also work with the Subsonic API.

This diversity means your client choice is independent of Navidrome: switch to another client at any time without touching the server.

Deploy Navidrome on VPS in 4 steps

01

Order a VPS

Choose a VPS with at least 1 vCPU and 512 MB RAM — 1 GB recommended. No domain required: access Navidrome via SSH tunnel from any computer.

02

Automatic deployment

ServOrbit installs Docker, configures persistent volumes and starts Navidrome in a single pass. Two volumes are created: /data (SQLite database, cache, playlists) and /music (your library). You receive the access URL as soon as it's ready.

03

Upload your music

Connect via SFTP (FileZilla, Cyberduck) or rsync and drop your files into the /music volume. Navidrome detects and indexes them at the next scan (every hour by default), or click Scan Library in the admin interface for immediate scanning.

04

Create your account and connect an app

Open your instance URL in a browser. The first-run screen prompts you to create an admin account. Then install a Subsonic client (Symfonium or DSub on Android, Amperfy on iOS), enter your server URL and credentials — your full library is available.

To access Navidrome from your computer without a domain, use an SSH tunnel: ssh -L 4533:127.0.0.1:4533 root@your-vps-ip then open http://localhost:4533. For permanent mobile access, point a subdomain at your VPS and configure HTTPS.

Navidrome architecture: Go + SQLite, nothing more

Navidrome is a single Go binary with an embedded HTTP server and SQLite database. No external services required: no Redis, no PostgreSQL, no Node.js. One Docker image, one process to monitor, one data volume to back up.

It mounts two Docker volumes: /data (database, cache, downloaded covers, playlists) and /music (your library). The official image is under 50 MB and starts in seconds. RAM usage stays under 256 MB for a personal library of 10,000–50,000 tracks.

The embedded web server serves the admin interface, web player and Subsonic API on the same port (default: 4533). To expose Navidrome over HTTPS, place an nginx or Caddy reverse proxy in front — ServOrbit configures this automatically when you assign a domain.

Navidrome vs Jellyfin: which tool for which use?

NavidromeJellyfin
SpecialityMusic onlyVideo + music + photos
APISubsonic / OpenSubsonicJellyfin REST + DLNA
Typical RAM< 256 MB512 MB — 2 GB
Video transcodingNot applicableYes (GPU optional)
Music mobile clients20+ Subsonic clientsOfficial Jellyfin app
Last.fm scrobblingNative, per userVia plugin

Supported audio formats and transcoding

Navidrome natively plays all common audio formats: MP3, FLAC, AAC, OGG Vorbis, Opus, M4A, WAV, AIFF, WMA and ALAC. It reads metadata directly from ID3v2, Vorbis Comment and iTunes tags, and fills in missing album art from MusicBrainz and Last.fm.

On-the-fly transcoding requires ffmpeg on the server — ServOrbit configures this automatically in the deployment image. Without ffmpeg, Navidrome works in pure Direct Play: the original file is sent as-is.

Multi-user management and scrobbling

Navidrome natively manages multiple user accounts, each fully independent: playlists, favourites, ratings, listening history and scrobbling settings are all separate. An admin account can create new accounts from the web interface.

Scrobbling to Last.fm or ListenBrainz is configured per user in profile settings. Each played track is sent in the background — no plugin, no extra daemon. For families or flatmates sharing a VPS, this complete isolation lets everyone keep their own listening statistics.

Backing up Navidrome

Two things to back up: the /data volume (SQLite + cache + playlists) and your music library in /music. For /data:

docker run --rm -v navidrome-data:/data -v /backup:/backup alpine tar czf /backup/navidrome-data.tar.gz /data

Your music files in /music are your originals — restoration means copying files back and re-running a scan. ServOrbit can configure automatic daily backups of /data to S3-compatible object storage. For large libraries, rclone backups of /music to object storage with deduplication are the most cost-effective approach.

Deploy Navidrome on your VPS

ServOrbit installs and configures Navidrome automatically — Docker, persistent volumes and secure access included.

Need help?

Browse our help center and FAQ, or reach our team — callback, WhatsApp or email. Support in French, English and Arabic.