Self-host Navidrome
A self-hosted music streaming server (Subsonic-compatible) — stream your own library to dozens of mobile and desktop apps. Your music, your server.
Key facts
Pick Navidrome when you want your own music library streamed to the existing ecosystem of Subsonic, Airsonic and Madsonic clients: it is a GPL-3.0 Go binary with a React web UI, SQLite for its own data, on-the-fly transcoding through ffmpeg, and per-user play counts and playlists. One container, one read-only `/music` mount and one `/data` folder is the install, and the README describes "Very low resource usage", though no RAM figure is published — our 256 MB floor is an estimate. For audiobooks and podcasts Audiobookshelf is the better shape; for video, Jellyfin.
Follow the Navidrome deploy guide →What you need
- Any VPS with at least 256 MB of RAM
- A domain you control — most self-hosted setups need HTTPS in front of them
- Under an hour if you've used Docker before
Paid link — we earn a commission if you shop through it.
Install
Run these commands on your server:
# Navidrome — official docker run (docs → Installation → Docker). Runs as your user, not root:
# the data folder must be writable and the music folder readable by that UID:GID
mkdir -p ./data ./music && sudo chown -R $(id -u):$(id -g) ./data
docker run -d \
--name navidrome \
--restart=unless-stopped \
--user $(id -u):$(id -g) \
-v ./music:/music \
-v ./data:/data \
-p 4533:4533 \
-e ND_LOGLEVEL=info \
deluan/navidrome:latest
# open http://SERVER_IP:4533What you take on
Navidrome is light to run, but its security page and release notes name the things that actually go wrong: