--- title: Navidrome created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, music, music-streaming, navidrome, go, subsonic, opensaubsonic, opensubsonic, mpv] confidence: high contested: false sources: - https://selfh.st/apps/?tag=Music - https://github.com/navidrome/navidrome - https://www.navidrome.org/ --- # đŸŽ¶ Navidrome > Serveur moderne de streaming musical Ă©crit en Go, ultra-lĂ©ger, compatible **OpenSubsonic** et conçu pour gĂ©rer des bibliothĂšques massives (testĂ© Ă  ~900 000 pistes). ## 📋 Informations GĂ©nĂ©rales | MĂ©tadonnĂ©e | Valeur | | :--- | :--- | | **Site web** | https://www.navidrome.org/ | | **GitHub** | https://github.com/navidrome/navidrome | | **License** | GPL-3.0 | | **Langage** | Go | | **Étoiles** | ⭐ 1 523 (15 900+ sur GitHub, ordre de grandeur selfh.st) | | **DerniĂšre MAJ** | 2026-06-06 | | **CatĂ©gorie** | [[cat-music]] | ## 📝 Description Navidrome (« nadia » + « drome ») est un projet nĂ© en 2017, devenu la rĂ©fĂ©rence des serveurs de streaming musical self-hosted modernes. Écrit en **Go**, il se distingue par sa **consommation mĂ©moire dĂ©risoire** (≀ 100 Mo pour 25 000 pistes), sa **vitesse de scan exceptionnelle** et sa capacitĂ© Ă  gĂ©rer des **bibliothĂšques gigantesques** sans ralentissement, le tout avec un binaire unique ou une image Docker minimaliste. Le dĂ©veloppement est trĂšs actif (releases mensuelles, plus de 100 contributeurs). CĂŽtĂ© fonctionnalitĂ©, Navidrome implĂ©mente intĂ©gralement l'API **Subsonic/OpenSubsonic**, ce qui rend la quasi-totalitĂ© des clients mobiles et desktop compatibles : **DSub** (Android), **Substreamer**, **Symfonium** (Android), **play:Sub** (iOS), **Sublime Music** (desktop), **Feishin** (le nouveau client multi-plateforme), **Submariner**, etc. L'UI web intĂ©grĂ©e est sobre et fonctionnelle avec transcodage Ă  la volĂ©e (FLAC → MP3/Opus selon le bitrate du client), gestion multi-bibliothĂšques, utilisateurs et permissions fines, scrobbling Last.fm, et intĂ©gration native avec les **Home Assistant Media Browser**. Cas d'usage typique : « Je veux remplacer Spotify par ma propre bibliothĂšque FLAC stockĂ©e sur un NAS, accessible depuis mon iPhone en 4G, sans Latence, sans pub, sans tracking, sur un Raspberry Pi ». Navidrome coche **toutes** les cases. ## 🚀 Installation ### Option 1 : Docker Compose (recommandĂ©) ```yaml # docker-compose.yml version: "3.8" services: navidrome: image: deluan/navidrome:latest container_name: navidrome restart: unless-stopped user: 1000:1000 ports: - "4533:4533" environment: ND_BASEURL: https://navidrome.example.com ND_LOGLEVEL: info ND_SCANSCHEDULE: 1h ND_TRANSCODINGCACHESIZE: "100" ND_ENABLETRANSCODINGCONFIG: "true" ND_SPOTIFY_ID: "" ND_SPOTIFY_SECRET: "" ND_LASTFM_APIKEY: "" ND_LASTFM_SECRET: "" ND_JUKEBOX_ENABLED: "true" volumes: - ./data:/data - ./music:/music:ro healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:4533/health"] interval: 30s timeout: 5s retries: 3 ``` Premier lancement : crĂ©er l'utilisateur admin via l'UI web, puis ajouter le dossier `/music` dans Settings → Library. ### Option 2 : Installation manuelle TĂ©lĂ©charger le binaire depuis la page des [releases GitHub](https://github.com/navidrome/navidrome/releases) (`navidrome___.tar.gz`), le placer dans `/usr/local/bin/`, crĂ©er un user `navidrome`, configurer `/etc/navidrome/navidrome.toml` (ou variables d'environnement), et un service systemd minimal : ```ini [Unit] Description=Navidrome After=network.target [Service] User=navidrome ExecStart=/usr/local/bin/navidrome --configfile /etc/navidrome/navidrome.toml Restart=always [Install] WantedBy=multi-user.target ``` ## ⚙ Configuration - **BibliothĂšques** : une ou plusieurs, avec chemins distincts et ACL par utilisateur (Musique / Livres audio / K7 familiales par exemple). - **Transcodage** : `ffmpeg` est utilisĂ© pour le streaming, configurable par dossier (qualitĂ© par dĂ©faut, qualitĂ© mobile, format de sortie). - **MĂ©tadonnĂ©es** : extraction automatique, scan incrĂ©mental, scan programmĂ© (`ND_SCANSCHEDULE`). - **Auth** : locale par dĂ©faut, header `X-Forwarded-User` pour SSO (Authelia/Authentik), LDAP possible via proxy. - **Scrobbling Last.fm** : `ND_LASTFM_*` (clĂ© API gratuite sur `last.fm/api`). - **Spotify** : `ND_SPOTIFY_*` pour les liens d'artistes et les previews 30s. - **Jukebox mode** : permet de streamer du device qui hĂ©berge Navidrome (utile sur Raspberry Pi avec sortie audio locale). - **Backup** : ne sauvegarder que `./data` (base SQLite + cache) ; la musique elle-mĂȘme est sur le NAS et se rescanne. ## 🔄 Alternatives ### Open Source - [[app-koel]] — PHP/Vue, UI plus moderne mais plus lourd. - [[app-ampache]] — PHP historique, Subsonic-compatible, plus riche fonctionnellement. - [[app-funkwhale]] — FĂ©dĂ©rĂ© (ActivityPub), orientĂ© podcasts. - [[app-airsonic]] — Java, Subsonic-compatible, plus gourmand. - [[app-gonic]] — Go, fork d'Airsonic-Advanced, minimaliste mais moins complet. - [[app-jellyfin]] — Plus gĂ©nĂ©raliste (vidĂ©o + audio + Live TV). - [[app-azuracast]] — Pour le cĂŽtĂ© webradio. ### PropriĂ©taires (ce que cette app remplace) - Spotify — Streaming freemium. - Apple Music / iTunes Match — Synchronisation de bibliothĂšque. - Tidal — HiFi/FLAC. - Google Play Music (fermĂ©) — Successeur YouTube Music. - Subsonic (commercial) — Le produit original Subsonic dont Navidrome est la version libre moderne. ## 🔒 SĂ©curitĂ© - **HTTPS obligatoire** : reverse proxy Traefik ou Caddy (l'API OpenSubsonic est non chiffrĂ©e nativement). - **Mode admin** : crĂ©er un compte admin avec mot de passe fort (32+ caractĂšres) puis crĂ©er des comptes standard. - **Trusted proxies** : `ND_BASICAUTH_ENABLED=false` derriĂšre Traefik, configurer `X-Forwarded-*` proprement. - **Rate limiting** : activer CrowdSec/Fail2ban sur le reverse proxy, l'API ne l'ayant pas en natif. - **Permissions dossiers** : monter `./music` en `:ro` (read-only) dans le conteneur, ne JAMAIS rendre le dossier musique accessible en Ă©criture. - **Mise Ă  jour** : tag `latest` ou `stable`, releases frĂ©quentes, suivre les CVE. - **Logs** : `ND_LOGLEVEL=info` en prod, `debug` temporairement en cas de souci. ## 📚 Ressources - Site officiel : https://www.navidrome.org/ - Documentation : https://www.navidrome.org/docs/ - Repository : https://github.com/navidrome/navidrome - Wiki / FAQ : https://www.navidrome.org/docs/overview - Liste clients : https://www.navidrome.org/apps - CommunautĂ© : https://discord.gg/xh7j7yF - Reddit : https://www.reddit.com/r/navidrome/ - Subsonic API : https://www.subsonic.org/pages/api.jsp ## 🔗 Pages LiĂ©es - [[cat-music]] — CatĂ©gorie parente - [[app-koel]] — Concurrent PHP/Vue, plus « joli » - [[app-ampache]] — Concurrent PHP historique - [[app-funkwhale]] — Alternative fĂ©dĂ©rĂ©e - [[app-gonic]] — Subsonic-compatible Go minimaliste - [[app-maloja]] — Scrobbler Last.fm compatible - [[app-traefik]] — Reverse proxy HTTPS - [[app-authelia]] — SSO optionnel - [[recettes-docker-compose]] — Templates Docker - [[securisation-home-lab]] — Bonnes pratiques