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