All apps · 0 apps
slskdn
Docker app from slskdN's Repository
Overview
slskdN is a feature-rich Soulseek web client and an unofficial batteries-included fork of slskd.
FEATURES:
- Auto-replace stuck downloads with alternative sources
- Wishlist / background search with auto-download
- Smart source ranking based on speed, queue, and history
- User notes and download history badges
- Block users from search results
- Multiple download destinations
- Delete files on disk from UI
- Push notifications (Ntfy, Pushover, Pushbullet)
- Tabbed browse sessions
- Clear all searches button
- And more...
No scripts required. Everything built-in.
Readme
View on GitHubslskdN
A web interface and daemon for Soulseek file sharing
slskdN is an unofficial fork of slskd. It provides a web UI, REST API, and Soulseek client. It also includes extended search, automation, media, and networking features at different levels of maturity.
Check feature maturity before relying on an extension. The feature inventory is the canonical per-feature status. Implementation status summarizes the main groups. Experimental features are not guaranteed stable, and feature gates have feature-specific defaults.
Get started
- Install and configure slskdN
- Configuration reference
- Docker deployment
- Troubleshooting
- Build from source
For first use, follow the setup guide to install the daemon, open its Web UI, set credentials, configure a download directory and Soulseek account, then search, browse, and manage transfers.
Install the latest stable release on Linux
Download the current stable installer and run it with administrator privileges:
curl -fsSLO https://github.com/snapetech/slskdn/releases/latest/download/install-linux-release.sh
sudo bash install-linux-release.sh
The installer configures the system service. See the setup guide for configuration and first-login steps.
Use the main workflows
- Dashboard — review successful transfers from the last seven days and open the corresponding download or upload list.
- Search and discovery — search peers and review optional discovery tools.
- Browse and download — select files and folders, choose a destination, and follow transfer progress. Transfer Operations explains path templates, file-name collisions, permissions, request history retention, API timestamp format, and paging through long transfer lists.
- Wishlist and Lidarr — configure background acquisition workflows and their safeguards.
- Messages, rooms, and pods — review the distinct Soulseek and mesh messaging surfaces.
- Player and listening parties — configure local playback and optional shared listening.
- System settings — manage policies, integrations, metrics, diagnostics, and local experience preferences.
Feature maturity
The stable baseline is slskd-compatible daemon behavior, the Web UI and REST API, and standard single-source Soulseek transfers. The project also ships experimental features; their maturity, gates, tests, and smoke coverage vary. Consult the inventory and feature-specific guide before enabling an extension.
DHT rendezvous, mesh networking, pods, federation, VirtualSoulfind, and multi-source downloads are distinct experimental systems. Their presence in the UI, API, configuration, or documentation does not mean they are enabled, interoperable, or suitable for production in every setup.
Roadmap-only security claims
Some proposed security systems remain design-only. See the separate documents for implemented security controls, the security roadmap, and security non-goals.
HashFromAudioFileEnabled is unavailable in this build; enabling it causes
startup validation to fail. Runtime SongID capabilities are reported by the
application and may differ with configuration and installed tools.
Project status and contribution
- Feature inventory — canonical maturity and coverage table.
- Implementation status — user- and contributor-facing summary.
- Feature overview — detailed capability descriptions.
- Contributing — development and contribution guidance.
- API documentation — HTTP API reference.
slskdN is an unofficial fork. The separate slskr project is a Rust implementation; consult that repository for its own status and compatibility claims.
- Support maintenance: Ko-fi.
License
GNU Affero General Public License v3.0. See LICENSE.
Requirements
Categories
Download Statistics
Related apps
Explore more like this
Explore allDetails
ghcr.io/snapetech/slskdn:latestRuntime arguments
- Web UI
http://[IP]:[PORT:5030]/- Network
bridge- Shell
bash- Privileged
- false
- Extra Params
--restart=unless-stopped
Template configuration
Port for the web interface
- Target
- 5030
- Default
- 5030
- Value
- 5030
Port for HTTPS (uses self-signed cert)
- Target
- 5031
- Default
- 5031
- Value
- 5031
Port for incoming Soulseek and slskdN mesh TCP connections (must be forwarded in router)
- Target
- 50300
- Default
- 50300
- Value
- 50300
Optional UDP port shared by public DHT, mesh overlay, and QUIC control/data traffic
- Target
- 50300
- Default
- 50300
- Value
- 50300
Application data, config, and databases
- Target
- /app
- Default
- /mnt/user/appdata/slskdn
- Value
- /mnt/user/appdata/slskdn
Choose the Unraid share and directory where downloaded files are saved
- Target
- /downloads
Optional read-only Unraid share containing the music you want to share
- Target
- /music
User ID for file permissions (run 'id' in terminal)
- Default
- 1000
- Value
- 1000
Group ID for file permissions (run 'id' in terminal)
- Default
- 1000
- Value
- 1000
Your timezone (e.g., America/New_York, Europe/London)
- Target
- TZ
- Default
- America/Chicago
- Value
- America/Chicago
Your Soulseek username (or set in web UI)
- Target
- SLSKD_SLSK_USERNAME
Your Soulseek password (or set in web UI)
- Target
- SLSKD_SLSK_PASSWORD
Container application-data directory; keep /app with the App Data mapping above
- Target
- SLSKD_APP_DIR
- Default
- /app
- Value
- /app
Container bind address; keep 0.0.0.0 for Unraid access
- Target
- SLSKD_HTTP_ADDRESS
- Default
- 0.0.0.0
- Value
- 0.0.0.0
Must match the Web UI Port container mapping above
- Target
- SLSKD_HTTP_PORT
- Default
- 5030
- Value
- 5030
Must match the HTTPS Port container mapping above
- Target
- SLSKD_HTTPS_PORT
- Default
- 5031
- Value
- 5031
Must match the Soulseek and Mesh TCP Port container mapping above
- Target
- SLSKD_SLSK_LISTEN_PORT
- Default
- 50300
- Value
- 50300
File-creation umask inside the container
- Target
- SLSKD_UMASK
- Default
- 0022
- Value
- 0022
Optional override; normally use the Downloads path mapping above
- Target
- SLSKD_DOWNLOADS_DIR
- Default
- /downloads
- Value
- /downloads
Optional override for incomplete files in the writable App Data mapping
- Target
- SLSKD_INCOMPLETE_DIR
- Default
- /app/incomplete
- Value
- /app/incomplete
Web UI username; change from the default
- Target
- SLSKD_USERNAME
- Default
- slskd
- Value
- slskd
Web UI password; change from the default
- Target
- SLSKD_PASSWORD
- Default
- slskd
- Value
- slskd
Optional Docker startup hardening; set true to enforce restrictive app-data permissions
- Target
- SLSKD_STRICT_APP_DIR_PERMISSIONS
Image runtime setting; leave 0 unless intentionally debugging the process
- Target
- DOTNET_EnableDiagnostics
- Default
- 0
- Value
- 0
Image runtime extraction directory
- Target
- DOTNET_BUNDLE_EXTRACT_BASE_DIR
- Default
- /.net
- Value
- /.net
Image runtime GC setting
- Target
- DOTNET_gcServer
- Default
- 0
- Value
- 0
Image runtime GC setting
- Target
- DOTNET_gcConcurrent
- Default
- 1
- Value
- 1
Image runtime memory limit; change only for advanced tuning
- Target
- DOTNET_GCHeapHardLimit
- Default
- 0x80000000
- Value
- 0x80000000
Image runtime memory tuning
- Target
- DOTNET_GCConserveMemory
- Default
- 9
- Value
- 9
Optional alternate configuration file path; leave blank to use /app/slskd.yml
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional collision behavior for completed downloads: rename or overwrite; leave blank to use image and YAML defaults
Optional chmod-style mode for new completed files and directories on Linux; leave blank to use image and YAML defaults
Optional relative completed-download path template; leave blank to use image and YAML defaults
Optional semicolon-separated literal terms that block outbound downloads; leave blank to use image and YAML defaults
Maximum direct download attempts (1–20); leave blank to use image and YAML defaults
Initial delay between direct download attempts in milliseconds; leave blank to use image and YAML defaults
Legacy partial-file retry alias; SLSKD_DOWNLOAD_RETRY_PARTIAL takes precedence
Maximum delay between direct download attempts in milliseconds; leave blank to use image and YAML defaults
How direct retries handle partial files: resume or overwrite; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional event-record age limit in days; leave blank to use image and YAML defaults
Optional maximum retained event records; leave blank to use image and YAML defaults
Optional age limit for completed files on disk in minutes; leave blank to use image and YAML defaults
Optional age limit for incomplete files on disk in minutes; leave blank to use image and YAML defaults
Optional log age limit in days (minimum 2); leave blank to use image and YAML defaults
Optional completed-search age limit in minutes; leave blank to use image and YAML defaults
Optional age limit for cancelled downloads in minutes; leave blank to use image and YAML defaults
Optional age limit for errored downloads in minutes; leave blank to use image and YAML defaults
Optional age limit for successful downloads in minutes; leave blank to use image and YAML defaults
Optional age limit for removed transfers in minutes; blank retains them using image and YAML defaults
Optional age limit for cancelled uploads in minutes; leave blank to use image and YAML defaults
Optional age limit for errored uploads in minutes; leave blank to use image and YAML defaults
Optional age limit for successful uploads in minutes; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Share the mapped Music Library at /music by default; use semicolons for multiple paths
- Default
- /music
- Value
- /music
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional TCP MTU cap from 1280 to 9000; leave blank for the operating system default
- Target
- SLSKD_SLSK_CONNECTION_MTU
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults
Optional Docker environment override; leave blank to use image and YAML defaults