Running a Music Server (with Docker)

Written on 21.08.2024

If you have a huge physical music collection or a desire to not pay for your music, running a Music server is a great way to organize your collection. This guide will be covering configuring Navidrome and slskd.

This tutorial will be assuming you're running your music server in the /srv/music directory, but it should be trivially easy for you to change where it is. We'll also be assuming you have docker and docker-compose installed.

# This tutorial assumes you're root
# Firstly, we should create the /srv/music directory
mkdir /srv/music
cd /srv/music
# Now we should create the compose.yml file 
nano compose.yml

compose.yml

services:
  navidrome:
    image: deluan/navidrome:latest
    user: 1000:1000
    ports:
      - "4533:4533"
    restart: unless-stopped
    environment:
      ND_SCANSCHEDULE: 1h
      ND_LOGLEVEL: info
      ND_SESSIONTIMEOUT: 24h
      ND_BASEURL: ""
    volumes:
      - "./navidrome:/data"
      - "./soulseek/downloads:/music" # you can change this to something else if you aren't using soulseek.
  # the slskd container is entirely optional if you do not want to engage in piracy.
  slskd:
    image: slskd/slskd
    container_name: slskd
    ports:
      - "5030:5030"
      - "5031:5031"
      - "50300:50300"
    environment:
      - SLSKD_REMOTE_CONFIGURATION=true
    volumes:
      - ./soulseek:/app
    restart: always
# Now we should run the stack to generate config files
docker-compose up -d
# Wait around 20-30 seconds until shutting down the containers
docker-compose down
# Now we'll edit the slskd config
nano ./soulseek/slskd.yml

If you're running this locally, i.e. you won't expose this to the internet, I suggest enabling web.authentication.disabled. Otherwise, setup an username and a password. Don't use common usernames. Also, you must create a soulseek account and add it to your slskd config (soulseek.username & soulseek.password)

# Now you can run your stack
docker-compose up -d

Now, you must configure an administrator Navidrome account. Browse to https://[your server ip]:4533/ and make your administrator account. Now you can add your music to whatever folder you configured, or /srv/soulseek/downloads. For soulseek, you'll have to browse to https://[your server ip]:5030/ and login.

From here, you can go bananas.

Thanks for reading this quick tutorial.

Unless noted otherwise, all the content on this page is licensed under CC0.
"Life in liberty or death"