111 lines
6.0 KiB
Markdown
111 lines
6.0 KiB
Markdown
---
|
|
title: slskd
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, downloads, p2p, soulseek, music, headless, csharp, dotnet]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=downloads, https://github.com/slskd/slskd]
|
|
---
|
|
|
|
# 🎧 slskd
|
|
|
|
> Client **Soulseek** moderne, **headless**, avec interface web. Permet de faire tourner un client Soulseek sur un serveur sans interface graphique pour **partager et télécharger de la musique (et ebooks) en P2P**, comme si vous aviez un client Nicotine+ ouvert 24/7.
|
|
|
|
| Métadonnée | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [https://slskd.com](https://slskd.com) |
|
|
| **GitHub** | [https://github.com/slskd/slskd](https://github.com/slskd/slskd) |
|
|
| **License** | AGPL-3.0 |
|
|
| **Langage** | C# (.NET 8) |
|
|
| **Étoiles** | 147 ⭐ |
|
|
| **Dernière MAJ** | 2025-12 |
|
|
| **Catégorie** | [[cat-downloads\|Downloads]] |
|
|
|
|
## Description
|
|
|
|
**Soulseek** est l'un des derniers réseaux P2P **spécialisés musique** encore très actifs : on y trouve de la musique rare, des DJ sets, des enregistrements live, des éditions introuvables, et parfois des ebooks / bandes-son de jeux. Le client de référence historique est **Nicotine+** (Python/Qt), **graphique uniquement** — ce qui pose problème pour un serveur headless.
|
|
|
|
**slskd** résout ce problème en étant un **client Soulseek complet côté serveur**, écrit en **C# / .NET 8**, qui parle le protocole natif Soulseek et expose **toute l'UI dans une interface web moderne** (Blazor). On peut ainsi faire tourner un peer Soulseek sur un NAS, un NUC, ou un VPS, et y accéder depuis n'importe où via navigateur. La découverte de fichiers se fait par **recherche par mots-clés**, **navigation par utilisateur** (drag-and-drop depuis la liste d'users), et **partage de dossiers locaux** (téléversement vers les peers qui les demandent, comme Soulseek classique).
|
|
|
|
Fonctionnalités clés : **transfers** (download/upload) avec file d'attente persistante, **recherche** avec auto-complete, **browse** de la bibliothèque distante d'un user, **chats 1:1 et rooms** (essentiel sur Soulseek), **téléchargements partagés** (mécanisme de "wishlist" : on déclare un fichier, slskd intercepte le prochain peer qui le partage et le télécharge automatiquement), **intégration Lidarr/Beets** possible, et **API HTTP** pour scripter.
|
|
|
|
**Points forts** : interface web réactive, support multi-utilisateurs, **AGPL-3.0** (sécurité juridique), intégration *arr possible.
|
|
|
|
**Points faibles** : pas d'app mobile native, Soulseek reste un réseau "niche" (communauté bienveillante mais petite), le réseau n'est pas chiffré de bout en bout (voir sécurité).
|
|
|
|
## Installation
|
|
|
|
### Via Docker (recommandé)
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
services:
|
|
slskd:
|
|
image: slskd/slskd:latest
|
|
container_name: slskd
|
|
restart: unless-stopped
|
|
environment:
|
|
- TZ=Europe/Paris
|
|
- SLSKD_REMOTE_CONFIGURATION=true
|
|
- SLSKD_HTTP__PORT=5030
|
|
volumes:
|
|
- ./config:/app
|
|
- /mnt/media/music/incoming:/downloads
|
|
- /mnt/media/music/shared:/shared # dossier partagé Soulseek
|
|
ports:
|
|
- "5030:5030" # UI web
|
|
- "50000:50000" # port d'écoute Soulseek
|
|
```
|
|
|
|
### Installation manuelle
|
|
|
|
.NET 8 SDK. Cloner, `dotnet publish -c Release`, exécuter le binaire en service systemd. Configuration par fichier `slskd.yml` ou via variables d'environnement `SLSKD__SECTION__KEY`.
|
|
|
|
## Configuration
|
|
|
|
1. Définir un **username Soulseek** unique (le réseau n'aime pas les doublons).
|
|
2. **Dossier partagé** : pointer `./shared` vers le dossier que vous voulez exposer aux autres peers (typiquement votre bibliothèque musicale).
|
|
3. **Dossier d'incoming** : `./downloads` → les fichiers reçus y atterrissent. À lier à Lidarr ou Beets pour tagging automatique.
|
|
4. **Recherche partagée** ("shared searches") : déclarez un pattern (ex. `*.flac` pour un album précis) — slskd surveille le réseau et télécharge dès qu'un peer le partage.
|
|
5. **Authentification web** : compte admin + optionnellement multi-utilisateurs avec quotas.
|
|
6. **Reverse proxy** : `slskd.example.com` avec Authelia, et **redirection de port 50000** sur la box (NAT/PAT) — sinon vous apparaîtrez en "firewalled" et serez ignoré par beaucoup de peers.
|
|
|
|
## Alternatives
|
|
|
|
### Open source
|
|
- **Nicotine+** — le client historique, **graphique uniquement** (GTK/Qt), pas headless
|
|
- **Museek+ / Nicotine-Plus** — autres forks
|
|
- **Seeker** — Rust, embryonnaire
|
|
- [[app-jellyfin]] + [[app-lidarr]] — pour gérer la bibliothèque une fois reçue
|
|
- [[app-beets]] — pour tagger automatiquement la musique téléchargée
|
|
|
|
### Propriétaires
|
|
- **Soulseek officiel** — pas de client "serveur", obligation d'un poste allumé
|
|
- **Spotify / Tidal** — vastes catalogues mais pas de niche, pas de raretés, pas de DJ sets live
|
|
- **Bandcamp** — modèle d'achat direct, complémentaire
|
|
|
|
## Sécurité
|
|
|
|
- ⚠️ **Réseau Soulseek non chiffré de bout en bout** : les requêtes de recherche et le contenu transitent en clair. Ne pas partager de fichiers sensibles via le dossier partagé.
|
|
- ⚠️ **Username** : ne pas réutiliser un identifiant réel. Soulseek est en P2P ouvert, votre IP est visible par les peers.
|
|
- ⚠️ **Reverse proxy + auth obligatoire** si exposition Internet.
|
|
- ✅ **Isolation réseau** : faire tourner slskd sur un VLAN ou derrière un VPN (Tailscale) est une bonne pratique.
|
|
- ⚠️ **Contenu** : le respect du droit d'auteur reste de votre responsabilité — slskd n'est qu'un outil.
|
|
- ✅ **Sauvegardes** : `./config` (comptes, wishlists) est petit, à inclure.
|
|
|
|
## Ressources
|
|
- [Site officiel](https://slskd.com)
|
|
- [Documentation](https://github.com/slskd/slskd/wiki)
|
|
- [Reddit r/Soulseek](https://www.reddit.com/r/Soulseek/)
|
|
- [selfh.st — Downloads](https://selfh.st/apps/?tag=downloads)
|
|
|
|
## Pages Liées
|
|
- [[cat-downloads]] — Catégorie parente
|
|
- [[app-lidarr]] — Tagging musique (réception)
|
|
- [[app-navidrome]] — Streaming de la bibliothèque
|
|
- [[app-jellyfin]] — Media server audio/vidéo
|
|
- [[recettes-docker-compose]] — Templates Docker
|
|
- [[securisation-home-lab]] — Bonnes pratiques
|