====== Slskd ======
[[https://github.com/slskd/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:
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 [[https://github.com/slskd/slskd/blob/master/docs/reverse_proxy.md|this page]] create a NGINX config file called **/etc/nginx/com.mydomain/search/slskd.conf** like this:
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 [[selfhost:nginx|The Reverse Proxy concept]] for more details.
===== Autostart =====
To start it, and set it up on boot, as usual follow my indications [[gentoo:containers|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:
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