====== 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