diff --git a/content/technology/running-a-music-server.md b/content/technology/running-a-music-server.md new file mode 100644 index 0000000..404bd2b --- /dev/null +++ b/content/technology/running-a-music-server.md @@ -0,0 +1,66 @@ ++++ +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. \ No newline at end of file