Home ServersTechnician

Your Own Music Streaming Server with Navidrome

Stream your MP3 and FLAC collection to any phone or browser, with playlists and multiple users — no subscription.

LevelTechnician
Time1 h
Est. cost~$157
Steps5

Navidrome is a lightweight open-source music server that runs happily on a Pi 4. It speaks the Subsonic API, so dozens of mobile apps can stream from it, and it uses very little RAM.

Mission steps

  1. Prepare Docker and the drive

    Complete the Docker mission and mount your music drive at /mnt/music.

  2. Organize your files

    Tag your music properly (artist, album, track number); Navidrome builds its library from the tags, not folder names.

  3. Start Navidrome

    Save the compose file below and run docker compose up -d.

  4. Create the admin

    Open port 4533 on the Pi's address in a browser and create the first user, who becomes the admin.

  5. Connect your phone

    Install any Subsonic-compatible app, add your server address and log in. Use your VPN to listen away from home.

Code

services:
  navidrome:
    image: deluan/navidrome:latest
    user: "1000:1000"
    ports:
      - "4533:4533"
    restart: unless-stopped
    environment:
      ND_SCANSCHEDULE: 1h
      ND_LOGLEVEL: info
    volumes:
      - ./data:/data
      - /mnt/music:/music:ro

Tip: test every script on the bench before installing it in a moving machine.

Questions

Can it play my streaming-service downloads?

No. Those downloads are locked to their apps. Navidrome plays normal audio files you own, such as ripped CDs or purchased MP3/FLAC files.