Installer un serveur de streaming de musique Airsonic via un container Docker

Présentation d'Airsonic

Je vais vous montrer comment installer un serveur de streaming de musique Airsonic via un container Docker, le paramétrer et ajouter un lecteur partagé SMB (qui provient de Freenas).

Airsonic est un serveur de streaming de musique. Il est open source et issu d’un  fork de Subsonic.

Airsonic

Prérequis

Un des principes de base est de minimiser les processus executés par root. Commencez par créer un utilisateur spécifique ‘airsonic’ qui gérera le container.

Le serveur qui héberge le docker Airsonic s’appelle srv-ubuntu-02 (il est sous Ubuntu 20.04 LTS)

Pour accéder au répertoire réseau de Freenas //srv-nas-01/Music, vous avez bien entendu défini un accès.

Pour autoriser le container Docker à se connecter au répertoire partagé, créer un fichier .smbcredentials dans /home/airsonic avec les codes d’accès :

Insérer les lignes suivantes avec les codes d’accès au dossier partagé :

Donner les droits correspondants :

Monter le partage SMB (facultatif)

Si comme moi vous avez une VM Freenas utilisez pour télécharger et partager du contenu musical, voici comment monter le partage réseau.
Le serveur Freenas s’appelle srv-nas-01

Je pars du principe que vous avez déjà configuré le partage SMB sur le serveur Freenas. Mais vous pouvez faire de même avec n’importe quel répertoire réseau.

Toujours sur le serveur Docker, n’oubliez pas d’ajouter les règles au firewall

Commençons par installer les utilitaires CIFS :

La 1ère étape consiste à monter le répertoire partagé //srv-nas-01/Music sur le serveur qui hébergera le container (= srv-ubuntu-02)

Créez le dossier /media/Music que nous utiliserons ensuite pour monter le répertoire partagé, puis nous allons éditer le fichier /etc/fstab pour ajouter le montage. Les commandes sont lancées via ROOT.

Ajouter le point de montage suivant :

Lancez le montage

Vérifiez que le dossier est bien monté avec les bons droits (airsonic):

Installation du serveur de streaming de musique Airsonic via un container Docker

Nous pouvons maintenant passer à la création du container docker

Il va commencer par télécharger les prérequis

Vérifions le statut du container

Il n’arrive pas à démarrer car au lancement le container créé des sous-dossiers /home/airsonic/ avec ROOT comme propriétaire, changeons les droits :

Vérifions le statut du docker

Ouvrez le navigateur et entrez l’URL de votre serveur sur le port 4040 : http://srv-ubuntu-02:4040
Les login/passwords sont admin/admin

docker - airsonic homepage
Commencez par changer le mot de passe admin puis allez sur la page Media folders et modifiez le folder par le dossier /media/Music, puis lancez un scan

Airsonic - Media folders

Nous avons vu comment installer un serveur de streaming de musique Airsonic via un container Docker. Vous pouvez ensuite configurer le transfert de ports sur votre routeur.

Accéder de l'extérieur via un Reverse Proxy sous Nginx

Pour l’accès depuis l’extérieur, j’ai choisis d’ajouter un sous-domaine music.petitsurfeur.net qui pointe vers mon routeur.

Si ce n’est pas déjà fait, mettez en place un transfert de ports (Port Forwarding) sur votre routeur pour rediriger les ports 80 et 443 vers le serveur qui héberge le docker, ou mieux vers un Reverse Proxy. J’ai fait le choix de mettre en place un Reverse Proxy sous Nginx.

DD-WRT Port Forwarding

Sur le Reverse Proxy Nginx, créez le fichier de configuration suivant. Le mien se trouve dans /etc/nginx/rproxy/http/available.
 

Je vais sauter quelques étapes dans le tutoriel car ce serait trop long et je pars du principe que vous savez configurer Nginx et Certbot pour obtenir un certificat SSL gratuit :
– Création du fichier de configuration /etc/nginx/rproxy/http/available/music.petitsurfeur.net pour répondre sur le port 80
– Exécuter Certbot pour générer le certificat.

Au final, le fichier ressemble à ca. Pensez à modifier proxy_pass pour pointer vers le serveur qui héberge le conteneur Airsonic

Pensez à activer l’enregistrement.

Comme vous pouvez le remarquer, j’ai commenté les dernières lignes car le site ne s’affichait pas correctement et cela empêchait le streaming.

Pensez également à ouvrir les ports qu’il faut entre le Reverse Proxy et le serveur Docker.

Redémarrez le service Nginx

Et si tout fonctionne correctement, vous avez plus qu’à installer une application comme Ultrasonic sur le Google Store sur votre smartphone.

Ressources

Foire aux problèmes

mount: /media/Music: bad option

Si lorsque vous lancez le montage du répertoire partagé via la commande ‘mount -a’, vous avez le message d’erreur suivant :

<pre class=”lang:sh decode:true”>mount: /media/Music: bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program.</pre>

Il faut installer le programme suivant :

<pre class=”lang:sh decode:true”>$ aptget install cifs-utils </pre>

 

Vous aimerez aussi...