Overview
Discover what makes slskd powerful
slskd is a modern, daemon‑oriented implementation of the Soulseek peer‑to‑peer network that exposes a web‑based UI and a robust API for developers. It bridges the classic Soulseek protocol with contemporary HTTP/HTTPS interfaces, allowing self‑hosted deployments that can be exposed to the Internet or integrated into existing service stacks. The application accepts incoming Soulseek connections on a dedicated TCP port (default 50300) while serving web traffic over ports 5030 (HTTP) and 5031 (HTTPS). Its design prioritizes secure, token‑based authentication that can be managed through environment variables or a configuration file, making it compatible with reverse proxies and container orchestrators.
Language & Runtime
Protocol Handling
Web Interface
Persistence
Overview
slskd is a modern, daemon‑oriented implementation of the Soulseek peer‑to‑peer network that exposes a web‑based UI and a robust API for developers. It bridges the classic Soulseek protocol with contemporary HTTP/HTTPS interfaces, allowing self‑hosted deployments that can be exposed to the Internet or integrated into existing service stacks. The application accepts incoming Soulseek connections on a dedicated TCP port (default 50300) while serving web traffic over ports 5030 (HTTP) and 5031 (HTTPS). Its design prioritizes secure, token‑based authentication that can be managed through environment variables or a configuration file, making it compatible with reverse proxies and container orchestrators.
Technical Stack
- Language & Runtime: Written in Go, slskd benefits from the language’s native concurrency model and static binaries, which simplify deployment across Linux, macOS, and Windows.
- Protocol Handling: Implements the Soulseek protocol at the transport layer using Go’s
netpackage, with optional TLS support for secure inbound connections. - Web Interface: Built on the Gin framework (or a minimal HTTP router), providing RESTful endpoints for search, download control, chat, and user share browsing. The UI is a single‑page application that consumes these endpoints via WebSocket for real‑time updates.
- Persistence: Uses SQLite as the default embedded database to store user preferences, download queues, and chat history. The schema is lightweight yet extensible, and the database file can be mounted into a Docker volume for data durability.
- Containerization: Official Docker images are available on Docker Hub, with multi‑stage builds that strip debugging symbols for a minimal runtime image. The container exposes the three core ports and accepts configuration through environment variables or mounted config files.
Core Capabilities
- Search & Filtering: Exposes a
/searchendpoint that accepts query strings, user filters, and advanced search flags. Results are paginated and can be sorted by file size, user rating, or share count. - Download Management: The
/downloadsAPI supports enqueueing, pausing, resuming, and canceling transfers. Real‑time progress is pushed via Server‑Sent Events or WebSocket, allowing front‑end dashboards to display per‑user and per‑folder queues. - Chat & Rooms: Provides
/chatendpoints for private messaging and room participation, mirroring the functionality of the official client. WebSocket streams deliver message events in near real‑time. - User Share Browsing: The
/users/:id/sharesendpoint lists a target user’s shared files, supporting pagination and keyword filtering. - Configuration API: A
/configendpoint allows runtime updates to authentication tokens, port settings, and feature flags without restarting the daemon.
Deployment & Infrastructure
slskd is designed for both single‑node and clustered deployments. Because the core protocol state (active connections, download queues) is stored in SQLite, scaling horizontally requires a shared storage layer or a custom state replication mechanism. For most use cases, a single Docker instance suffices; however, advanced users can orchestrate multiple instances behind a load balancer and synchronize state via an external database or message queue. The application’s lightweight footprint (≈ 30 MB binary) and stateless HTTP layer make it suitable for edge nodes, cloud VMs, or Kubernetes pods.
Integration & Extensibility
- Plugin System: slskd exposes a hook mechanism that allows third‑party Go modules to intercept events such as incoming connections, search requests, or download completions. Plugins are loaded at startup from a designated directory, enabling custom authentication back‑ends or analytics pipelines.
- Webhooks: Developers can register HTTP callbacks for events like
download_started,download_completed, oruser_joined. This facilitates integration with CI/CD pipelines, monitoring dashboards, or external notification services. - API Client Libraries: Community projects provide idiomatic clients in Python, JavaScript, and Go, simplifying programmatic interaction with slskd’s REST endpoints.
Developer Experience
The project maintains a comprehensive docs/ directory that covers configuration, reverse‑proxy setup, and API usage. Continuous integration builds on GitHub Actions ensure that every pull request passes a full test suite, and the community is active on Discord and Matrix for rapid support. Licensing under Apache 2.0 allows commercial use without attribution constraints, which is attractive for enterprise deployments.
Use Cases
- Self‑Hosted File Distribution: Companies can host slskd to provide secure, high‑bandwidth file sharing for internal teams without relying on cloud storage.
- Content Delivery Networks: By exposing slskd behind a CDN edge, developers can leverage Soulseek’s distributed nature for resilient media distribution.
- Research & Analysis: The API and webhook hooks enable data collection on network traffic patterns, useful for academic studies of P2P networks.
- Custom Chat Platforms: Integrating slskd’s chat rooms into existing collaboration tools offers a lightweight, decentralized messaging layer.
Advantages
slskd delivers the performance and low‑latency of native Soulseek clients while adding a modern, developer‑friendly API surface. Its Go implementation ensures minimal resource usage and fast startup times, making it ideal for containerized environments. The open‑
Open SourceReady to get started?
Join the community and start self-hosting slskd today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps

Send
Self-hosted other
Twake Workplace
Secure, collaborative cloud platform for modern teams
Radarr
Automated movie collection manager for Usenet and BitTorrent
HedgeDoc
Collaborative real‑time markdown editor
REDAXO
Modular CMS for flexible web content management
goploader
Secure, terminal‑friendly file sharing in Go
