+++ title = 'Running a Music Server (with Docker)' date = 2024-08-21T07:14:38+03:00 draft = false +++ 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](https://www.navidrome.org/) and [slskd](https://github.com/slskd/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. ```bash # 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** ```yaml 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 ``` ```bash # 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`) ```bash # 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.