À l’ère du streaming par abonnement j’en reviens à manquer l’époque où ma bibliothèque musicale était ma collection organisée, choisie avec soin, et navigable comme un catalogue.
Dans mon cas j’ai tendance à oublier l’existence d’artistes et albums s’ils ne sont pas rangés où je les ai mis, je ne me dis jamais “tiens je vais écouter du Hendrix” mais plutôt je navigue par genre et style pour ensuite redécouvrir mes artistes préférés. Dans une époque qui me semble pas si lointaine, il y a 10 ans… je pouvais tout redécouvrir en naviguant dans ma bilbiothèque personnelle, typiquement dans iTunes je faisais « Genre > Artiste > Album » et chaque pochette, chaque métadonnée était rangée de la façon qui me plaisait. Pendant un temps j’ai utilisé la solution Google Music qui permettait d’héberger sa propre musique et de pouvoir lire sa musique depuis n’importe où, mais lorsque le service a été décommissionné j’ai finalement basculé sur Spotify.
Mais se reposer sur Spotify c’est, dans mon cas, me faire recommander les mêmes musiques. Et même s’il y a de bonnes découvertes parfois, c’est trop aléatoire, notamment dans les enchaînements recommandés après l’écoute d’un album. J’y ai perdu le côté intentionnel de choisir la musique que je souhaite écouter, et d’écouter les artistes ou albums que j’ai méticuleusement pris le temps d’inspecter, étudier, écouter, et apprécier.
Si comme moi vous possédez toujours une collection locale que vous n’utilisez pas pleinement, alors le self-hosting est la solution.
Bye bye les contraintes des services de streaming, les pistes aléatoires non désirées, et surtout les interfaces fouillies qui ne correspondent pas à un usage plus simple. Cette année j’ai repris le contrôle en stockant mes musiques sur mon NAS et la rendant disponible partout avec Navidrome.
Pourquoi auto-héberger sa musique ?
L’idée de me lancer dans une solution en dehors des services de streaming me revenait régulièrement. Le problème est bien souvent le stockage, sa résilience, ses backups… J’ai testé AWS mais les coûts n’étaient pas intéressants sur mon volume et dépassaient ceux d’une solution de streaming. Je me suis donc tourné vers mon NAS, un Synology DS923+ configuré en SHR avec backup Cloud Sync vers GCP, et cela réduit drastiquement la facture, car le NAS sert également à d’autres usages (stockage, diffusion vidéo, backups, domotique Home Assistant,…).
Alors pourquoi auto-héberger sa bibliothèque musicale ?
- Maîtrise totale : vous êtes le seul propriétaire de vos fichiers et de leurs métadonnées. Plus de surprises de services qui disparaissent ou changent leurs conditions ;
- Qualité audio : écoutez vos fichiers en haute fidélité (FLAC, ALAC) sans compression ;
- Personnalisation : organisez et naviguez dans votre collection exactement comme vous le souhaitez. Fini les interfaces, les classifications de genre farfelues, l’ordre des albums imposés. Pour moi c’est le point plus important !
- Bonus confidentialité : vos habitudes d’écoute restent privées ;
- Accès universel : accédez à votre bibliothèque depuis n’importe quel appareil, partout dans le monde et sans compromis, comme si vous étiez chez vous.
Navidrome comme serveur de streaming
Navidrome est un serveur de musique « Subsonic » moderne, léger et open-source. C’est le cerveau de votre opération, votre bibliothèque de musique et ses metadonnées en sont le coeur.
Pourquoi Navidrome plutôt qu’une autre solution (Plex, Audio Station, Music Assistant) ?
- Légèreté : conçu spécifiquement pour la musique, il est vraiment moins gourmand en ressources ;
- Compatibilité Subsonic : il utilise un protocole ouvert (Subsonic API) qui le rend compatible avec des dizaines de clients différents sur toutes les plateformes ;
- Rigoureux sur la lecture de la bibliothèque : contrairement à certaines solutions qui peuvent être « bavardes » ou moins précises sur les tags, Navidrome respecte scrupuleusement vos métadonnées (Genre, Artiste, Album, etc.) ;
- Multi-utilisateurs : permet de gérer des comptes pour chaque membre de la famille, avec leurs propres favoris et réglages.
Il répond à mon cahier des charges puisqu’il est léger, simple, et repose sur les metadonnées. Point important pour moi qui souhaite retrouver une navigation par Genre avec ma propre taxonomie !
Installer Navidrome via Docker sur Synology
J’utilise Docker via l’application « Container Manager » de Synology pour une installation propre et portable. Le guide suivant peut être utilisé pour une installation Docker classique, il suffit d’ignorer alors les spécificités liées à Synology.
Prérequis :
- NAS Synology ainsi qu’un terminal connecté en SSH pour exécuter certaines commandes ;
- L’application Container Manager installée depuis le Centre de Paquets de DSM ;
- Votre musique stockée dans un dossier partagé (ex:
/volume1/music).
1. Structure de dossiers sur le NAS :
Créer un dossier dédié pour Navidrome, par exemple : /volume1/docker/navidrome. À l’intérieur créer un sous-dossier data pour la base de données de Navidrome.
2. Le fichier docker-compose.yaml pour Navidrome :
Créer un fichier docker-compose.yaml dans /volume1/docker/navidrome avec le contenu suivant :
version:"3"
services:
navidrome:
image: deluan/navidrome:latest
container_name: navidrome
restart: unless-stopped
user: 1026:100 # Remplacez 1026:100 par votre PUID:PGID. Pour trouver votre PUID/PGID, connectez-vous en SSH au NAS et tapez 'id votre_nom_utilisateur'.
volumes:
- /volume1/music:/music:ro # Chemin vers votre musique (lecture seule)
- ./data:/data # Base de données, configurations, caches de Navidrome
ports:
-"4533:4533" # Port d'accès à l'interface web de Navidrome (localement)
environment:
ND_DEFAULTLANGUAGE: "fr"
ND_SCANSCHEDULE: "0 * * * *" # Scan toutes les heures pour les nouveaux fichiers
ND_LOGLEVEL: warn
ND_SESSIONTIMEOUT: 2h # délai au delà duquel la session sera fermée
ND_COVERJPEGQUALITY: 90 # niveau de qualité pour les jpg dont la taille est convertie
ND_ENABLECOVERANIMATION: false # animation tournante lorsq'une piste est jouée
ND_LASTFM_ENABLED: false # disable Last.fm
ND_ENABLEDOWNLOADS: false # on ne peut pas télécharger d'albums à partir de Navidrome
ND_SCANNER_GROUPALBUMRELEASES: true # Pour regrouper les compilations (type B.O. de film) dont les titres ont des années de sortie différentes
Lancer Navidrome : dans un terminal se déplacer dans /volume1/docker/navidrome et exécuter docker-compose up -d
Vous devriez pouvoir accéder à Navidrome localement via http://IP_DE_VOTRE_NAS:4533.
Exposer Navidrome sur internet avec AutoSSH
Mon NAS n’est pas du tout exposé sur internet. Par contre les applications qu’il héberge comme Home Assistant ou désormais Navidrome oui, et cela grâce à un tunnel SSH vers mon serveur OVH qui lui possède une IP fixe et gère les connexions entrantes, la configuration nginx, les certificats SSL, etc.
1. Création d’un utilisateur dédié sur le serveur distant :
Sur votre serveur distant créez un utilisateur SSH mon_navidrome sans mot de passe, dédié au tunnel :
sudo adduser --disabled-password --gecos"" mon_navidrome
sudo su - mon_navidrome
mkdir .ssh
chmod 700 .ssh
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keysexit
2. Génération d’une clé SSH :
Sur le NAS via un terminal générez une nouvelle clé SSH sans passphrase :
ssh-keygen -t ed25519 -f /volume1/docker/navidrome/id_rsa_navidrome -C "navidrome_tunnel"
3. Installation de la clé publique sur le serveur distant :
Copiez le contenu du fichier /volume1/docker/navidrome/id_rsa_navidrome.pub et collez-le dans le fichier /home/mon_navidrome/.ssh/authorized_keys sur votre serveur distant.
4. Configuration du fichier docker-compose.yaml (ajout d’AutoSSH) :
Mettre à jour votre docker-compose.yaml (celui qui contient déjà Navidrome) avec le service autossh-tunnel :
version:"3"
services:
navidrome:# ... (Votre configuration Navidrome existante) ...
autossh-tunnel:
image: alpine:latest
container_name: navidrome_tunnel
command: > # installe et lance autossh
sh -c "ls -l /id_rsa && apk add --no-cache autossh &&
autossh -M 0 -N \\
-o 'StrictHostKeyChecking=no' \\
-o 'ServerAliveInterval=30' \\
-o 'ServerAliveCountMax=3' \\
-o 'ExitOnForwardFailure=yes' \\
-i /id_rsa \\
-R 0.0.0.0:55500:navidrome:4533 \\
mon_navidrome@votre-domaine.com"
restart: always
depends_on:
- navidrome
Ce container “navidrome_tunnel” va créer un tunnel SSH permettant de lier le port du container voisin 4533 de Navidrome au port 55500 au sein de votre serveur distant.
Depuis /volume1/docker/navidrome, exécutez : docker-compose up -d --force-recreate
5. Configuration Nginx sur le serveur distant :
Sur votre serveur configurez Nginx pour exposer votre tunnel (ici sur le port 55500) :
server {
listen 80;
listen 443 ssl;
server_name musique.votre-domaine.com; # Votre domaine
# ... (Vos configurations SSL Let's Encrypt habituelles) ...
location / {
proxy_pass <http://127.0.0.1:55500>; # Le port sur lequel le tunnel écoute localement sur le serveur
proxy_set_header Host$host;
proxy_set_header X-Real-IP$remote_addr;
proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto$scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade$http_upgrade;
proxy_set_header Connection"upgrade";
}
}
Configuration initiale de Navidrome
- Premier accès : se rendre sur
http://IP_DE_VOTRE_NAS:4533(ou votre URL publique). - Compte admin : créer le premier utilisateur, ce sera l’administrateur.
- Scan de la musique : Navidrome devrait automatiquement scanner le dossier
/volume1/musicque vous lui avez monté. Pour un scan complet, aller dans le menu utilisateur (en haut à droite) > Advanced > Full Scan.
Problème de permissions sur Synology : si Navidrome ne voit pas vos nouveaux fichiers connectez-vous en SSH au NAS pour régler les bonnes permissions d’accès :
sudo chown -R votre_utilisateur_nas:users /volume1/music
sudo chmod -R 775 /volume1/music
Puis dans DSM > File Station > Clic droit sur votre dossier music > Propriétés > Permissions > cochez « Appliquer à ce dossier, ses sous-dossiers et ses fichiers » pour que les droits s’héritent automatiquement.
MusicBrainz Picard : gérer les métadonnées de sa bibliothèque
Navidrome ne fait que lire les fichiers et les rendre disponible en streaming aux clients/applications compatibles. Le coeur du système de streaming reste votre bibliothèque et ses metadonnées doivent donc être impeccables.
Pour cela Picard est votre meilleur ami: il permet de scanner l’empreinte audio de vos fichiers pour les identifier et les tagger avec les métadonnées officielles de MusicBrainz, y compris les pochettes.
Configuration
Dans mon cas ma bibliothèque était presque propre mais je voulais corriger de nombreux albums mal tagués, tout en conservant la main sur le metatag « genre » sur lequel j’aime bien apposer ma propre taxonomie pour classifier la musique. Pour cela il faut configurer Picard pour éviter d’écraser les données sensibles ou gérer correctement les compilations :
- Installer Picard sur votre Mac ou PC
- Options > Tags :
- Préserver les tags : ajouter
genrepour que Picard ne touche pas aux genres personnalisés
- Préserver les tags : ajouter
- Options > Pochettes :
- Cocher « Télécharger la pochette » depuis toutes les sources
- Cocher « Enregistrer la pochette sous… » et mettre
cover.jpg - Cocher « Intégrer la pochette dans les tags »
- Options > Nommage de fichiers :
- Cocher « Renommer les fichiers quand on sauvegarde » et « Déplacer les fichiers quand on sauvegarde »
- Cocher « Déplacer les fichiers vers ce dossier » et indiquez la racine de votre dossier musique sur le NAS (ex:
/volume1/music) - Script de nommage : Copier-coller ceci pour un classement
Artiste/Album/Piste - Titreavec gestion des compilations :$if($eq(%compilation%,1),Various Artists,%albumartist%)/%album%/%02d - %title%
Workflow pour nettoyer la bibliothèque
- Charger la musique : glisser un ou plusieurs dossiers d’artistes depuis votre NAS vers la colonne de gauche de Picard
- Grouper (
Cluster) : cliquer sur « Cluster » pour que Picard regroupe vos fichiers par dossier pour ne pas éparpiller vos albums - Rechercher (
Lookup) : sélectionnez un cluster (un album) et cliquer sur « Lookup ». Picard va chercher l’album correspondant- les albums passent dans la colonne de droite
- vérifier la correspondance (doré = parfait, rouge = incomplet)
- Analyser les orphelins (
Scan) : pour les fichiers qui restent dans « Unclustered Files » à gauche (non groupés) ou pour compléter les albums rouges, sélectionnez-les et cliquez sur « Scan ». Picard les identifiera par leur empreinte audio - Vérifier et éditer :
- avant de sauvegarder, vérifier le panneau du bas pour les tags proposés et le nouveau chemin du fichier (en vert)
- modifier le Genre : sélectionner l’album à droite, double-cliquer sur le champ « Genre » dans le panneau du bas et insérer le genre personnalisé
- Sauvegarder (
Save) : clic-droit sur l’album à droite > « Enregistrer ». Picard va tagger, renommer et déplacer vos fichiers
Gestion des « Various Artists » et Compilations :
- Assurez-vous que le tag
Album Artistest bien « Various Artists » et que le tagCompilationest1pour les compilations. Le script de nommage de Picard se chargera du reste - Mergez vos dossiers « Compilations » et « Various Artists » en un seul « Various Artists » en laissant Picard les déplacer via le script
Créer une compilation personnelle type « Best Of » :
- Script Picard « Best Of Maker » : Aller dans Options > Scripts > Ajouter un nouveau script. Nommer le script « Créer Best Of » et coller :
$set(albumartist,Nom Artiste) $set(originalalbum,%album%) $set(album,Nom Artiste- My BestOf) $set(compilation,1) $set(originaldate,%date%) $set(date,2024) - Glisser vos morceaux de Lana Del Rey par exemple dans la colonne de gauche
- Sélectionner les morceaux, Clic-droit > Scripts > Créer Best Of
- Sélectionner toutes les pistes, Clic-droit > Outils > Numéroter les pistes
- Sauvegarder
Les meilleures applications/clients pour Navidrome
Navidrome ouvre les portes de tout un ensemble de clients Subsonic. Voici une sélection de mes préférés :
Android mobile & Android TV : Symfonium
Symfonium est une application Android Open-Source, possédant de vraies fonctionnalités avancées et une interopérabilité avec de nombreux systèmes de providers (Plex, Jellyfin, Navidrome, etc.) et de diffusion (Android Auto, Chromecast, DLNA, etc.).


- Ses avantages :
- Un client puissant et personnalisable ;
- L’interface est simple et épurée ;
- Il permet une navigation par Genre ;
- Possède une Interface TV dédiée.
- Point d’attention :
- N’est pas gratuit, il est possible de tester l’application gratuitement pendant 14 jours puis c’est un coût unique de 5.99€ (rattaché au compte Google Play, donc un seul achat pour avoir l’application sur son téléphone et sa télé si on utilise le même compte Google) ;
- Après tout changement dans Navidrome, il faut forcer la synchronisation dans Symfonium :
Paramètres > Gérer les fournisseurs de média > 3 points sur Navidrome > Synchroniser maintenant. - La navigation dans l’interface sous Android TV est un peu raide, mais ça fait l’affaire.
J’utilise Symfonium sur mon téléphone Android et sur Android TV.
iOS & macOS (mobile, ipad, laptop/desktop) : Amperfy
Amperfy est une application native pour l’écosystème iOS/iPadOS/macOS, son écriture native et sa ressemblance avec iTunes en font un outil simple mais efficace.

- L’expérience la plus fluide et design sur iOS ;
- Gratuit et open-source ;
- Permet une navigation par genre, mais sous forme Genres > Albums, malheureusement je n’y retrouve pas mon chemin préféré Genres > Artists > Albums.
J’utilise Amperfy uniquement sur mon iPad.
Navigateur Web & applications Desktop (macOS/Windows/Linux) : Feishin
Feishin est un projet Open-Source qui est en fait une réécriture d’un projet plus ancien et populaire (Sonixd). Son interface et ses fonctionnalités sont modernes.

- Interface moderne et agréable visuellement ;
- Permet une navigation par genre ;
- Peut être utilisé directement depuis n’importe quel OS et navigateur via leur URL vercel : https://feishin.vercel.app/
- Il existe une version desktop pour mon iMac
- Point d’attention : je trouve que l’application a tendance à ralentir avec le temps, une fresh install résout le problème mais je n’ai pas encore trouvé la solution.
J’utilise Feishin en version web sur mon laptop du boulot et sa version desktop sur mon iMac.
Astuce NAT Loopback : utilisez votre URL publique (ex: https://musique.votre-domaine.com) pour vous connecter à Navidrome depuis vos applications amenées à être en déplacement (PC Portable, téléphone mobile, tablette) mais ce n’est pas utile pour l’application Android TV par exemple où vous pouvez utiliser l’adresse IP de votre réseau interne.

