How to Install Navidrome on UGREEN NAS with Docker
Navidrome is a lightweight, self-hosted music server for streaming your personal audio collection through a web browser or compatible mobile and desktop apps. It is a third-party Docker service and is separate from the built-in UGOS Pro Music app.
You can install Navidrome on a Docker-compatible UGREEN NAS, the DH2300 cannot use this method because it does not support Docker, while the DH4300 Plus and current DXP models do.

Key Takeaways
- Navidrome runs through Docker on the DH4300 Plus and current UGREEN NAS DXP models. The DH2300 does not support Docker.
- Navidrome needs read-and-write access to its persistent
/datafolder and read access to the mounted/musicfolder. - The default web port is
4533, so local access normally useshttp://NAS_IP:4533. - UGREENlink can provide remote browser access to a container shortcut. Remote music apps require a reachable private address or a properly configured HTTPS endpoint.
Can You Install Navidrome on Every UGREEN NAS?
No. This installation method requires Docker support. The following current UGREEN NAS models support Docker:
- DH4300 Plus
- DXP2800
- DXP2800 GT
- DXP4800 Plus
- DXP4800 Pro
- DXP4800 GT
- DXP480T Plus
- DXP6800 Pro
- DXP8800 Plus
The DH2300 does not support Docker and therefore cannot run Navidrome using this guide.

How Do You Install Navidrome with Docker Compose?
The installation consists of preparing the folders and permissions, finding the user and group IDs that Navidrome will use, and deploying the Compose project.
Step 1: Install Docker and Find Your NAS IP Address
Open App Center, locate Docker, and select Install.
Next, open:
Control Panel > Network > Network Connection
Note the IP address assigned to the active LAN connection. For example:
192.168.1.50

You will use this address to open Navidrome after deployment.
If you are new to Docker projects, see how Docker and Docker Compose work on UGREEN NAS.
Step 2: Create the Navidrome Folders
Open Files and locate the Docker shared directory created when Docker was installed.
Create the following folder structure:
docker
└── navidrome
└── data
The data folder will store Navidrome’s database, cache, users, playlists, play history, and other persistent application data.
Next, create or identify the shared folder that contains your music. For example:
Music
├── Artist One
│ └── Album One
└── Artist Two
└── Album Two
Record the absolute path of each folder. If both folders are stored on volume 1, the paths may look like:
/volume1/docker/navidrome/data
/volume1/Music
Replace volume1, folder names, and capitalization with the actual paths on your NAS. Linux paths are case-sensitive.
Step 3: Create a Dedicated Navidrome User
Open:
Control Panel > User Management > User > Add > Create

Create a standard user named navidrome. Grant that user:
- Read and write permission for the Navidrome
datafolder - Read permission for the music folder
- No access to unrelated shared folders
The music folder will also be mounted as read-only in Docker, giving it an additional layer of protection.
Step 4: Find the Navidrome User’s UID and GID
Docker identifies users with numeric user and group IDs. These numbers vary between NAS installations, so obtain the values from your own system.
Open:
Control Panel > Terminal
Enable SSH temporarily and note the configured SSH port. The default port is 22.
On Windows, open Command Prompt. On macOS, open Terminal. Connect using an administrator account:
ssh <admin_username>@<NAS_IP> -p 22
For example:
ssh alex@192.168.1.50 -p 22
After signing in, run:
id navidrome
The result will resemble:
uid=1026(navidrome) gid=100(users) groups=100(users)
In this example, the UID is 1026 and the GID is 100, so the Compose file would use:
user: "1026:100"
Your values may be different. Record the numbers shown by your NAS, sign out of SSH, and disable SSH again if you do not normally use it.
SSH is needed only once to obtain these numeric IDs. Removing the user: line causes the container to run as root, which may avoid initial permission errors but gives it broader filesystem access than it needs. This guide does not recommend that configuration. If you prefer a music server that requires no terminal access, use the built-in UGOS Pro Music app instead.
Step 5: Create the Docker Compose Project
Open the Docker application and select:
Project > Create
Enter navidrome as the project name. Paste the following configuration into the Compose editor, or upload it as a YAML file if prompted:
services:
navidrome:
image: deluan/navidrome:latest
container_name: navidrome
user: "<UID>:<GID>"
ports:
- "4533:4533"
restart: unless-stopped
volumes:
- "/volume1/docker/navidrome/data:/data"
- "/volume1/Music:/music:ro"
Before deploying, replace:
-
<UID>with the Navidrome user’s numeric UID -
<GID>with the Navidrome user’s numeric GID -
/volume1/docker/navidrome/datawith the actual data-folder path -
/volume1/Musicwith the actual music-folder path
The /data mount is writable because Navidrome must create and update its database. The /music:ro mount is read-only, allowing Navidrome to scan and stream the library without changing the source files.
If another container already uses host port 4533, change the first number only:
ports:
- "4534:4533"
You would then open Navidrome at http://NAS_IP:4534.
Step 6: Deploy Navidrome
Review the folder paths, UID, GID, and port mapping, then select Deploy.
UGOS Pro will download the Navidrome image and start the container. The initial download time depends on your internet connection.
Open Docker > Container and confirm that the navidrome container shows Running.
How Do You Open Navidrome and Scan Your Music?
Open a browser on a device connected to the same local network and enter:
http://<NAS_IP>:4533
For example:
http://192.168.1.50:4533
If you selected another host port, use that port instead.
The first person to open Navidrome will be asked to create an administrator. Enter a username and strong password, confirm the password, and select Create Admin.
These are Navidrome credentials, not your UGREEN NAS username and password.
Navidrome will begin scanning the mounted music folder. Albums and artists will appear progressively.
You can confirm progress under Docker > Container > navidrome > Log. A successful startup normally includes messages such as:
Creating DB Schema
Scanner: Starting scan
Navidrome server is ready!
Why Is Music Not Appearing in Navidrome?
Start with the container status and log.
| Symptom | Likely cause | First check |
|---|---|---|
| Container stops after starting |
/data is not writable |
Data-folder permission and UID/GID |
| Interface opens but shows no music |
/music cannot be read |
Music path and read permission |
| Browser cannot connect | Wrong IP, port, or container state | Port mapping and container log |
| Albums are split or mislabeled | Inconsistent embedded tags | Album artist, album, and track tags |
| Container will not deploy | Host port is already in use | Change the first port number |
The Container Stops with a Database Error
An error such as the following indicates that Navidrome cannot write to /data:
unable to open database file
Confirm that:
- The host data-folder path exists.
- The
navidromeuser has read and write permission. - The UID and GID in Compose match the values returned by
id navidrome. - The path uses the correct volume number and capitalization.
After correcting the permission or path, open the Docker project and redeploy it.
Navidrome Opens but the Library Is Empty
An empty library usually means that the music folder was mounted incorrectly or the container user cannot read it.
Check the log for messages such as:
permission denied
Scanner: Target folder does not exist
Then confirm that:
- The host music path is correct.
- The path is mounted to
/music. - The
navidromeuser has read permission for the folder and its files. - The folder contains supported audio files.
- Each parent directory in the path can be opened by that user.
The :ro setting does not prevent Navidrome from reading the files. It prevents the container from modifying them.
Albums or Artists Are Organized Incorrectly
Navidrome organizes music primarily from embedded tags rather than the folder structure alone. At minimum, check these fields in the affected files:
- Track title
- Artist
- Album artist
- Album
- Track number
- Disc number
Navidrome can use embedded artwork and common cover files such as cover.jpg, folder.jpg, or front.jpg. Correcting the source tags and rescanning the library is more reliable than depending on folder names to organize the collection.
Navidrome does not provide true folder browsing. Folder-style views are generated from the file metadata.
How Can You Access Navidrome Remotely?
Local access through http://NAS_IP:4533 works only while the client can reach your home network. Remote browser access and remote playback-app access require different setups.
Option 1: Use a UGREENlink Container Shortcut for Browser Access
UGOS Pro can expose a container’s web interface through a desktop shortcut when you sign in remotely with a UGREENlink ID.
Open:
Docker > Container
Locate navidrome, select the three-dot menu, and choose Desktop shortcut. Confirm port 4533, or enter the custom host port you selected.
After signing in to your NAS through UGREENlink, select the Navidrome shortcut on the UGOS Pro desktop to open its web interface.
This method is useful for browser-based access. A third-party Subsonic app cannot use a UGREENlink ID as its Navidrome server address.
Option 2: Use a Private Network
A private-network service such as Tailscale can give approved devices a private route to the NAS without publishing port 4533 directly to the internet.
Once the private connection is working, enter the NAS private-network address in the Navidrome app:
http://<NAS_PRIVATE_IP>:4533
Both the NAS and playback device must be connected to the same private network.
Option 3: Use an HTTPS Reverse Proxy
A reverse proxy can forward a hostname such as:
https://music.example.com
to Navidrome at:
http://<NAS_IP>:4533
Use a valid TLS certificate and test the connection from outside the home network. This option is appropriate when you need a conventional HTTPS address that multiple compatible clients can reach.
Keep plain HTTP and port 4533 limited to your local or private network. Directly exposing an unencrypted address such as http://PUBLIC_IP:4533 sends login and playback traffic without HTTPS protection.
For the current UGREENlink and DDNS configuration paths, see how to access a UGREEN NAS remotely.

Frequently Asked Questions
What is the default Navidrome port?
Navidrome uses TCP port 4533 by default. With the Compose mapping 4533:4533, open http://NAS_IP:4533 to access the web interface.
Which audio formats does Navidrome support?
Navidrome supports common formats including MP3, FLAC, AAC, OGG, Opus, WMA, APE, and WavPack. Browser and client codec support varies, so Navidrome can transcode audio when a player cannot use the source format directly.
Can I change the Navidrome port?
Yes. Change the first number in the Docker port mapping. For example, 4534:4533 makes Navidrome available at http://NAS_IP:4534 while the container continues using its internal port 4533.
Is Navidrome the same as the UGREEN Music app?
No. Navidrome is a third-party music server that runs through Docker. The UGREEN Music app is a built-in UGOS Pro application. They provide separate libraries, user accounts, interfaces, and application data.