keepcalculator

06 Numbers and Powers

Raspberry Pi Navidrome Self-Hosted Music Server

Card No. 06·28167 · Updated · Standard formula, shown below

Yes, you can run a Navidrome music server on a Raspberry Pi, turning the small board into a personal streaming service for your own music collection. You enter your music folder and login credentials, and you get a web-based interface plus mobile apps to browse and play your songs from anywhere on your network (or the internet, if you set up remote access). This guide covers what you need, how to set it up, common issues, and whether it is the right choice for you.

What Navidrome Is and Why Run It on a Pi

Navidrome is an open-source, self-hosted music server that scans a folder of audio files (MP3, FLAC, M4A, OGG, etc.) and makes them available through a web player and through apps that use the Subsonic API. It is written in Go, so it is lightweight and runs well on low-power devices like the Raspberry Pi.

Running it on a Pi makes sense because the hardware is cheap, silent, and draws very little power. A typical Pi 4 or Pi 5 can handle several simultaneous streams, especially if your files are compressed formats like MP3 or OGG. FLAC files require more CPU to decode, but even then a Pi 4 can usually handle a few concurrent users without issue.

Navidrome does not store your music in a proprietary format; it simply indexes the files you already have. You keep your folder structure and metadata, and Navidrome reads tags (ID3, Vorbis comments, etc.) to organize the library.

What You Need to Get Started

Before you begin, gather the following:

  • A Raspberry Pi (model 3B or newer is recommended; Pi 4 or 5 works best)
  • A microSD card (at least 16 GB, but 32 GB or larger is better)
  • A power supply that meets the Pi’s requirements
  • An ethernet cable or stable Wi-Fi connection
  • Your music files stored on the Pi’s SD card, a USB drive, or a network share
  • Optional: a case with a fan or heatsink if you plan to transcode or run many streams

You will also need a way to interact with the Pi—either a monitor and keyboard, or more commonly, an SSH connection from your computer. Most users install Raspberry Pi OS Lite (64-bit) because it is minimal and leaves more resources for Navidrome.

Installation Steps: Docker vs. Native

There are two main ways to install Navidrome on a Raspberry Pi: using Docker or installing the binary directly. Docker is easier to update and manage, but it adds overhead. Native installation is lighter and uses fewer resources.

Option 1: Docker (Recommended for Most Users)

  1. Install Raspberry Pi OS Lite and update it: sudo apt update && sudo apt upgrade -y
  2. Install Docker: curl -fsSL https://get.docker.com | sh
  3. Create a directory for Navidrome data: mkdir ~/navidrome
  4. Place your music in a folder, e.g., ~/music
  5. Run the container with the following command (adjust paths as needed):
docker run -d --name navidrome \
  -p 4533:4533 \
  -v ~/navidrome:/data \
  -v ~/music:/music:ro \
  -e ND_LOGLEVEL=info \
  --restart unless-stopped \
  deluan/navidrome:latest

After the container starts, open http://your-pi-ip:4533 in a browser. The first time, you will be asked to create an admin user.

Option 2: Native Binary

  1. Download the latest Linux ARM binary from the Navidrome GitHub releases page (look for navidrome_linux_arm64.tar.gz for 64-bit OS).
  2. Extract it: tar -xzf navidrome_linux_arm64.tar.gz
  3. Move the binary to /usr/local/bin and make it executable.
  4. Create a config file at ~/navidrome/navidrome.toml with at least:
MusicFolder = "/home/pi/music"
DataFolder = "/home/pi/navidrome"
  1. Run it with navidrome or set up a systemd service for auto-start.

Configuring and Accessing Your Server

After installation, the web interface will guide you through creating an admin account. You can then add more users, each with their own playlists and listening history. The default port is 4533, but you can change it in the config file.

To access the server from other devices on your home network, simply use the Pi’s IP address and port. For remote access outside your home, you have options:

  • Set up port forwarding on your router (not recommended unless you secure it with HTTPS).
  • Use a VPN like WireGuard or Tailscale to securely connect to your home network.
  • Use a reverse proxy like Caddy or Nginx to add HTTPS and a domain name.

For mobile listening, install a Subsonic-compatible app like DSub (Android) or play:Sub (iOS). Enter your server URL (e.g., https://music.example.com), username, and password. The app will sync your library and allow offline downloads.

Common Problems and How to Fix Them

Here are frequent issues you might encounter:

  • Music not showing up: Check the folder permissions. The user running Navidrome must have read access to the music directory. Also, verify the path in the config file is correct and that the folder contains supported audio formats.
  • Slow scanning: The first scan of a large library (thousands of files) can take a while. Be patient. If it seems stuck, check the logs with docker logs navidrome or journalctl -u navidrome.
  • Streaming stops or buffers: This is often due to Wi-Fi interference or a weak signal. Use ethernet for the Pi and for the client if possible. Also, if you are transcoding (e.g., converting FLAC to MP3 for a mobile connection), the Pi’s CPU might be the bottleneck.
  • Cannot login after update: Back up the navidrome.db file before updating. If something goes wrong, you can restore it.

Performance and Storage Considerations

The Raspberry Pi 4 with 2 GB RAM is sufficient for a personal server with a few users. The Pi 5 is faster and can handle more concurrent streams and transcoding. If you have a huge library (more than 50,000 songs), consider using an SSD via USB instead of an SD card, as SD cards can be slow and wear out faster with constant reads.

Navidrome does not transcode by default; it streams the original file. If your client supports the format, that is ideal. If you need transcoding (e.g., to save bandwidth), you can enable it in the server settings, but this uses more CPU. The Pi 4 can transcode one or two streams simultaneously; the Pi 5 can handle more.

Alternatives to Navidrome on Raspberry Pi

Navidrome is not the only option. Here are a few alternatives with different strengths:

  • Jellyfin: A full media server (music, video, photos). Heavier than Navidrome but includes a web player and apps. Good if you also want video.
  • Subsonic / Airsonic: The original Subsonic is closed-source but Airsonic is a free fork. Navidrome is often considered lighter and more modern.
  • Funkwhale: A federated music server with social features. More complex to set up.
  • Mopidy: A music player that can be controlled via MPD (Music Player Daemon). It is not a full streaming server like Navidrome, but it can play music on the Pi’s audio output.

Navidrome is a good choice if you want a simple, self-contained music server that works with many apps and doesn’t require a heavy database.

Frequently Asked Questions

Can a Raspberry Pi Zero run Navidrome?

Technically yes, but it is not recommended. The Pi Zero’s single-core CPU and limited RAM will make scanning slow and streaming unreliable, especially with larger libraries. A Pi 3 or newer is a much better experience.

How do I update Navidrome?

If using Docker, pull the latest image and recreate the container: docker pull deluan/navidrome:latest then docker stop navidrome && docker rm navidrome and run the same docker run command as before. For native installs, download the new binary and replace the old one, then restart the service.

Can I access my music from anywhere?

Yes, but you need to expose the server to the internet securely. The safest way is to use a VPN like Tailscale, which creates an encrypted tunnel between your devices. Alternatively, you can set up a reverse proxy with HTTPS and port forwarding, but that requires more configuration and exposes the service to the public internet.

Does Navidrome support multiple users?

Yes, you can create multiple user accounts from the admin panel. Each user has their own playlists, favorites, and listening history. They all share the same music library, but you can restrict access to certain folders if needed.

What audio formats are supported?

Navidrome supports most common formats: MP3, M4A/AAC, FLAC, OGG, WAV, WMA, and more. It reads metadata from tags, so ensure your files are properly tagged with artist, album, title, etc. Album art is also read from embedded images or folder.jpg files.

How much power does the Pi consume?

A Raspberry Pi 4 under light load draws about 3-4 watts. With an SSD and continuous streaming, it might reach 5-6 watts. That is roughly $5-10 per year in electricity, depending on your rates. This makes it an energy-efficient way to run a server 24/7.

Related

Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.

More cards in this drawer

The whole Numbers and Powers drawer →