montextealternatif

Cherrymusic : Open Source Music Streaming


Rédigé par admin le Aucun commentairee

Au fil des années, on accumule des tas de morceaux de musique...(tant mieux d'ailleurs)
Au bout du compte, il y en a partout : sur l'ordi du boulot, à la maison, sur le smartphone, ... et bien souvent en double ou en triple exemplaire.

J'ai donc recherché un Server de Streaming qui soit à la fois fonctionnel, simple et esthetique.
 

J'ai trouvé celui-ci : Cherrymusic 
 

                                                 

Juste un petit regret  (mais j'essaye de trouver une solution de contournement) : le flux rencontre manifestement un soucis sur les IPad avec du SSL (Pour l'authentification, j'ai implémenté du httpS)
 

N'hesitez pas si vous avez une idée !!


Ci-dessous un retour sur l'installation.
(Accessible [A titre perso bien sur], via le lien "Music")

 

 

 

 
Quelques mots d'abord ...
  • Les differentes actions mentionnées dans cet article sont basées (entre autre..)  sur les liens suivants et sur les differents tests effectués :
http://fomori.org/blog/?p=687
http://www.jamescochran.org/2014/07/23/install-cherrymusic-on-ubuntu-14-04/

 

  • Le plan :

- Install des prérequis : Python, ..etc ( et eventuellent "GIT")
- Création du user qui va piloter l'ensemble : "cherrymusic" (ou autre nom, à votre convenance ...)

- Récupération des sources [produit & module "cherrypy"]
  (Pour les sources Cherrymusic : via GIT  ou  Manuellement)

-  Generate Initial Structure datas Files : Création  fichier "cherrymusic.conf"   &  arborescence “~/.local/share/cherrymusic/"
-  Parametrage fichier "cherrymusic.conf"  + Création Dossier "Music Collection" & des liens
-  Generate initiale file database 

- Lancement d'un "screen" [pour ecoute sur le port 8080 et 8443]
- Ajout Script au demmarage du Debian (en cas de reboot du Server)

 

 
Installation Pré-requis  :

- Python :

- version : >=2.6,  >=3.2 Preferred  [Lien]

# aptitude search python
# aptitude install python3.2

 

- Autres  : 

# aptitude install mpg123 faad vorbis-tools flac imagemagick lame python3-unidecode

 

- User "cherrymusic" :  Création  et Perms

C'est depuis ce user que sera lancé le "screen" [activation en permanance du logiciel]
C'est ce user [A Priori] qui doit aussi avoir les droits sur le dossier où se situe les fichiers MP3

# adduser cherrymusic

 

- si outil "GIT" non installé : l'installer

# aptitude search '~i git'  (verification si "GIT" déjà présent sur le serveur)
# aptitude install git (si necessaire)​

 

 
- Installation et Initialisation  du produit  :  

A faire DEPUIS le nouvel user "cherrymusic (ou autre nom choisi lors de la création du user..)

 

- Switcher sur le user "cherrymusic"

#  su cherrymusic  

 

 - Récupération des Sources  :

* Soit directement avec GIT  (On va recuperer automatiquement la dernière version dispo) 

se positionner à la racine du profil  : 
#  git clone --branch master https://github.com/devsnd/cherrymusic.git cherrymusic      

* Soit manuellement via  http://www.fomori.org/cherrymusic/Download.html

 

Récupération du module "Cherrypy"

cherrymusic@xxxxxx:~/cherrymusic$ python3.2 ./cherrymusic --help 

 

 
Parametrage du produit  :

- A faire DEPUIS le nouvel user "cherrymusic (ou autre nom ..)

 

Generate Structure Initiale datas Files : "cherrymusic.conf"   &  “~/.local/share/cherrymusic/"

"..This creates the configuration file “~/.config/cherrymusic/cherrymusic.conf” and the directory “~/.local/share/cherrymusic/”, where the user data is stored..."

# cherrymusic@vps42769:~/cherrymusic$python3.2  ./cherrymusic

 

-  Parametrage du fichier "cherrymusic.conf"  :

- Database : Parametrage du path dans le fichier de "cherrymusic.conf" :

#vim    ~/.config/cherrymusic/cherrymusic.conf

 

- Database :  Création du dossier pour la collection de musique

# cherrymusic@xxxxx:~/cherrymusic$ mkdir ~/.local/share/cherrymusic/basedir

 

- Création des Dossiers de Musiques & leurs liens :

# création des liens :
#  ln -s /srv/music/jazz  ~/.local/share/cherrymusic/basedir/jazz
#  ln -s /srv/music/divers  ~/.local/share/cherrymusic/basedir/divers
#  ln -s /srv/music/rock  ~/.local/share/cherrymusic/basedir/rock
#  ln -s /srv/music/folk  ~/.local/share/cherrymusic/basedir/folk
#  ln -s /srv/music/Aclasser  ~/.local/share/cherrymusic/basedir/Aclasser
#  ln -s /srv/music/pop  ~/.local/share/cherrymusic/basedir/pop

  - Generate initial file database update :

   "...CherryMusic uses a database to search and access files in your music collection. Before you can use CherryMusic, you need to do an initial file database update.." :
----> A ce  stade, Cherrymusic doit savoir où trouver ses bases et ce qu'il doit proposer ..

cherrymusic@vpsxxxx:~/cherrymusic$ python3.2 ./cherrymusic --update

 

 

 
Lancement  :

"Screen" : Outil permettant  de lancer une session [new terminal], et le laisser en cours , tout en permettant le retour sur le terminal principal ou la fermeture du terminal principal 

- Installation de "screen" : - (En ROOT)

# installer screen  : aptitude install screen

 

- Lancement de "screen"  - A faire DEPUIS le nouvel user "cherrymusic (ou autre nom ..) - Voir Annexes sur "Screen" en bas de page

#  su cherrymusic  
# cherrymusic@xxxxx:~/cherrymusic$ screen

 

- [Depuis ce screen] : Lancement  du server de Streaming :

# cherrymusic@xxxxx:~/cherrymusic$ python30.2 ./cherrymusic

 

- Pour sortir du screen ( "le "détacher") : 

- Partie Firewall ( si vous en avez mis un en place ..) : il ecoute sur le 8080 (et ecoutera egalement sur le 8443 (en https) - A faire donc egalement pour ce 2eme port))

 
- Authentification en SSL  :

Par défaut, les identifiants/password Cherrymusic sont envoyés en clair ... pas terrible.

Heureusement, CherryMusic prévoit cette possibilité : 
Il suffit "simplement" de créer (ou d'acheter) un certificat et parametrer le chemin dans le fichier de config :

- Parametrage fichier de Config :

root@xxxx:/home/cherrymusic# ~/.config/cherrymusic/cherrymusic.conf
ssl_enabled = True
ssl_certificate = srv/ssl/certs/david-www.csr
ssl_private_key = srv/ssl/certs/david-www.nopass.key

- Killer  le Screen en cours, et en restarter un nouveau :

screen -X -S 3354 kill

 
Annexe  "SCREEN" :

Permet de lancer une session [new terminal], et de la laisser en cours , tout en permettant le retour sur le terminal principal ou la fermeture du terminal principal 

- Pour visualiser la liste u/des Screen en cours :

# screen -ls
             3354.pts-2.vpsxxxxx    (17/09/2015 09:46:52)   (Detached)

 

- Pour visualiser le contenu d'un Screen :

screen -r [hosts.tty]
screen -r 3354 

 

- Pour detacher [=sortir] d'un/du screen :

 "Ctrl" + "a" + "d"

 

- Pour Killer un Screen :   [Lien1]   [lien2]

screen -S some_name -X quit
screen -X -S SCREENID kill
screen -X -S 3986 kill

 

- Message erreur possible :

"cannot open your terminal : '/dev/pts/o' - please check
# script /dev/null

 

 

 
Script de demmarage

En cas d'arret/redemmarage du serveur [et pour eviter de rejouer manuellement avec les "Screen"..] ,  (au moins..) deux solutions sont  envisageables :

1ere Solution :  Par Script  (Disponible directement via http://fomori.org/blog/?p=687 , ou via la section "Telechargements" )

- Telecharger le script, et positionner les perms :

chmod 700 cherrymusic-start.sh
chown cherrymusic cherrymusic-start.sh

 

- Pour tester  en Live :

su cherrymusic /bin/bash /home/cherrymusic/cherrymusic-update.sh

 

- Parametrage pour lancement au boot :   Ajout dans le fichier  “/etc/rc.local” :

# start cherrymusic server
/bin/su cherrymusic -c "/bin/bash /home/cherrymusic/cherrymusic-start.sh"

 

2eme Solution :   "As a Service" 

Je vous renvoie aux liens ci-dessous :

https://github.com/Lord-Simon/Scripts/tree/master/cherrymusic

https://it.awroblew.biz/how-to-install-and-configure-cherrymusic-on-a-debian/

 

.

DClassé dans : Linux ,Mots clés : aucun

A propos de l'auteur, admin:


Écrire un commentaire