5UBZERO664 Logo
Back to Blog
February 22, 2026

Better than spotify. #music streaming

Host your own music streaming service and stay in control. Ad free, on any device for free!https://www.facebook.com/profile.php?id=100088075450661https://ww...

here's a blog post crafted from the content of the YouTube video you provided, aiming to be informative and educational for your audience.


Build Your Own Spotify: A Guide to Navidrome on Portainer

Tired of paying for music streaming services and dealing with ads or limitations? What if you could host your music, ad-free, and accessible from any device? In this blog post, we'll explore Navidrome, a simple open-source music server, and guide you through setting it up on Portainer. This setup will allow you to stream your music library from any device with a web browser!

What is Navidrome?

Navidrome is like a personal Spotify server. It scans your music library (MP3, FLAC, etc.) and makes it available via a sleek web player on any device that can access the Navidrome instance. So, if you have a ton of music sitting on a Network Attached Storage (NAS) drive, you can use Navidrome to stream those files directly to your phone, computer, or tablet.

Why Host Your Own Music Server?

There are several compelling reasons to ditch those streaming services and go DIY:

  • Cost Savings: No monthly subscription fees. Just pay for the hardware (NAS, server, etc.) and power.
  • Freedom & Control: You own your music, you set the rules. No more limitations on users, devices, or annoying recommendations.
  • Privacy: Your listening habits stay with you. No data tracking by corporations.
  • Accessibility: Stream your music from anywhere with an internet connection.

Installation Methods

There are several ways to get Navidrome up and running, depending on your existing setup:

  1. OpenMediaVault: This is a popular, user-friendly NAS operating system. (Not discussed in depth here.)
  2. TrueNAS or Docker on Other NAS Devices: You can use Truecharts on truenas.
  3. Docker Compose on Portainer: The tutorial focuses primarily on this method, offering flexibility and easy setup using Docker Compose.

Setting up Navidrome on Portainer using Docker Compose

We'll walk through the Docker Compose installation steps, assuming you have Portainer already running. If not, you may want to install it, first.

Step 1: Navigate to Stacks in Portainer

In Portainer's web interface, go to the "Stacks" section. Stacks let you define multi-container applications with a single Docker Compose file.

Step 2: Add a New Stack

Click "Add Stack" to create a new application stack.

Step 3: Configure the Stack with Docker Compose

Copying the Docker Compose File

Go to the Navidrome documentation website. It provides a Docker Compose file tailored for Navidrome. Copy the code from the documentation and paste it into Portainer's web editor. To ensure proper formatting, copy directly from the Navidrome website documentation instead of a third party blog site.

Editing the Docker Compose File

This is the most crucial part. You'll need to adjust a few settings to match your environment. Here's a breakdown:

  • User (PUID & PGID): Docker containers typically run as "root" which is less secure and can create permission issues. You have to replace 1000:1000 in the file with your user's User ID (PUID) and Group ID (PGID).

    • How to Find Your PUID and PGID
      • Log into your server via SSH, using a terminal like PuTTY or simply your SSH terminal.

      • Enter the command: id <your_username> (replacing <your_username> with the actual username you created on the server).

        id piper
        
      • The output will show your uid (PUID) and gid (PGID). For example:

        uid=998(piper) gid=100(users) groups=100(users)
        
      • In this case, PUID would be 998 and PGID would be 100.

  • Volumes: These tell Docker where to store the data. By default, the Dockerfile will have two volumes setup. You will need to tell the volume where to point to using a path.

    • For /config/data:
      • This first volume, /config/data maps the config folder to /data. The data folder in the Docker container contains configuration files and the Navidrome database.
    • For /path/to/your/music/folder:ro
      • You will want to put the absolute path to the folder where your music is stored.

        /path/to/your/music/folder/music:ro
        
        • Here, we have added a relative path to a volume music which needs to point to the exact location or folder to my music.

        • Also the :ro at the end indicates this folder is read-only, this will make Navidrome will make sure that files are not modified directly.

Example Docker Compose File

Here's an example of what the relevant sections of your docker-compose.yml might look like after you've edited it:

version: "3"
services:
  navidrome:
    image: deluan/navidrome:latest
    user: 998:100 # Replace 1000:1000 with your PUID:PGID
    ports:
      - "4533:4533"
    volumes:
      - /config/navidrome/data:/data
      - /path/to/your/music/folder:/music:ro
Environmental Variables

The environmental variables can be optionally configured by setting the value in the compose file under the section called environment: This lets you set the Scan Schedule, Log Level, Session Timeout.

For basic use cases, leave the following items the same:

    environment: #optional
      ND_SCANSCHEDULE: 1h
      ND_LOGLEVEL: info
      ND_SESSIONTIMEOUT: 24h

Step 4: Deploy the Stack

Give your stack a name (e.g., "navidrome") and click "Deploy the stack". Portainer will pull the Navidrome image and start the container according to your Docker Compose configuration.

Step 5: Access Navidrome

Once the stack has successfully deployed, open your web browser and navigate to http://<your_server_ip>:4533 (replacing <your_server_ip> with the actual IP address of the server running Portainer).

You will be prompted to create an admin user to access Navidrome.

Configuring Navidrome

  • First login: You must first create an Admin user before continuing any further.
  • Changing Password or Create Other User: You can do so after initially logging in.
  • Share configuration: You have many options with regards to configuring how your system runs based on preference

Key Takeaways

  • Navidrome is a great alternative to commercial music streaming services, offering control, privacy, and potential cost savings.
  • Docker Compose simplifies the installation process, making it relatively easy to deploy Navidrome on systems like Portainer.
  • Properly configuring the user, volumes, and environment variables in the Docker Compose file is crucial to a successful installation.
  • You'll need to create an admin user to access Navidrome after the initial setup.

Resources


I hope this is the kind of blog post you were looking for! Let me know if you have any questions.