Aller au contenu

[TUTO] [Docker] Navidrome, un remplaçant d'Audio Station et de DS Audio


CyberFr

Messages recommandés

J'ai longtemps utilisé DS Audio qui me donnait toute satisfaction malgré ses limitations. Par exemple quand dans Sécurité > Avancé, le niveau de profil TLS/SSL est réglé sur « Comptabilité moderne » DS Audio refuse de s'exécuter et il faut impérativement le rétrograder à « Comptabilité intermédiaire » ce qui est dommage. J'attendais patiemment une mise à jour qui résoudrait ce problème trivial jusqu'au jour où @.Shad. a réduit à néant tous mes espoirs en annonçant que les applications comme DS Audio n'étaient plus une priorité pour Synology. Le temps lui a donné raison puisque, depuis, Synology a annoncé l'abandon de Video Station et ce à partir de DSM 7.2.2.

J'ai donc cherché un remplaçant et, après avoir consulté l'offre d'applications sous Docker, j'ai choisi Navidrome. Cette application n'est pas une usine à gaz et ne fait qu'une chose : gérer de la musique mais elle le fait très bien. Elle se comporte comme un serveur Subsonic qui peut être utilisé par tous les clients qui sont compatibles et ils sont légions. On en trouve dans tous les environnements Windows, macOS, Linux, Apple TV et j'en passe. Cette page Liste des clients compatibles liste la plupart des clients qui le sont.

Pour plus d'informations sur sur les principales caractéristiques de Navidrome je vous renvoie sur cette page (en anglais) : Navidrome overview.

PRÉ-REQUIS

- Avoir installé Container Manager ou Docker suivant la version de DSM de votre NAS. Container Manager a remplacé Docker depuis DSM 7.2.

INSTALLATION DU CONTAINER

Tous les containers gérés par Docker se trouvent dans une hiérarchie commune de File Station. Ce n'est pas obligatoire mais cela facilite bien des choses.

volumeX
   - docker
      - container1
      - navidrome
      - container3
      - etc
Le numéro du volume dépend de votre NAS, sur un NAS 2 baies ce sera volume1. Vous pouvez créer ces dossiers et leurs sous-dossier dans File Station.

À l'intérieur du dossier navidrome vous créez un sous-dossier data :

navidrome
   - data

FICHIER DE CONFIGURATION

C'est le fichier compose.yaml qui sera placé dans le dossier navidrome et sera utilisé lors du déploiement du conteneur. Synology utilise toujours le terme de docker-compose pour ce fichier alors qu'il n'est plus reconnu par docker.com.

#
# ╔═══════════════════════╗
# ║   N A V I D R O M E   ║
# ╚═══════════════════════╝
#
# https://www.navidrome.org/docs/
# https://www.navidrome.org/docs/installation/docker/

services:
  navidrome:
    image: deluan/navidrome:latest
    container_name: navidrome
    restart: unless-stopped
    user: XXXX:XXX               # INDIQUER LE USER ID : GROUP ID DE L'UTILISATEUR DU CONTAINER
    volumes:                     # IL DOIT AVOIR LES DROITS SUR DOCKER (R/W) ET MUSIC (RO)
      - ./data:/data
      - /volume1/music:/music:ro # le dossier peut être placé n'importe où dans l'arboressece à la
    ports:                       # différence de data qui doit se trouver dans docker/navidrome/data
      - "4533:4533"
    environment:
      ND_DEFAULTLANGUAGE: "fr"
      # calendrier des analyses : toutes les heures (https://crontab.guru)
      # on peut raccourcir le délai lors de l'import de musique et l'allonger lorsque la situation est stable
      ND_SCANSCHEDULE: "0 * * * *"
      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_ENABLEFAVOURITES: false       # supprime les favoris
      ND_ENABLESTARRATING: false       # supprime les étoiles insuportables
      ND_ENABLEDOWNLOADS: false        # on ne peut pas télécharger d'albums à partir de Navidrome
#     ND_UILOGINBACKGROUNDURL:         # image utilisée lors de la connexion (actuellement image aléatoire)

Toutes les valeurs sous la ligne "environment" sont facultatives. Vous pouvez modifier leur contenu afin de tester les changements qui se produisent dans Navidrome. Concernant ND_SCANSCHEDULE, le calendrier des analyses est réglé sur toutes les heures. Ce délai est utile lors de l'ajout régulier de dossiers dans le dossier music et donc lors de la montée en charge de Navidrome. Lorsque les choses sont stabilisées vous pouvez le définir en '@every 24h' quotes comprises. De toute façon, au lancement de Navidrome, celui-ci met à jour ses fichiers caches.

Navidrome a besoin de son propre dossier pour y maintenir sa base de donnée musicale, c'est le dossier "data" dans docker/navidrome. Par contre le dossier qui contient les morceaux de musique peut se trouver n'importe où dans l'arborescence à tel point que j'ai choisi le dossier "music" géré par Audio Station qui existait donc déjà. Je n'ai pas eu à tout reprendre à partir de rien. Par précaution ce dossier est en lecture seule ce qui garantit que Navidrome ne pourra pas le modifier mais en contrepartie il n'est pas possible de charger des fichiers musicaux directement à partir de l'application ce qui n'est pas forcément une mauvaise chose. C'est pourquoi j'accède au fichier music en SMB, monte le dossier sur le bureau et fait toutes les modifications nécessaires avec des logiciels spécialisés comme Metadics ou XLD. Navidrome par exemple ne sait pas à partir d'un CD créer un album au format FLAC. Il ne sait pas non plus modifier des méta-données. Il faut donc le faire en dehors de l'application.

OUVRIR UNE SESSION SSH

Pour activer SSH si ce n'est déjà fait rendez vous dans "Terminal & SNMP".

-d8Dc6evXq4

Choisissez ""Élevé" pour l'algorithme de chiffrement dans les paramètres avancés.

ATTENTION : Il est vivement recommandé pour des raisons de sécurité de changer le port par défaut de SSH. N'ouvrez pas ce port sur votre box Internet ou votre routeur car il doit être utilisé en local pour des raisons de sécurité une fois de plus. Si vous devez absolument vous connecter à SSH sur le NAS hors du réseau local utilisez un VPN.

Pour ouvrir une session SSH en tant qu'administrateur.
ssh userID@192.168.1.2 -p XXX
où "userID" est le nom de votre compte administrateur, 192.168.1.2 est l'adresse IP locale du NAS et XXX le numéro de port que vous avez attribué à l'étape précédente.

À partir de là vous pouvez, lorsque c'est nécessaire, vous connecter en tant que root. On vous demande le mot de passe de votre compte administrateur.
CyberFR@DS220:~$ sudo -i
Password:
root@DS220:~#

 

L'utilisateur de Navidrome

Le plus simple et ce qui garantit un niveau de sécurité minimum est de créer un utilisateur dédié à Navidrome. Il doit appartenir au groupe "users". L'accès à tous les dossiers partagés lui est interdit sauf docker en lecture/écriture afin que Navidrome puisse mettre à jour ses données. Comme évoqué plus haut il peut accéder. au dossier music (ou tout autre dossier que vous aurez choisi) en lecture seule.

Permissions.thumb.png.bf36497c64d0bceae8c3aa48ccb6b6e2.png

L'accès à toutes les applications lui est interdit.

Applications.thumb.png.c91944e5974fd324dd14d77a0accfe92.png

 

Pour connaître l'identifiant de votre utilisateur ouvrez une session SSH en tant qu'administrateur et tapez "id nav_agent" où nav_agent est l'utilisateur que vous avez créé :

CyberFR@DS220:~$ id nav_agent
uid=1044(nav_agent) gid=100(users) groups=100(users)

Ces valeurs doivent remplacer les XXX qui figurent dans la ligne "user" du fichier de configuration.

Vous devez ajouter le fichier de configuration, sous le nom compose.yaml, à la racine du dossier navidrome dans File Station.

navidrome
   - data
   - compose.yaml

 

DÉPLOIEMENT DU CONTENEUR AVEC CONTAINER MANAGER

Rendez-vous dans la partie "Projet" de Container Manager et choisissez Créer.

PJ0.thumb.jpg.f8f016aef7907705a151d7da91cd0591.jpg

 

PJ5.thumb.jpg.09714af6a9d705217c0c7618daae1be0.jpg

Lorsque vous indiquez le chemin du projet c'est à dire le dossier navidrome qui se trouve dans docker, Container Manager vous demande s'il faut utiliser le fichier compose.yaml qui s'y trouve, vous cochez la case pour confirmer.

PJ6.jpg.e89464c5a1d26f0c8514b220e3cd8e87.jpg

Container Manager affiche ce fichier et vous signale d'éventuelles erreurs. Cliquez sur Suivant. On ne configure pas de portail Web.

PJ1.png
 

 

-MjJyh9xwCE

On choisit de démarrer le projet dés sa création. Après avoir cliqué sur Effectué, le projet est créé.

 

DÉPLOIEMENT DU CONTENEUR AVEC DOCKER

Ouvrez une session SSH en tant que root et rendez-vous dans le dossier navidrome.
cd /volume1/docker/navidrome

Tapez
docker-compose up -d
pour déployer le conteneur.

 

-gBXrVzbNYz

 

Vous obtiendrez une suite de messages vous indiquant la réussite (ou l'échec) de l'opération.

 

ACCÈS À NAVIDROME

Le conteneur est lancé mais il reste à accéder à Navidrome. Pour ce faire tapez « http://192.168.1.2:4533 » dans votre navigateur préféré où 192.168.1.2 est l'IP locale du NAS et 4533 le port défini pour Navidrome dans le fichier de config.

 

-uUMdkYyvJk

Modifié par CyberFr
Lien vers le commentaire
Partager sur d’autres sites

  • CyberFr a modifié le titre en [TUTO] Installer Navidrome, un remplaçant d'Audio Station et de DS Audio sous Docker

salut

bonne idée de présenter des alternatives aux apllis Synology.
Une question (sans avoir pris le temps de regarder le site de Navidrome) Il y a une aplli pour téléphone ?
aller je vais voir la demo de Navidrome 🙂

encore merci

Lien vers le commentaire
Partager sur d’autres sites

  • CyberFr a modifié le titre en [TUTO] [Docker] Navidrome, un remplaçant d'Audio Station et de DS Audio

Merci pour ce tutoriel @CyberFr.
Gros point fort de Navidrome aussi, bien que je ne l'utilise pas, c'est son API compatible Subsonic.
Ca me permet de synchroniser à distance mes musiques sur ma montre Garmin quand je vais courir, j'évite de me trimballer mon GSM du coup. 🙂 

Lien vers le commentaire
Partager sur d’autres sites

Etant un gros flémard, je suis allé dans le Registre et j'ai téléchargé deluan/navidrome ; ça fait le taf aussi .

Coté Player , j'en cherchais un qui soit gratuit et surtout compatible Android Auto. Un qui semble faire l'affaire c'est UltraSonic . 
 

Ah oui, une dernière chose, merci pour ton tuto @CyberFr

Lien vers le commentaire
Partager sur d’autres sites

il y a 12 minutes, CMDC a dit :

Etant un gros flémard, je suis allé dans le Registre et j'ai téléchargé deluan/navidrome ; ça fait le taf aussi .

Dans le fichier de config du tuto il y a cette ligne :

Citation

image: deluan/navidrome:latest

On parle donc bien de la même image 😀 Tu n'as pas utilisé docker ?

il y a 15 minutes, CMDC a dit :

Un qui semble faire l'affaire c'est UltraSonic .

Il y en a plein et si tu veux tous les tester pour nous faire profiter d'un retour, n'hésite pas !

Lien vers le commentaire
Partager sur d’autres sites

il y a 24 minutes, CMDC a dit :

Si bien sur mais j'utilise Container Manager

Sans passer par un docker-compose c'est à dire un fichier de configuration ? Si c'est le cas tu passes à coté de quelque chose qui simplifie bien la vie. Ouvre un autre fil de discussion si cela t'intéresse ou plus simplement applique le tuto.

Lien vers le commentaire
Partager sur d’autres sites

Je constate qu'un certain nombre de personnes a parcouru le tuto.

Si vous avez réussi à le mettre en œuvre bravo ! Et dans ce cas n'hésitez pas à le faire savoir.

Dans le cas contraire, ne soyez pas timide et n'hésitez pas à poser des questions. Le principe d'un tutoriel est avant tout d'aider les personnes qui rencontrent des difficultés.

Je n'aborde pas ici l'utilisation de Navidrome puisque le tuto traite de son déploiement mais si vous avez des questions à poser à ce sujet, une fois de plus n'hésitez pas à le faire.

Lien vers le commentaire
Partager sur d’autres sites

il y a 30 minutes, olep a dit :

Impeccable, ça marche tout de suite!

Merci @olep pour le retour 😀

il y a 31 minutes, olep a dit :

Pas besoin de taper docker-compose up -d pour déployer le conteneur, à priori container manager le fait direct.

En effet "docker-compose up -d" ne sert que lorsqu'on ne dispose pas de Container Manager qui est à mon avis la plus grande innovation de DSM 7.2.

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.