19_Navidrome
navidrome-navidrome-1
🎧 Your Personal Streaming Service
| Image | deluan/navidrome:latest |
|---|---|
| Version | 0.61.2 |
| Etat | Up |
| Compose project | navidrome |
| Reseau | navidrome_default |
| URL | https://navidrome.juxjux.ovh |
| Source | https://github.com/navidrome/navidrome |
Ports
| Hote | Container | IP |
|---|---|---|
| 4533 | 4533/tcp | 0.0.0.0 |
Volumes
| Source (hote) | Destination | Type | Mode |
|---|---|---|---|
/home/debian/music | /music | bind | rw, :shared |
/home/debian/docker/navidrome/data | /data | bind | rw |
Integration Claude Code — MCP
| Statut MCP | MCP actif |
|---|---|
| Outils (prefix) | mcp__navidrome__ |
| Configuration | Script Python : C:\Users\eliob\.claude\mcp_navidrome.py | Auth : Subsonic API avec hachage MD5 (user + token + sel) |
Outils disponibles
pingget_artistsget_artistget_albumsget_albumget_songget_genresget_random_songsget_playlistsget_playlistcreate_playlistget_starredstarunstarsearchget_now_playing
Ce que nous pouvons faire ensemble
- Parcourir artistes, albums et pistes de la médiathèque musicale
- Rechercher un titre, artiste ou album
- Voir ce qui est en cours de lecture (now playing)
- Gérer les playlists (création, lecture)
- Étoiler/désigner des favoris
- Générer une sélection aléatoire par genre
Scans automatiques
Trois mécanismes automatiques assurent la fraîcheur de la bibliothèque :
| Cron | Script | Type | RĂ´le |
|---|---|---|---|
*/5 * * * * | /home/debian/monitor-rclone.sh | Watchdog | Détecte FUSE mort → restart service + restart container (recovery auto) |
30 4 * * * | /home/debian/navidrome_scan.sh | Quick scan | vfs/refresh + scan quotidien (MAJ des titres existants) |
0 3 * * 1 | /home/debian/navidrome_fullscan.sh | Full scan | vfs/refresh + restart container → full scan hebdomadaire (détecte nouveaux albums/artistes) |
Log commun : /var/log/navidrome_scan.log
Quick scan vs Full scan
Le quick scan (startScan via API Subsonic) ne traverse que les dossiers déjà connus de Navidrome — il ne détecte pas les nouveaux artistes ou albums ajoutés sur kDrive. Seul un full scan indexe les nouveaux dossiers.
Le full scan est déclenché automatiquement au démarrage du container. C'est pourquoi navidrome_fullscan.sh fait un restart container plutôt qu'un simple appel API.
Auth RC sur kdrive-music.service
Depuis rclone 1.74.3, vfs/refresh exige une authentification RC. Le service kdrive-music.service a été mis à jour le 2026-06-24 avec --rc-user=rcadmin --rc-pass=RcMusic2026!.
Commande de refresh manuel :
rclone rc --rc-addr 127.0.0.1:5576 --rc-user=rcadmin --rc-pass=RcMusic2026! vfs/refresh recursive=true
Recovery automatique FUSE — monitor-rclone.sh (2026-06-24)
Le script /home/debian/monitor-rclone.sh (cron */5 * * * *) surveille les 5 mounts rclone et effectue une recovery complète si l'un d'eux est mort.
Fonctionnement
Pour chaque mount (/music, /komga, /livres, /audiobookshelf/audiobooks, /photo) :
timeout 10 ls <mount>— si inaccessible :sudo systemctl restart <service>(kdrive-music, kdrive-komga, kdrive-livres, rclone-audiobooks, rclone-photo)- Attente 5s + vérification que le mount répond
- Restart des containers Docker associés :
/music→navidrome-navidrome-1/komga→komga/livres→Kavita/audiobookshelf/audiobooks→audiobookshelf/photo→Immich-SERVER Immich-MICROSERVICES
Le script est silencieux quand tout va bien — il ne logue que les pannes et recoveries. Log : /home/debian/logs/rclone-monitor.log
Avant cette refactorisation, le script lançait un rclone mount direct (en parallèle des services systemd) et ne redémarrait pas les containers — le FUSE était remonté mais Navidrome gardait l'ancienne référence corrompue.
REX — 2026-06-24 : FUSE mort récurrent
Contexte
Le FUSE /music est mort en cours de journée. Symptôme Navidrome : stat /music: transport endpoint is not connected lors du scan.
Cause
Le service kdrive-music.service peut rester active (running) avec un FUSE mort — le process rclone est vivant mais la connexion noyau FUSE est cassée. Systemd ne détecte pas ce cas et ne redémarre pas le service.
Solution mise en place
Refactorisation de monitor-rclone.sh pour utiliser systemctl restart (au lieu d'un rclone mount direct) et redémarrer les containers Docker après remontage. Le watchdog tourne toutes les 5 minutes — la panne est détectée et corrigée automatiquement sans intervention.
Procédure manuelle si besoin
sudo systemctl restart kdrive-music.service
ls /home/debian/music | head -5
sudo docker restart navidrome-navidrome-1
Puis force-fermer Symfonium et relancer — le token de session Navidrome est invalidé après le restart du container.
REX — 2026-06-24 : nouveaux albums non détectés
Contexte
Les Négresses Vertes (et d'autres albums récemment ajoutés sur kDrive) n'apparaissaient pas dans Navidrome malgré le cron quotidien.
Cause
Double problème :
- Cache VFS 72h :
--dir-cache-time 72hsurkdrive-music.service— les nouveaux dossiers kDrive ne sont pas visibles dans le mount avant expiration ouvfs/refresh. - Quick scan insuffisant : le scan quotidien (
startScanAPI) est un quick scan qui ne traverse que les dossiers déjà connus. Il ne détecte pas de nouveaux artistes.
Solution immédiate
rclone rc --rc-addr 127.0.0.1:5576 --rc-user=rcadmin --rc-pass=RcMusic2026! vfs/refresh recursive=true
sudo docker restart navidrome-navidrome-1
Le restart container déclenche un full scan au démarrage (~20 min pour 16 000 titres). Vérifier avec getScanStatus ("scanning":false = terminé).
Solution pérenne
Full scan hebdomadaire chaque lundi à 3h UTC (navidrome_fullscan.sh) — garantit que tout nouvel album ajouté dans la semaine est indexé au plus tard le lundi matin.
REX — 2026-06-13 : FUSE corrompu / Symfonium inaccessible
Contexte
Après l'incident sécurité rclone du 2026-06-09 (CVE-2026-41179), le service kdrive-music.service a été relancé. Il est resté actif 4 jours sans crash apparent, mais le mount FUSE /home/debian/music était silencieusement corrompu.
SymptĂ´mes
- Symfonium (Subsonic) : erreur "trop d'erreurs, arrĂŞt de lecture" sur tous les appareils portables
- Logs Navidrome :
transport endpoint is not connectedsur tous les fichiers audio systemctl status kdrive-music.service: active (running) depuis 3 jours — aucune indication du problème
Cause
Le process rclone était vivant mais la connexion noyau FUSE était morte. Pas de crash = pas de restart automatique par systemd.
Procédure de résolution
- Redémarrer le service rclone :
sudo systemctl restart kdrive-music.service - Vérifier que le mount répond :
ls /home/debian/music | head -5 - Redémarrer le container Navidrome — nécessaire même avec
:shared, car le container garde l'ancienne référence FUSE corrompue - Sur les appareils : force-fermer Symfonium et relancer
Notes
- La propagation
:sharedne suffit pas à propager un nouveau mount FUSE à un container déjà démarré — le container doit être redémarré. - Attention spool /tmp : un restart du service rclone peut créer un fichier
/tmp/rclone-spool*de plusieurs Go si des fichiers cachés sont marqués "dirty". Préférervfs/refresh(avec auth RC) au restart quand le FUSE n'est pas corrompu.