Cloud Native 7 min read

Deploy Navidrome in One Command: Build Your Private Music Streaming Server

This guide shows how to quickly set up Navidrome—a lightweight, fully Chinese, open‑source music streaming server—on any Linux machine using Docker Compose, covering prerequisites, configuration, security tips, and mobile client setup for seamless personal music access.

Xiao Liu Lab
Xiao Liu Lab
Xiao Liu Lab
Deploy Navidrome in One Command: Build Your Private Music Streaming Server

Zero cost, full Chinese interface, and Last.fm support let you carry your music library everywhere without subscription fees.

Today we’ll walk through deploying Navidrome on your own server with a single command; Navidrome is an open‑source, lightweight, visually appealing, feature‑rich private music streaming service.

I have been using it for years and find it solves my needs with just a couple of VIP accounts, but a friend asked for a tutorial, so here it is.

Key features:

✅ Full Chinese UI

✅ Mobile app for on‑the‑go listening

✅ Automatic local music library scanning

✅ Sync playback history to Last.fm (Chinese tags supported)

✅ Optional Spotify cover and recommendation integration

✅ Completely free, with 100% data under your control

1. What is Navidrome?

Navidrome is a web‑based music streaming server compatible with the Subsonic API, allowing any Subsonic client (e.g., DSub, Substreamer) on iOS/Android to play music.

It is lighter than Plex and less complex than Emby, using less than 100 MB of memory, starts quickly, and has simple configuration, making it ideal for NAS, Raspberry Pi, or cloud server deployment.

2. Preparation (5 minutes)

You need a Linux server (CentOS/Ubuntu/Debian) with at least 1 CPU core and 1 GB RAM, Docker + Docker Compose installed, a directory for your music (e.g., /sj-data/navidrome/), and optionally a domain name with HTTPS (use Nginx reverse proxy).

💡 No server? Use an old PC, Raspberry Pi, or Synology NAS.

3. One‑click deployment: copy the docker‑compose.yml

Create a directory and edit the configuration:

mkdir -p /opt/navidrome && cd /opt/navidrome
vim docker-compose.yml

Paste the following (comments optimized for Chinese users):

version: "3"
services:
  navidrome:
    image: deluan/navidrome:latest
    container_name: navidrome
    ports:
      - "4533:4533"   # Access at http://YOUR_IP:4533
    restart: unless-stopped
    environment:
      # Basic settings
      ND_SCANSCHEDULE: 24h          # Scan new music every 24 h
      ND_LOGLEVEL: info
      ND_SESSIONTIMEOUT: 24h
      ND_BASEURL: ""
      ND_DEFAULTLANGUAGE: "zh-Hans" # Force Simplified Chinese
      ND_ENABLEGRAVATAR: "true"    # Enable Gravatar avatars

      # Advanced features (enable as needed)
      ND_ENABLETRANSCODINGCONFIG: false   # Disable transcoding to save CPU

      # Last.fm scrobbling (Chinese tags supported)
      ND_LASTFM_APIKEY: "380822e****36897c6***7d02a3**"
      ND_LASTFM_SECRET: "a3527fc1*****d60e27***a10537*"
      ND_LASTFM_LANGUAGE: "zh"

      # Spotify cover and metadata enhancement (playback not affected)
      ND_SPOTIFY_ID: "3a2c6c28****cb1eb83&&&***"
      ND_SPOTIFY_SECRET: "867c9c****0548***7a4d8a7780**3"
    volumes:
      - "/www/wwwroot/navidrome/data:/data"   # Database, cache, covers
      - "/sj-data/navidrome/:/music:ro"       # Your music library (read‑only)

🔒 Security tip:

Mount the music directory as read‑only (:ro) to prevent accidental deletion, store data separately so reinstalling the container won’t lose anything.

Start the service: docker-compose up -d Wait about 10 seconds, then open http://YOUR_SERVER_IP:4533 in a browser.

The first login will ask you to create an admin account, after which Navidrome will automatically scan the /music directory.

4. How to listen on your phone?

Recommended clients:

Music stream URL: https://music.aqzscn.cn Configuration steps (illustrated):

Server address: http://YOUR_IP:4533 Username/password: the account you created Tap “ Sync ” to see all songs.

5. Final thoughts

Your hard‑drive music collection deserves a better home.

If this article helped you, feel free to like, share, or comment with your Navidrome UI screenshots.

Follow me and let me know what topics you’d like me to write about next!

DockerLinuxDocker Composeself‑hostedMusic StreamingNavidrome
Xiao Liu Lab
Written by

Xiao Liu Lab

An operations lab passionate about server tinkering 🔬 Sharing automation scripts, high-availability architecture, alert optimization, and incident reviews. Using technology to reduce overtime and experience to avoid major pitfalls. Follow me for easier, more reliable operations!

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.