Featured image of post Installation Navidrome avec Docker

Installation Navidrome avec Docker

Installation du serveur de streaming musicale Navidromea vec Docker

Introduction

Navidrome est un serveur de streaming possédant une interface web pour gérer sa collection musicales. Outre son interface SWeb, il est compatible avec une multitude de clients sur Android, iOS, Mac, Linux et Windows.

Pour cette installation j’utilise l’image officielle qui est présente ici : deluan/navidrome.

Nous utiliserons ‘swag’ (voir article installation de swag) pour accéder à notre serveur depuis l’extérieur

Remarque : J’ai créé au préalable un utilisateur omdocker (voir l’article création d’un utilisateur). J’ai créé aussi un répertoire qui contiendra toutes mes installations docker. Dans ce blog, j’utiliserais pour exemple le chemin /volume/docker.

Nous allons créer aussi le répertoire ‘navidrome’ en ligne de commande sur le NAS (connexion en SSH) dans notre répertoire docker : /volume/docker et lui donner les droits pour l’utilisateur ‘omdocker’ (sinon ‘root’ par défaut).

cd /volume/docker
sudo mkdir navidrome
sudo chown -R omdocker:users navidrome

Le fichier de configuration

Si vous souhaitez sécuriser le lancement de ‘navidrome’, je vous engage à parcourir l’article sécuriser Docker.

Il est important de bien respecter l’indentation des fichiers de configurations : pas de tabulation. Attention aussi à la version du fichier, il y a des légères évolutions de syntaxe d’une version à l’autre.

Le fichier yml en détails. Il faut remplacer pour votre configuration :

  • user : l’UID et le GID de votre utilisateur,
  • ip_local : à remplacer par l’adresse IP de votre serveur Docker,
  • TZ : Votre zone de temps,
  • /data/docker : Le chemin vers le répertoire de votre application.

    version: "3"
    services:
      navidrome:
        image: deluan/navidrome:latest
        user: 1002:100 # omdocker
        ports:
          - 192.168.2.252:4533:4533
        restart: unless-stopped
        environment:
          - TZ=Europe/Paris
          # Optional: quelques options
          ND_SCANSCHEDULE: 1h
          ND_LOGLEVEL: info
          ND_SESSIONTIMEOUT: 24h
          ND_BASEURL: ""
        volumes:
          - /data/docker/config/navidrome:/data
          - /mnt/musiques:/music:ro

Vous copiez le contenu de ce fichier dans votre interface de gestion Portainer en allant dans ‘Stacks‘ et ‘Add stack‘.

La pile ’navidrome’

Donnez un nom à votre pile, par exemple ‘navidrome‘, puis déployer cotre containeur en cliquant en bas sur ‘Deploy the stack’.

Après une phase de téléchargement de l’image, puis d’installation de l’application, vous devriez arriver sur cet écran si tout s’est bien passé :

Le container ’navidrome’ est installé et est en fonctionnement.

Nous pouvons maintenant nous connectez à ’navidrome’ localement avec l’URL http://IP_SERVER:4533 (l’adresse et le port est a adapté suivant votre fichier de configuration) ou sinon depuis l’extérieur https://navidrome.subdomain.domain.tld (voir la configuration Swag plus bas).

Configuration de Swag

La configuration d’un containeur avec ‘swag’ est la plupart du temps très simple. ‘swag’ propose par défaut des fichiers de configurations prédéfinis pour de nombreux services.

Ces fichiers se trouvent dans le répertoire d’installation de swag : /volume/docker/swag/nginx/proxy-confs/

Le fichier de configuration de ’navidrome’

Nous allons simplement recopier ce fichier et le renommer ‘navidrome.subdomain.conf’.

cd /volume/docker/swag/nginx/proxy-confs/
cp navidrome.subdomain.conf.sample navidrome.subdomain.conf

Nous relançons le containeur swag soit via ‘Portainer’, soit en ligne de commande sudo docker restart swag pour qu’il prenne en charge la redirection du containeur ’navidrome’.

Nous pouvons maintenant nous connecter à ’navidrome’ depuis l’extérieur avec l’URL https://navidrome.subdomain.domain.tld (Le domaine et le sous domaine est à adapter suivant le vôtre).

Premier lancement

Pendant la phase de lancement de votre container ; ’navidrome’ vas scanner votre bibliothèque musical et créer une base de données locales ‘navidrome.db’ dans votre répertoire data (dans notre pile /data/docker/config/navidrome).

Vous pouvez voir les erreurs de ‘parsing’ de votre bibliothèque musicale en parcourant les logs du lancement du container. Vous pouvez corriger les erreurs de parsing avec un logiciel comme MusicBrainz Picard

Il vous sera demandé de créer un utilisateur avec les droits d’administrateur lors de votre première connexion :

Création d’un utilisateur

Navidrome utilise les tags de vos fichiers musicaux pour constituer sa base de données ; vous risquez de voir certains de vos albums apparaitrent plusieurs fois. Comme expliquez plus haut, utilisez un logiciel comme ‘MusicBrainz Picard’ pour corriger tous les problèmes liés aux tags des fichiers musicaux.

L’interface web de l’application est assez classique. Ici avec la lecture d’un album :

Interface web

Généré avec Hugo
Thème Stack conçu par Jimmy