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

⚠️ This script is provided for demo and testing purposes only. Not intended for production use.

📦 Resources & Setup Scripts

Grab the automated bash script from GitHub to follow along with the video.

Automated install script — single command deploys the music server.
View on GitHub

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

PortPurpose
4533Navidrome 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.

                      Contact Us

                      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.