Skip to main content

19_Navidrome

navidrome-navidrome-1

🎧 Your Personal Streaming Service

Imagedeluan/navidrome:latest
Version0.61.2
EtatUp
Compose projectnavidrome
Reseaunavidrome_default
URLhttps://navidrome.juxjux.ovh
Sourcehttps://github.com/navidrome/navidrome

Ports

HoteContainerIP
45334533/tcp0.0.0.0

Volumes

Source (hote)DestinationTypeMode
/home/debian/music/musicbindrw, :shared
/home/debian/docker/navidrome/data/databindrw

Integration Claude Code — MCP

Statut MCPMCP actif
Outils (prefix)mcp__navidrome__
ConfigurationScript Python : C:\Users\eliob\.claude\mcp_navidrome.py | Auth : Subsonic API avec hachage MD5 (user + token + sel)

Outils disponibles

  • ping
  • get_artists
  • get_artist
  • get_albums
  • get_album
  • get_song
  • get_genres
  • get_random_songs
  • get_playlists
  • get_playlist
  • create_playlist
  • get_starred
  • star
  • unstar
  • search
  • get_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

ScanScans quotidien automatique — 2026-06-24automatiques

UnTrois cronmécanismes tourneautomatiques chaqueassurent nuitla àfraîcheur 04h30de UTCla pourbibliothèque rafraîchir le cache kDrive et déclencher un scan Navidrome.:

CronScriptTypeRĂ´le

*/5 * * * */home/debian/monitor-rclone.shWatchdogDétecte FUSE mort → restart service + restart container (recovery auto) 30 4 * * */home/debian/navidrome_scan.shQuick —scanvfs/refresh log+ scan quotidien (MAJ des titres existants) 0 3 * * 1/home/debian/navidrome_fullscan.shFull scanvfs/refresh + restart container → full scan hebdomadaire (détecte nouveaux albums/artistes)

Log commun : /var/log/navidrome_scan.log

30 4 * * * bash /home/debian/navidrome_scan.sh

Fonctionnement

    vfs/refresh recursive sur le mount /home/debian/music (port RC 5576) — force la mise à jour du listing kDrive sans redémarrer le service rclone Lancement duQuick scan Navidromevs Full scan

    Le quick scan (startScan via l'API SubsonicSubsonic) : GET /rest/startScan

    Ce script ne redémarre pas le service rclone ni le container Navidrome : le vfs/refresh suffit pourtraverse que les dossiers déjà connus de Navidrome — il ne détecte pas les nouveaux artistes ou albums kDriveajoutés deviennentsur accessibles.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 pour inclureavec --rc-user=rcadmin --rc-pass=RcMusic2026!, ce qui permet d'utiliser vfs/refresh depuis rclone 1.74.3 (qui exige une auth RC).

    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 : albumsFUSE kDrivemort non visibles dans Navidromerécurrent

        Contexte

        DeLe nouveauxFUSE albums/music ajoutésest surmort kDriveen n'apparaissaientcours pasde dansjournée. Navidrome.Symptôme Navidrome : stat /music: transport endpoint is not connected lors du scan.

        Cause

        Le service kdrive-music.service étaitpeut actifrester active (running) avec un FUSE mort — le process rclone est vivant mais lela cacheconnexion VFSnoyau (dir-cache-timeFUSE 72h)est n'avaitcassée. Systemd ne détecte pas encorece expiré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 dossiers.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

        AvecDouble problème :

          Cache VFS 72h : --dir-cache-time 72h, rclonesur metkdrive-music.service en— cacheles nouveaux dossiers kDrive ne sont pas visibles dans le listingmount desavant répertoiresexpiration pendantou 72h.vfs/refresh. ToutQuick nouveauscan dossierinsuffisant ajouté: surle kDrivescan quotidien (startScan API) est invisible jusqu'à l'expiration du cache ou un refreshquick explicite.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
          curlsudo "https://navidrome.juxjux.ovh/rest/startScan?u=julien&p=Motdepasse18!&v=1.16.0&c=claude&f=json"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 cronscan quotidienhebdomadaire chaque lundi à 3h UTC (navidrome_scan.navidrome_fullscan.sh) (cf.— sectiongarantit ci-dessus).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 connected sur 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

          1. Redémarrer le service rclone : sudo systemctl restart kdrive-music.service
          2. Vérifier que le mount répond : ls /home/debian/music | head -5
          3. Redémarrer le container Navidrome — nécessaire même avec :shared, car le container garde l'ancienne référence FUSE corrompue
          4. Sur les appareils : force-fermer Symfonium et relancer

          Notes

          • La propagation :shared ne 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 avec --vfs-cache-mode full peut crĂ©er un fichier /tmp/rclone-spool* de plusieurs Go si des fichiers cachĂ©s sont marquĂ©s "dirty". PrĂ©fĂ©rer vfs/refresh (avec auth RC) au restart quand le FUSE n'est pas corrompu.