🎵 Setup Navidrome — Self-Hosted Music Server
Stream your personal music collection from anywhere. Navidrome is a lightweight, Subsonic-compatible music server that runs beautifully in Docker on Ubuntu.
📦 Resources & Setup Scripts
Grab the automated bash script from GitHub to follow along with the video.
Quick Install:
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/media/navidrome/navidrome-ubuntu.sh
chmod +x navidrome-ubuntu.sh
sudo bash navidrome-ubuntu.sh
Tutorial Steps
1 Download & Run the Script
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/media/navidrome/navidrome-ubuntu.sh
chmod +x navidrome-ubuntu.sh
sudo bash navidrome-ubuntu.sh
2 Access the Web UI
On first visit, create your admin account:
http://<your-server-ip>:4533
3 Add Your Music Library
Place your music files in the following directory on the server. Navidrome will automatically scan and index them:
/root/docker/navidrome/music/
4 Connect a Subsonic Client (Optional)
Navidrome is compatible with any Subsonic/Airsonic client app (e.g. DSub, Symfonium, Ultrasonic). Point the client to your server IP and port 4533.
Ports Used
| Port | Purpose |
|---|---|
| 4533 | Navidrome Web UI & API |
Overview
Navidrome is a lightweight, self-hosted music server and streaming platform. It implements the Subsonic API, meaning any Subsonic-compatible mobile app (DSub, Symfonium, Ultrasonic) or desktop client can connect to it. Navidrome scans your music library, reads metadata from audio files, and serves it through a clean web UI or API.
Why Use It
Navidrome is the lightest, fastest self-hosted music server available. It uses a single binary with no external dependencies, consumes less than 50 MB of RAM, and runs on a Raspberry Pi without complaint. More importantly, it supports the Subsonic API — the industry-standard protocol for music streaming clients — so you can use polished mobile apps (Symfonium, DSub, Ultrasonic) instead of a basic web UI.
When You Need It
Who Should Use It
Real Use Cases
Main Features
How to Use After Installation
Security Best Practices
Ports and Firewall Notes
Navidrome listens on port 4533 by default. If you are accessing it only on your local network, keep port 4533 closed at the firewall and access it directly. For remote access, put it behind Nginx Proxy Manager on port 443 (HTTPS) with a custom domain. In UFW: ufw allow 4533 only if you need direct local access without a proxy. Block it from the internet and use HTTPS via NPM for remote streaming.
Backup and Maintenance
Common Mistakes
Troubleshooting
Alternatives
Jellyfin can serve music in addition to video but is much heavier and not optimized for audio-only streaming. Funkwhale is a federated music platform with social features — great if you want ActivityPub federation, overkill for personal use. Airsonic-Advanced is an older Subsonic fork, still functional but largely unmaintained. Plex and Emby offer music + video with polished apps but require accounts and have premium tiers. For pure music streaming with minimal resource usage, Navidrome is the clear winner.
When Not to Use It
Don't use Navidrome if you need video streaming — use Jellyfin instead. If your music library is small (under 500 songs) and you rarely stream remotely, a simple file server or Samba share is lighter. If your family members are used to Spotify's discovery features, social playlists, and curated recommendations, Navidrome won't replace that experience — it only streams what you already own. Don't use it if you don't have an existing local music library to serve.
PrismaTechWork Professional Help
PrismaTechWork provides end-to-end infrastructure services — from initial deployment and security hardening to ongoing monitoring, automated backups, and dedicated support. Whether you need a single-server setup or a multi-site network, our team ensures your infrastructure is built right, secured properly, and maintained reliably.
Frequently Asked Questions
What music formats does Navidrome support?
Navidrome supports all common audio formats: MP3, FLAC, AAC, OGG Vorbis, OPUS, WAV, AIFF, WMA, and more. FLAC files are streamed without quality loss to clients that support it. For clients on low-bandwidth connections, Navidrome can transcode to MP3 or OGG at configurable bitrates (requires ffmpeg to be installed).
Which mobile app works best with Navidrome?
Symfonium (Android, paid) is the most polished Subsonic client with offline sync, gapless playback, and a modern UI. DSub (Android, free) is a solid free option. Ultrasonic (Android, free) is another popular choice. On iOS, iSub or Amperfy work well. All these apps use the Subsonic API so they work identically with Navidrome — choose based on UI preference.
Does Navidrome work on a Raspberry Pi?
Yes. Navidrome is one of the few media servers light enough to run on a Raspberry Pi 3 or 4 without issues. It uses very little RAM (under 50 MB typically) and minimal CPU for serving pre-encoded files. Transcoding FLAC to MP3 on the fly does add CPU load — a Pi 4 handles it fine, but a Pi 3 may struggle under concurrent streams.
How do I add new music to Navidrome?
Copy or move your music files into the folder that is mounted as Navidrome's music directory (set in the ND_MUSICFOLDER environment variable). Navidrome will automatically scan for new files at your configured scan interval. You can also trigger an immediate full rescan from Admin > Library > Scan Library in the web UI.
Can multiple people use the same Navidrome server?
Yes. Navidrome has full multi-user support. Each user has their own login, playlists, starred tracks, play counts, and listening history. Create accounts from Admin > Users. Each user also gets their own Subsonic API credentials for connecting mobile apps. You can share the same music library across all users while keeping their data separate.
Can I access Navidrome from outside my home network?
Yes. Put Navidrome behind Nginx Proxy Manager with an SSL certificate and a custom subdomain (e.g., music.yourdomain.com). Point your mobile app to https://music.yourdomain.com instead of the local IP. Make sure your router forwards port 80 and 443 to the server running NPM. This gives you encrypted remote access without exposing port 4533 directly.
Does Navidrome delete or modify my music files?
Never. Navidrome is read-only — it scans and indexes your music files but never modifies, moves, or deletes them. All metadata (play counts, ratings, playlists) is stored in Navidrome's own SQLite database. Your original files are always untouched.
How is Navidrome different from Plex?
Navidrome is open-source, free, and music-only with no account required. Plex is a full media server (video, music, photos) with a polished proprietary app, but it requires a Plex account and a Plex Pass subscription for some features. Navidrome uses the Subsonic API (open standard) so you're not locked to a single client. For a private, music-only server with no subscription costs, Navidrome is the better choice.
