Navidrome : un seul executable suffit a lancer un serveur musical, la collection repond de partout
Résumé
Navidrome est ecrit en Go et publie sous GPL v3. Il ouvre une interface Subsonic pour que cent deux clients existants s y connectent, ajoute transcodage, plusieurs bibliotheques et greffons, et la version courante est 0.64.2.
Recommander- Nom
- Navidrome
- Version
- 0.64.2
- Tarif
- Gratuit
- Open source
- Open source
- Système
- WindowsLinuxmacOS
- Mis à jour
- 2026-10-21 12:39
Navidrome est un serveur musical ecrit en Go : un dossier d audio sur un disque devient une bibliotheque privee joignable de partout. Il ne livre pas de client pour telephone ; il ouvre une interface selon le protocole Subsonic et laisse les lecteurs existants s y brancher.
Un processus, deux dossiers
La forme d un deploiement est simple. Le site publie des executables compiles par plateforme, Linux, Windows, macOS et cartes ARM compris, plus une image de conteneur officielle couvrant x86 et ARM en v6, v7 et v8. Pour tourner il demande deux endroits, un pour la base et le cache, un qui pointe vers le dossier de musique, et il occupe le port 4533.
La seule dependance externe dure est ffmpeg, qui fait le transcodage. La configuration a trois entrees : variables d environnement, options de ligne de commande et un fichier toml ; quand les deux sont poses, l environnement gagne, et en conteneur le programme cherche ce toml tout seul dans le dossier de donnees.

Un passage sur le dossier et la bibliotheque existe
Le premier demarrage construit la bibliotheque et parcourt le dossier de musique. Le site donne des durees precises, et ensuite un planning de parcours peut etre pose pour repasser a intervalle fixe.
Taille de la bibliotheque | Premier parcours |
|---|---|
Moins de 1 000 titres | En moins d une minute |
1 000 a 10 000 | Une a cinq minutes |
10 000 a 50 000 | Cinq a quinze minutes |
Plus de 50 000 | A partir de quinze minutes |
La bibliotheque se construit sur les etiquettes, pas sur les dossiers. La FAQ le dit nettement : un mode de parcours par dossier serait techniquement possible mais demanderait de remuer l interieur de la plupart des pieces, et le produit a fixe sa direction sur les etiquettes des le premier jour. Les titres tombent dans des albums et les albums pendent aux artistes uniquement par les etiquettes dans les fichiers ; des etiquettes mal ecrites donnent une interface en desordre. Le site indique que le scanner a ete eprouve sur une bibliotheque d environ neuf cent mille titres, deux tiers en FLAC, et que cette taille tourne encore sur une carte Raspberry.
Le protocole est la porte, les clients sont l affaire des autres
Il porte son propre lecteur web, mais ce qui le tient vraiment est la fidelite au protocole. La documentation annonce un alignement sur Subsonic API 1.16.1, avec quelques interfaces differentes, et les extensions OpenSubsonic sont completees regulierement. Les manques sont publics aussi : rien autour de la video ; pas de parcours par dossier, une demande d index renvoie un arbre simule ; une demande de lecture seule ne compte pas comme ecoute, seul un rapport du client le fait.
Une fois le protocole en place, les clients n ont pas a etre ecrits. Le repertoire du site liste cent deux applications, pour Android, iOS, bureau, web et boitiers de television, et tout ce qui porte la marque Subsonic ou OpenSubsonic se connecte.

Plusieurs bibliotheques, droits et separation
Plusieurs bibliotheques musicales existent depuis 0.58.0. Le demarrage cree une bibliotheque par defaut a partir du dossier configure, et les utilisateurs deja presents heritent du droit ; les administrateurs voient toutes les bibliotheques, les autres recoivent un accord une par une et basculent par un selecteur. Un album n appartient qu a une bibliotheque, un artiste peut en couvrir plusieurs et les chiffres s agregent sur l ensemble ; une liste de lecture peut meler des bibliotheques a condition d avoir le droit sur chacune. Separer la musique des livres audio, ou donner a chacun dans la maison sa collection, devient une question de reglage.
Transcodage, cache et partage
La lecture peut transcoder. Le serveur amene un fichier a un debit convenable dans la forme demandee par le lecteur et envoie cela, ce qui epargne reseau et calcul ; le resultat tombe dans un cache avec un plafond reglable. Le partage est l autre voie : tout utilisateur peut produire un lien pour un titre, un album, un artiste ou une liste, des gens sans compte peuvent ecouter, et le lien expire apres un an par defaut, la duree etant reglable ou la fonction coupable entierement.
Listes intelligentes et historique d ecoute
Les listes intelligentes sont encore a l essai : les regles s ecrivent en JSON et se posent dans le dossier de la bibliotheque en fichier nsp. Les regles portent champs, operateurs, tri et plafond de nombre : les trente derniers jours ecoutes, les cent premiers ; des annees quatre-vingt notees au dessus de trois etoiles, les plus recentes d abord, vingt-cinq. Des conditions de temps relatif avec un plafond en pourcentage donnent une liste du jour qui tourne.
La meme syntaxe sert ailleurs. Depuis 0.64.0 chaque utilisateur peut poser une regle de filtre qui tient certains titres hors de son historique, bloquer la musique de fetes par exemple, ou ne laisser que les titres a quatre etoiles nourrir les recommandations ; les titres bloques comptent encore comme lectures locales, l historique ne perd pas de morceau.
Greffons et interface Jellyfin
Les greffons tournent dans un bac a sable WebAssembly et declarent d abord les capacites qu ils offrent : chercher des biographies et des pochettes, envoyer l historique ailleurs, faire tourner des taches planifiees, repondre aux evenements de lecture. L installation consiste a poser le fichier dans le dossier des greffons, puis a l activer dans l interface et a lui donner des droits. Par defaut un greffon n a pas de reseau, et joindre un service du reseau local demande d ecrire la plage d adresses dans le manifeste.
0.64.0 a aussi ouvert une interface Jellyfin experimentale, fermee par defaut. Une fois ouverte, le serveur repond aux clients musicaux de la famille Jellyfin sur un chemin separe, la connexion se fait avec le compte et le mot de passe de la machine, et chaque appareil apparait comme lecteur dans les reglages. La decouverte automatique sur le reseau local passe par UDP 7359 et reste fermee, parce qu un vrai serveur Jellyfin sur la meme machine se disputerait ce port.
Ce que les versions 0.64 ont repare
0.64.0 est une grosse version et le changement le plus important se cache la ou on ne le voit pas : les identifiants internes ont tous ete reecrits en un format uniforme de 128 bits, la migration touche chaque table, la base doit etre sauvegardee avant la montee, et les clients qui avaient mis des identifiants en cache doivent peut etre se resynchroniser. Qui ecrit des greffons doit savoir que la capacite HTTP du bac a sable a ete coupee et que les demandes passent par l interface de l hote.
0.64.1 est une version de securite qui ferme cinq trous d un coup. Le plus lourd se trouve sur l interface Subsonic : les connexions ratees n etaient pas limitees, un attaquant pouvait deviner des mots de passe a pleine vitesse, note 7.4 ; un autre laissait une adresse de pochette externe dans une liste viser le reseau interne et faire du serveur une sonde. 0.64.2 ferme la serie et traite un defaut sur le stockage lent : cles USB et disques reseau jetaient une masse d erreurs de base verrouillee pendant un parcours et le parcours complet echouait, donc cette version met le travail de pochette en pause pendant le parcours.
A qui cela convient
Qui a quelques centaines de GB en sans perte et ne veut pas payer un abonnement chaque mois est l utilisateur typique. Une carte Raspberry toujours allumee, un vieux portable inoccupe ou un conteneur sur un NAS, et la bibliotheque vit. Il ne demande pas de carte graphique, ne fait pas le difficile sur le systeme, et l executable unique tourne des qu il est pose.
Navidrome prend la voie etroite : serveur musical seulement, organise par etiquettes seulement, vise sur le seul protocole Subsonic, et le reste confie a cent deux clients qui font chacun a leur maniere. Le code sort sous GNU GPL troisieme version, le depot porte plus de vingt-quatre mille etoiles, et la version a marche jusqu a 0.64.2. Transformer un dossier musical local en quelque chose a portee de main a tout moment a peu d autres entrees.