slskdn

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.

slskdN

A web interface and daemon for Soulseek file sharing

Releases · Issues · Community

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

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

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

Internet access is required for the Soulseek network. Forward the Soulseek port for best connectivity.

Download Statistics

6,158
Total Downloads

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/snapetech/slskdn:latest
Last Updated2026-09-07
First Seen2026-08-03

Runtime arguments

Web UI
http://[IP]:[PORT:5030]/
Network
bridge
Shell
bash
Privileged
false
Extra Params
--restart=unless-stopped

Template configuration

Web UI PortPorttcp

Port for the web interface

Target
5030
Default
5030
Value
5030
HTTPS PortPorttcp

Port for HTTPS (uses self-signed cert)

Target
5031
Default
5031
Value
5031
Soulseek and Mesh TCP PortPorttcp

Port for incoming Soulseek and slskdN mesh TCP connections (must be forwarded in router)

Target
50300
Default
50300
Value
50300
DHT, Mesh, and QUIC UDP PortPortudp

Optional UDP port shared by public DHT, mesh overlay, and QUIC control/data traffic

Target
50300
Default
50300
Value
50300
App DataPathrw

Application data, config, and databases

Target
/app
Default
/mnt/user/appdata/slskdn
Value
/mnt/user/appdata/slskdn
DownloadsPathrw

Choose the Unraid share and directory where downloaded files are saved

Target
/downloads
Music LibraryPathro

Optional read-only Unraid share containing the music you want to share

Target
/music
PUIDVariable

User ID for file permissions (run 'id' in terminal)

Default
1000
Value
1000
PGIDVariable

Group ID for file permissions (run 'id' in terminal)

Default
1000
Value
1000
TimezoneVariable

Your timezone (e.g., America/New_York, Europe/London)

Target
TZ
Default
America/Chicago
Value
America/Chicago
Soulseek UsernameVariable

Your Soulseek username (or set in web UI)

Target
SLSKD_SLSK_USERNAME
Soulseek PasswordVariable

Your Soulseek password (or set in web UI)

Target
SLSKD_SLSK_PASSWORD
Application Directory OverrideVariable

Container application-data directory; keep /app with the App Data mapping above

Target
SLSKD_APP_DIR
Default
/app
Value
/app
HTTP Listen AddressVariable

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
HTTP Port Environment OverrideVariable

Must match the Web UI Port container mapping above

Target
SLSKD_HTTP_PORT
Default
5030
Value
5030
HTTPS Port Environment OverrideVariable

Must match the HTTPS Port container mapping above

Target
SLSKD_HTTPS_PORT
Default
5031
Value
5031
Soulseek Port Environment OverrideVariable

Must match the Soulseek and Mesh TCP Port container mapping above

Target
SLSKD_SLSK_LISTEN_PORT
Default
50300
Value
50300
UmaskVariable

File-creation umask inside the container

Target
SLSKD_UMASK
Default
0022
Value
0022
Downloads Directory OverrideVariable

Optional override; normally use the Downloads path mapping above

Target
SLSKD_DOWNLOADS_DIR
Default
/downloads
Value
/downloads
Incomplete Directory OverrideVariable

Optional override for incomplete files in the writable App Data mapping

Target
SLSKD_INCOMPLETE_DIR
Default
/app/incomplete
Value
/app/incomplete
Web UI UsernameVariable

Web UI username; change from the default

Target
SLSKD_USERNAME
Default
slskd
Value
slskd
Web UI PasswordVariable

Web UI password; change from the default

Target
SLSKD_PASSWORD
Default
slskd
Value
slskd
Strict App Data PermissionsVariable

Optional Docker startup hardening; set true to enforce restrictive app-data permissions

Target
SLSKD_STRICT_APP_DIR_PERMISSIONS
DOTNET Enable DiagnosticsVariable

Image runtime setting; leave 0 unless intentionally debugging the process

Target
DOTNET_EnableDiagnostics
Default
0
Value
0
DOTNET Bundle Extract DirectoryVariable

Image runtime extraction directory

Target
DOTNET_BUNDLE_EXTRACT_BASE_DIR
Default
/.net
Value
/.net
DOTNET Server GCVariable

Image runtime GC setting

Target
DOTNET_gcServer
Default
0
Value
0
DOTNET Concurrent GCVariable

Image runtime GC setting

Target
DOTNET_gcConcurrent
Default
1
Value
1
DOTNET GC Heap Hard LimitVariable

Image runtime memory limit; change only for advanced tuning

Target
DOTNET_GCHeapHardLimit
Default
0x80000000
Value
0x80000000
DOTNET GC Conserve MemoryVariable

Image runtime memory tuning

Target
DOTNET_GCConserveMemory
Default
9
Value
9
SLSKD_CONFIGVariable

Optional alternate configuration file path; leave blank to use /app/slskd.yml

SLSKD_BLACKLISTVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_BLACKLIST_FILEVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_CASE_SENSITIVE_REGEXVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_CONTENT_PATHVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_CONTROLLER_ADDRESSVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_CONTROLLER_API_KEYVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_CONTROLLER_DOWNLOADSVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_CONTROLLER_IGNORE_CERTIFICATE_ERRORSVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_CONTROLLER_SECRETVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_DEBUGVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_DISK_LOGGERVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_DOWNLOAD_COMPLETED_LAYOUTVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_DOWNLOAD_COMPLETED_PATH_TEMPLATEVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_DOWNLOAD_DESTINATION_EXISTSVariable

Optional collision behavior for completed downloads: rename or overwrite; leave blank to use image and YAML defaults

SLSKD_DOWNLOAD_DESTINATION_PERMISSIONS_MODEVariable

Optional chmod-style mode for new completed files and directories on Linux; leave blank to use image and YAML defaults

SLSKD_DOWNLOAD_DESTINATION_SUBDIRECTORYVariable

Optional relative completed-download path template; leave blank to use image and YAML defaults

SLSKD_DOWNLOAD_FILTER_EXCLUDEVariable

Optional semicolon-separated literal terms that block outbound downloads; leave blank to use image and YAML defaults

SLSKD_DOWNLOAD_RETRY_ATTEMPTSVariable

Maximum direct download attempts (1–20); leave blank to use image and YAML defaults

SLSKD_DOWNLOAD_RETRY_DELAYVariable

Initial delay between direct download attempts in milliseconds; leave blank to use image and YAML defaults

SLSKD_DOWNLOAD_RETRY_INCOMPLETEVariable

Legacy partial-file retry alias; SLSKD_DOWNLOAD_RETRY_PARTIAL takes precedence

SLSKD_DOWNLOAD_RETRY_MAX_DELAYVariable

Maximum delay between direct download attempts in milliseconds; leave blank to use image and YAML defaults

SLSKD_DOWNLOAD_RETRY_PARTIALVariable

How direct retries handle partial files: resume or overwrite; leave blank to use image and YAML defaults

SLSKD_DOWNLOAD_SLOTSVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_DOWNLOAD_SPEED_LIMITVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_EXPERIMENTALVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_FILE_PERMISSION_MODEVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_FORCE_MIGRATIONSVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_FORCE_SHARE_SCANVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_FTPVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_FTP_ADDRESSVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_FTP_CONNECTION_TIMEOUTVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_FTP_ENCRYPTION_MODEVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_FTP_IGNORE_CERTIFICATE_ERRORSVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_FTP_OVERWRITE_EXISTINGVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_FTP_PASSWORDVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_FTP_PORTVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_FTP_REMOTE_PATHVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_FTP_RETRY_ATTEMPTSVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_FTP_USERNAMEVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_HEADLESSVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_HTTPS_CERT_PASSWORDVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_HTTPS_CERT_PFXVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_HTTPS_FORCEVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_HTTP_LOGGINGVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_HTTP_SOCKETVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_INSTANCE_NAMEVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_JWT_KEYVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_JWT_TTLVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_LEGACY_WINDOWS_TCP_KEEPALIVEVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_LOG_SQLVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_LOG_UNOBSERVED_EXCEPTIONSVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_LOKIVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_METRICSVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_METRICS_NO_AUTHVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_METRICS_PASSWORDVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_METRICS_URLVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_METRICS_USERNAMEVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_NO_AUTHVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_NO_COLORVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_NO_CONFIG_WATCHVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_NO_CONNECTVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_NO_HTTPSVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_NO_LOGOVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_NO_SHARE_SCANVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_NO_STARTVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_NO_VERSION_CHECKVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_PUSHBULLETVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_PUSHBULLET_COOLDOWN_TIMEVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_PUSHBULLET_NOTIFY_ON_PRIVATE_MESSAGEVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_PUSHBULLET_NOTIFY_ON_ROOM_MENTIONVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_PUSHBULLET_NOTIFICATION_PREFIXVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_PUSHBULLET_RETRY_ATTEMPTSVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_PUSHBULLET_ACCESS_TOKENVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_RELAYVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_RELAY_MODEVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_REMOTE_CONFIGURATIONVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_REMOTE_FILE_MANAGEMENTVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_RETENTION_EVENTSVariable

Optional event-record age limit in days; leave blank to use image and YAML defaults

SLSKD_RETENTION_EVENTS_MAX_COUNTVariable

Optional maximum retained event records; leave blank to use image and YAML defaults

SLSKD_RETENTION_FILES_COMPLETEVariable

Optional age limit for completed files on disk in minutes; leave blank to use image and YAML defaults

SLSKD_RETENTION_FILES_INCOMPLETEVariable

Optional age limit for incomplete files on disk in minutes; leave blank to use image and YAML defaults

SLSKD_RETENTION_LOGSVariable

Optional log age limit in days (minimum 2); leave blank to use image and YAML defaults

SLSKD_RETENTION_SEARCHVariable

Optional completed-search age limit in minutes; leave blank to use image and YAML defaults

SLSKD_RETENTION_TRANSFERS_DOWNLOAD_CANCELLEDVariable

Optional age limit for cancelled downloads in minutes; leave blank to use image and YAML defaults

SLSKD_RETENTION_TRANSFERS_DOWNLOAD_ERROREDVariable

Optional age limit for errored downloads in minutes; leave blank to use image and YAML defaults

SLSKD_RETENTION_TRANSFERS_DOWNLOAD_SUCCEEDEDVariable

Optional age limit for successful downloads in minutes; leave blank to use image and YAML defaults

SLSKD_RETENTION_TRANSFERS_REMOVEDVariable

Optional age limit for removed transfers in minutes; blank retains them using image and YAML defaults

SLSKD_RETENTION_TRANSFERS_UPLOAD_CANCELLEDVariable

Optional age limit for cancelled uploads in minutes; leave blank to use image and YAML defaults

SLSKD_RETENTION_TRANSFERS_UPLOAD_ERROREDVariable

Optional age limit for errored uploads in minutes; leave blank to use image and YAML defaults

SLSKD_RETENTION_TRANSFERS_UPLOAD_SUCCEEDEDVariable

Optional age limit for successful uploads in minutes; leave blank to use image and YAML defaults

SLSKD_ROOMSVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SEARCH_REQUEST_FILTERVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SHARED_DIRVariable

Share the mapped Music Library at /music by default; use semicolons for multiple paths

Default
/music
Value
/music
SLSKD_SHARES_PROBE_MEDIA_ATTRIBUTESVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SHARE_CACHE_RETENTIONVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SHARE_CACHE_STORAGE_MODEVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SHARE_CACHE_WORKERSVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SHARE_FILTERVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SLSK_ADDRESSVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SLSK_CONNECTION_TIMEOUTVariable

Optional Docker environment override; leave blank to use image and YAML defaults

Soulseek Server Connection MTUVariable

Optional TCP MTU cap from 1280 to 9000; leave blank for the operating system default

Target
SLSKD_SLSK_CONNECTION_MTU
SLSKD_SLSK_DESCRIPTIONVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SLSK_DIAG_LEVELVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SLSK_DNET_CHILDRENVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SLSK_DNET_LOGGINGVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SLSK_DNET_NO_CHILDRENVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SLSK_HATED_INTERESTSVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SLSK_INACTIVITY_TIMEOUTVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SLSK_LIKED_INTERESTSVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SLSK_LISTEN_IP_ADDRESSVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SLSK_NO_DNETVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SLSK_OBFUSCATIONVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SLSK_OBFUSCATION_ADVERTISE_REGULAR_PORTVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SLSK_OBFUSCATION_LISTEN_PORTVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SLSK_OBFUSCATION_MODEVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SLSK_OBFUSCATION_PREFER_OUTBOUNDVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SLSK_PICTUREVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SLSK_PORTVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SLSK_PROXY_ENABLEDVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SLSK_PROXY_ADDRESSVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SLSK_PROXY_PASSWORDVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SLSK_PROXY_PORTVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SLSK_PROXY_USERNAMEVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SLSK_READ_BUFFERVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SLSK_TRANSFER_BUFFERVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SLSK_TRANSFER_TIMEOUTVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SLSK_WRITE_BUFFERVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SLSK_WRITE_QUEUEVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_SWAGGERVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_UPLOAD_SLOTSVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_UPLOAD_SPEED_LIMITVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_URL_BASEVariable

Optional Docker environment override; leave blank to use image and YAML defaults

SLSKD_VOLATILEVariable

Optional Docker environment override; leave blank to use image and YAML defaults