A modern client-server application for the Soulseek file-sharing network.
Note for Docker Hub Users: This README is optimized for both GitHub and Docker Hub. Some visual elements may appear differently on Docker Hub.
docker run -d \
-p 5030:5030 \
-p 5031:5031 \
-p 50300:50300 \
-e SLSKD_REMOTE_CONFIGURATION=true \
-v <path/to/application/data>:/app \
--name slskd \
slskd/slskd:latest
version: "2"
services:
slskd:
image: slskd/slskd
container_name: slskd
ports:
- "5030:5030"
- "5031:5031"
- "50300:50300"
env_file:
- .env
environment:
- SLSKD_HTTP_PORT=5030
- SLSKD_HTTPS_PORT=5031
- SLSKD_SLSK_LISTEN_PORT=50300
- SLSKD_APP_DIR=/app
- SLSKD_REMOTE_CONFIGURATION=true
- SLSKD_USERNAME=${SLSKD_USERNAME}
- SLSKD_PASSWORD=${SLSKD_PASSWORD}
volumes:
- <path/to/application/data>:/app:z
restart: always
Getting Started:
.env file with your credentialsdocker-compose up -dhttp://localhost:5030slskd/slskd (change immediately!)Security Recommendations:
SLSKD_REMOTE_CONFIGURATION for production.env for sensitive data.env to .gitignore to prevent accidental commitsFull Docker guide: docker.md
Download the latest binaries from releases. Extract the zip file to your preferred directory and run the executable.
Permissions Note:
sudo chown -R $USER:$USER ~/.local/share/slskd
sudo chmod -R 755 ~/.local/share/slskd
The application creates:
~/.local/share/slskd (Linux/macOS)%localappdata%/slskd (Windows)Edit slskd.yml for configuration.
git clone https://github.com/slskd/slskd.git
cd slskd
dotnet build
dotnet run --project src/slskd
See our CONTRIBUTING guidelines for details.
For production deployments, you should configure HTTPS with a valid certificate instead of using the self-signed certificate. Here's how to set up Let's Encrypt with Nginx reverse proxy:
sudo apt install nginx certbot python3-certbot-nginx
/etc/nginx/sites-available/slskd):server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://localhost:5030;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
sudo ln -s /etc/nginx/sites-available/slskd /etc/nginx/sites-enabled/
sudo certbot --nginx -d yourdomain.com
web:
https:
disabled: true # Disable built-in HTTPS
urlBase: https://yourdomain.com
ports:
- "127.0.0.1:5030:5030" # Only expose internally
Caddy is an easy-to-use, open-source web server with automatic HTTPS. It's an excellent choice for proxying slskd. Here's a detailed configuration guide:
yourdomain.com {
reverse_proxy localhost:5030 {
header_up X-Real-IP {remote_host}
}
}
yourdomain.com {
# Security headers
header {
Strict-Transport-Security "max-age=31536000;"
X-Content-Type-Options "nosniff"
X-Frame-Options "SAMEORIGIN"
Content-Security-Policy "default-src 'self';"
}
# Reverse proxy to slskd
reverse_proxy localhost:5030
}
version: "3"
services:
slskd:
image: slskd/slskd
# ... [other slskd configuration]
ports:
- "127.0.0.1:5030:5030" # Internal only
caddy:
image: caddy:latest
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
- caddy_config:/config
volumes:
caddy_data:
caddy_config:
Caddy automatically:
For advanced configurations including load balancing and caching, see caddy.md.
Once running, log in to the web UI using the default username slskd and password slskd to complete the configuration.
Detailed documentation for configuration options can be found in config.md, and an example of the YAML configuration file can be reviewed in slskd.example.yml.
For advanced configuration options, see the configuration guide.
We welcome contributions! Please see our CONTRIBUTING guidelines for details on how to submit pull requests, report issues, and suggest improvements.
dotnet build in the root directorydotnet run --project src/slskdContent type
Image
Digest
sha256:917d4d73c…
Size
101.4 MB
Last updated
over 1 year ago
docker pull mpa403/slskd-eg