Files
wiki/Catalogue-Self-Hosted/apps/app-slskd.md
T
2026-06-09 18:40:21 +02:00

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