The Longest Line

Le chemin le plus long...

[Tuto] - Sonerezh, Headphones et Transmission (ou comment gèrer et télécharger sa musique librement)

Rédigé par andy / 21 décembre 2016 / 2 commentaires

Spotify est un service vraiment parfait mais totalement proprio. Je n'ai pas vraiment pour but de générer un débat sur l'utilisation d'un tel service et sa rémunération des artistes, mais concrétement, ça me fait un peu chier de payer Spotify qui rémunère les artistes que j'écoute comme de la merde et qui reverse plein de thunes aux stars calamiteuses que sont Kanye West, etc.

Du coup, j'ai préféré m'orienter vers un autre système : continuer à acheter les disques des artisites que je soutiens et que j'écoute. en vinyl pour la postérité et pour le goût des belles choses et installer un service de téléchargement de musique...

Le voilà expliqué :

Pour ça, j'ai mis en place un serveur maison sur lequel j'ai installé plusieurs services : Sonerezh (pour remplacer Spotify) + Headphones (pour télécharger automatiquement des albums) + Transmission pour le client torrent (en daemon) + Subsonic (pour avoir accès à mes podcats en même temps que mes albums).

Prérequis :

- Serveur Debian ou Ubuntu avec LAMP (Linux Apache MySQL PHP)

- accès SSH au serveur

- git-core (apt install git)

Etape 1 : Installer Sonerezh

Installation de Sonerezh :

cd /var/www/html/
sudo git clone --branch master http://github.com/Sonerezh/sonerezh.git
sudo chown -R www-data: sonerezh/ #changement des droits pour web

Création de la base de données :

Se connecter à MySQL

mysql -u root -p


Create the database, a database user and grant privileges:

CREATE DATABASE sonerezh;
GRANT ALL PRIVILEGES ON sonerezh.* TO 'sonerezh'@'localhost' IDENTIFIED BY 'votremotdepasse';
FLUSH PRIVILEGES;
exit;

Configure your web server

Attention, il faut vraiment que le module rewrite de apache soit activé :

a2enmod rewrite

Ajouter un fichier de conf pour votre VirtualHost de Apache :

nano /etc/apache2/sites-available/sonerezh.conf

Et ajouter les lignes suivantes au fichier

<VirtualHost *:80>
ServerName votre.domaine.com
DocumentRoot /var/www/html/sonerezh
<Directory /var/www/html/sonerezh>
Options -Indexes
AllowOverride All
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
</Directory>
CustomLog /var/log/apache2/www.myserver.com-access.log "Combined"
ErrorLog /var/log/apache2/www.myserver.com-error.log
</VirtualHost>

Enregistrer le fichier et lancer les commandes suivantes pour activer le fichier de conf et redémarrer apache

a2ensite sonerezh.conf
service apache2 reload

Vous pouvez ensuite vous rendre sur : votre.domaine.com et remplir le formulaire relatif à la connexion avec MySQL :

Vous trouverez ensuite un super service qui référence super bien vos titres. Je vous laisse gérer votre configuration comme vous l'entendez : j'ai personnellement monté en NFS un dossier de mon NAS pour accèder à toutes mes musiques déjà sauvegardées.

Etape 2 : Installer Transmission-Daemon pour gérer les télchargements.

Facile, le paquet est dans les dépôts Ubuntu et Debian ! Ouais !

apt install tranmission-daemon

Il faut ensuite trifouiller un peu le fichier de configuration pour configurer Transmission.

ATTENTION DE BIEN ARRETER LE SERVICE TRANSMISSION A CHACUNE DE SES MODIFICATIONS ! VOS PARAMETRES NE SERONT PAS SAUVEGARDES SINON !

service transmission-daemon stop 
nano /etc/transmission-daemon/settings.json

Voici ma configuration sur les lignes importantes (les autres peuvent rester ainsi) :

 {
    "alt-speed-down": 10000, // pour limiter le débit download (en Ko/s)
    "alt-speed-enabled": true, // pour activer ou non cette limite

    "alt-speed-time-enabled": false, // pour activer ou non le planning

    "download-dir": "/chemin/vers/mon/NAS", // pour spécifier le repertoire de download des fichiers
   
    "ratio-limit": 2,
    "ratio-limit-enabled": false," // activer le ratio limite ou non voir au dessus pour la valeur

    "rpc-authentication-required": true,
    "rpc-bind-address": "0.0.0.0",
    "rpc-enabled": true, // pour activer ou non la page web de transmission
    "rpc-password": "votre_mot_de_passe", // votre mot de passe
    "rpc-port": 9091, // modifier le port de transmission
    "rpc-url": "/transmission/", // garder ainsi
    "rpc-username": "votre_user", // modifier votre user
    "rpc-whitelist": "127.0.0.1",
    "rpc-whitelist-enabled": false // false pour autoriser toutes les IP à se connecter : désactive donc la valeur au dessus
}

J'ai ensuite ajouté à la fin du fichier ces deux lignes pour spécifier le chemin du "black-hole", c'est-à-dire le dossier que transmission surveille pour ajouter automatiquement les torrents qui s'y trouvent.

    "watch-dir": "/chemin/vers/votre/blackhole", 
    "watch-dir-enabled": true // pour activer le balckhole
}

Attention, si vous ajoutez ou supprimer des lignes, veillez bien à ce que chaque ligne se termine par une virgule et que ladernière n'en comporte PAS. Il faut ensuite que je fichier se termine bien par un }.

Pensez à redémarrer le service :

service transmission-daemon start

Puis rendez-vous sur : http://IP_locale:9091 (ou le port que vous avez configuré).

Vous voilà équipé d'une transmission en bon état de marche !

Etape 3 - Installer Headphones

Il y a une possibilité de l'installer à la volée, mais il est important de lancer un démon qui s'éxécute au démarrage de la machine et qui tourne en arrière plan.

cd /opt
git clone https://github.com/rembo10/headphones.git
cd headphones
python Headphones.py

Arrive un moment un peu particulier : vous avez lancé le démon, mais il faut le quitter proprement. Placez donc votre curseur sur Shutdown et tapez sur Entrée.

Si vous avez un environnement de bureau, allez sur : http://IPserveur:8181 et fermer en cliquant sur shutdown.

Ensuite, Ctrl + C pour quitter le script. Vous retrouverez alors votre prompt bash classique. En tout cas, il le faut !

Créez ensuite un user Headphones pour le lancement du démon :

useradd  --no-create-home headphones # ajout de l'user
passwd headphones # changement du mot de passe optionnel

Voyons comment installer le démon de manière permanente, il faut donc éditer :

nano /etc/default/headphones

Et ajoutez-y :

HP_USER=headphones #$RUN_AS, username to run headphones under, the default is headphones

HP_HOME=/opt/headphones #$APP_PATH, the location of Headphones.py, the default is /opt/headphones
HP_DATA=/opt/headphones #$DATA_DIR, the location of headphones.db, cache, logs, the default is /opt/headphones

On ajoute ensuite le lancement automatique à chaque démarrage, en copiant le dit fichier :

cp /opt/headphones/init-scripts/init.ubuntu /etc/init.d/headphones

Et rendez le exécutable :

chmod +x /etc/init.d/headphones

Activez ensuite le script pour le démarrage :

update-rc.d headphones defaults

update-rc.d headphones enable

Modifions ensuite notre fichier config.ini généré lors du lancement du premier démon :

nano /opt/headphones/config.ini

Et ajoutez-y :

http_host = 0.0.0.0
customhost = votre.nom.de.domain.com
http_port = 8181 # attention, changez le port si un autre service l'utilise

Et enfin :

service headphones start

Vous pouvez ensuite vous rendre sur :

http://votre.domaine.com:8181

Et ensuite bidouiller votre Headphones !

 

Etape 4 - Lier Transmission et Headphones

Personnellement, j'utilise le blackhole de transmission et je dis a Headphones d'aller poser les torrents dans ce dossier : ca me permet de bien séparer et surtout de palier à un problème éventuel de Transmission et rater les checks de Headphones.

Je trouve ça bien plus simple aussi puisque je mets les torrents dans un dossier situé en NFS sur mon NAS.

Il est est bien-sûr possible de lier transmission en RPC ou de lier uTorrent (Béta pour le moment) ou Deluge (Béta également).

 

Merci d'avance pour vos retours !

N'hésitez pas à relever des erreurs et poser des questions !

 

Sources :

Headphones : 

https://mondedie.fr/d/7475-Tuto-Installer-Headphones

https://github.com/rembo10/headphones/wiki/Installation

https://github.com/rembo10/headphones/wiki/Install-as-a-daemon

Sonerezh :

https://www.sonerezh.bzh/docs/en/

Transmission :

https://doc.ubuntu-fr.org/transmission

 

2 commentaires

#1 dimanche 25 décembre 2016 @ 19:32 Cascador a dit :

Hello,

Merci pour le partage, c'est très intéressant. Un truc qui me choque c'est /var/www/html d'habitude on fout plutôt dans /var/www.

Tcho !

#2 mardi 27 décembre 2016 @ 19:01 andy a dit :

Salut.Perso oui moi je l'ai mis dans www.Cela dit, j'ai pas voulu faire le fou a modifier la doc de Sonerezh et laisser ainsi.Si le vhost est configuré correctement, ça revient au même en effet.Merci de ta participation en tout cas.A +

Écrire un commentaire

Quelle est la dernière lettre du mot lxgbc ? :