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.
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
Prepare Docker and the drive
Complete the Docker mission and mount your music drive at /mnt/music.
Organize your files
Tag your music properly (artist, album, track number); Navidrome builds its library from the tags, not folder names.
Start Navidrome
Save the compose file below and run docker compose up -d.
Create the admin
Open port 4533 on the Pi's address in a browser and create the first user, who becomes the admin.
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:roTip: 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.