User Tools

Slskd

Slskd is a modern client / server daemon for Soulseek network.

Installation

So, as usual create the user, and add it to the media group:

useradd -d /data/daemons/slskd -m slskd -g media
su - slskd
mkdir data

Create the following docker-compose.yml:

docker-compose.yml
version: "2"
services:
  slskd:
    image: slskd/slskd
    container_name: slskd
    ports:
      - "5030:5030"
#      - "5031:5031"
      - "50300:50300"
    environment:
      - SLSKD_REMOTE_CONFIGURATION=true
      - "SLSKD_SHARED_DIR=/music"
      - SLSKD_URL_BASE=/slskd
      - SLSKD_DOWNLOADS_DIR=/downloads
      - SLSKD_INCOMPLETE_DIR=/incompletes
      - SLSKD_UMASK=000
      - SLSKD_FILE_PERMISSION_MODE=666

    volumes:
      - /data/daemons/slskd/data:/app
      - /data/Media/Music:/music:rw
      - /data/Media/Downloaded:/downloads:rw
      - /data/Media/Downloading:/incompletes:rw
    networks:
      - slskd-net

networks:
  slskd-net: {}

Remember to set an available port (5030)!

Now pull it:

podman compose pull

Usage

First login goes at URL http://your server IP:5030 with slskd username and password.

For accessing from outside home, see the NGINX reverse proxy setup below.

Remember to go to the slskd config page in the UI and set a soulseek username and password (hint: you don't need to register, it works like good old IRC, just create your own username+password and set it up in the config file).

Reverse Proxy

You can run slskd both as a subdomain or a subpath. I prefer the second one because it fits better with my various media services.

I assume the slskd will be reachable as https://home.mydomain.com/slskd.

Following this page create a NGINX config file called /etc/nginx/com.mydomain/search/slskd.conf like this:

slskd.conf
location = /slskd {     
        return 301 https://$host/slskd/;
}

location /slskd/ {
        proxy_pass http://127.0.0.1:5030/;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $host;
        proxy_request_buffering off;
        client_max_body_size 0;
}

and add it to your NGINX configuration. See The Reverse Proxy concept for more details.

Autostart

To start it, and set it up on boot, as usual follow my indications Using Containers on Gentoo, so link the user-containers init script:

ln -s /etc/init.d/user-containers /etc/init.d/user-containers.slskd

and create the following config file:

/etc/conf.d/user-containers.slskd
USER=slskd
DESCRIPTION="The slskd daemon"

Add the service to the default runlevel and start it now:

rc-update add user-containers.slskd default
rc-service user-containers.slskd start

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also, you acknowledge that you have read and understand our Privacy Policy. If you do not agree, please leave the website.

More information