Si comme moi vous êtes passionné de musique, vous pourriez avoir envie d’écouter facilement un de vos albums où que vous soyez. Il n’est pas toujours pratique de trimbaler partout ses CD ou ses vinyles, alors vous avez sans doute déjà dématérialisé une partie de vos galettes (et avec de jeunes enfants une petite sauvegarde n’est jamais superflue). Mais vous retombez sur un autre souci qui est d’avoir sur vous votre collection de MP3. Plus pratique que le CD, mais pas forcément idéal non plus. Le serveur de streaming musical peut être la solution.

Ce billet fait suite à la mise en place d’un serveur domestique pour l’auto-hébergement, et la mise en place également de Owncloud.

Quel choix pour le serveur de streaming ?

La partie musicale de Owncloud étant un peu limité, j’ai préféré opter pour une solution de streaming musicale à part entière. J’ai hésité entre deux solutions qui paraissaient intéressantes : Ampache et Subsonic.
J’ai finalement opté pour la deuxième solution, notamment parce que Subsonic propose une application Android. Et parce que j’ai vu qu’il y avait également un développement d’une interface en html5.

Installation de Subsonic

L’installation de base est très simple et immédiate, l’application étant dans les dépôts. Il suffit de suivre les instructions sur le site officiel. En revanche, et c’est signalé à la fin de l’installation, l’application tourne par défaut en tant que root. L’idéal est donc de changer cela, car si l’application a une faille les conséquences pourraient être lourdes. Il existe différents tutos sur le net pour faire cela, notamment celui-ci.
Par défaut également Subsonic utilise le port 4040. Cela veut donc dire que si vous souhaitez accéder à votre serveur de streaming Subsonic de l’extérieur, il vous faudra ouvrir ce port sur votre routeur et/ou votre firewall. En tapant l’adresse de votre serveur suivi de :4040 vous arrivez donc sur l’écran de login :

subsonic login

Il ne vous reste plus qu’à vous connecter avec le compte admin défini à l’installation.

Paramétrage et utilisation de Subsonic

La première étape va être de définir les dossiers dans lesquels sont stockés vos fichiers musicaux. Pour cela, une fois connecté il faut vous rendre dans la partie paramètres

subsonic parametres

Dans paramètres, vous avec un sous-élément « Dossier de musique ». Vous allez pouvoir indiquer le ou les chemins d’accès à vos fichiers et faire cliquer ensuite sur « Scan media folders now ». Ce scan se fera ensuite régulièrement à la fréquence que vous indiquerez.

Une fois que Subsonic a scanné vos répertoires, vous pourrez déjà profiter de vos musiques.

Dans les paramètres, vous aurez également la possibilité de créer des comptes utilisateurs, en définissant pour chacun des droits et d’éventuelles restrictions.
Vous pourrez même au besoin changer les paramètres d’encodage.
Bref, vous avez la main sur pas mal de choses pour gérer votre serveur de streaming.

En allant sur la page d’accueil, vous aurez sur la partie gauche vos sous dossiers de musique classés par ordre alphabétique, au milieu un une sélection d’albums tournant et en bas le lecteur et votre liste de lecture

subsonic accueil 2

Vous pourrez également dans la partie centrale naviguer au travers des onglets proposés : nouveaux, mieux notés, récemment joués…

A noter la possibilité d’intégrer des podcasts et de la vidéo (deux parties que je n’ai pas encore eu l’occasion de tester).

Si vous n’appréciez pas l’une des interfaces proposées par Subsonic, sachez qu’en allant dans l’onglet « Plus » vous aurez accès à MiniSub, un lecteur pour Subsonic en HTML5 :

minisub

L’interface est un peu plus « up to date ». Pour qu’il soit fonctionnel, il vous faudra saisir dans ce lecteur votre login, mot de passe et l’url du serveur (via la roue dentée des paramètres).

Un mot également sur l’application Android, qui est un atout non négligeable. L’interface est claire, bien adaptée au mobile. Il existe même un mode offline (que je n’ai pas encore eu l’occasion d’utiliser). A savoir que l’application mobile n’est utilisable que 30 jours. Au delà, il vous faudra passer en compte premium Subsonic. Mais au vue des fonctions apportées et du tarif (12€ / an, soit 1€ par mois, même pas un café), cela serait dommage de ne pas sauter le pas et de soutenir du même coup le développement de ce bel outil.

Reverse proxy si port 4040 bloqué en sortie

Je viens de rencontrer un cas dans une entreprise où le port 4040 était bloqué en sortie. Du coup, impossible d’aller écouter la musique sur mon serveur. Qu’à cela ne tienne, avec un vhost et un reverse proxy vous pouvez contourner le problème. Cela permettra d’utiliser le port 80, et une fois le trafic sur votre serveur de le rediriger vers le 4040.
Créez d’abord un sous-domaine si cela n’est pas déjà fait pour l’accès à subsonic (cela vous permettra dans le virtual host d’identifier le trafic entrant pour Subsonic, car le trafic entrera maintenant par le port 80, il sera mélangé avec tout le trafic web et il faut donc l’isoler pour éviter d’impacter le reste).
Ensuite, il vous faut créer le vhost :

<VirtualHost *:80>
ServerName sousdomaine.domaine.fr
ServerAdmin mail@domaine.fr
ErrorLog /var/log/apache2/subsonic.log
<Proxy *:80>
Order allow,deny
Allow from all
</Proxy>
ProxyPass / http://127.0.0.1:4040/
ProxyPassReverse / http://127.0.0.1:4040/
</VirtualHost>

Subsonic est maintenant joignable de l’extérieur par le port 80, le vhost se chargeant de la cuisine interne et de la redirection vers le port 4040. Ainsi, si le port 4040 est bloqué là où vous vous trouvez, vous aurez tout de même accès à votre musique.

Avec Subsonic, vous aurez donc toutes les cartes en main pour créer votre Deezer ou Spotify like à la maison.