Informe - Groove Basin

Anuncio
Informe - Groove Basin
Universidad Nacional de Quilmes - Laboratorio de Redes y
Sistemas Operativos
Matias Zacarias, Javier Toledo
Julio 2016
1
Introducción
En este informe se documentará el proceso de instalación y configuración de
una aplicación de tipo cliente-servidor, Groove Basin. Se detallará la forma
correcta de instalarla en Ubuntu 16.04 y Linux Mint 17.3. Se comentarán los
problemas que surgieron durante la instalación y configuración y se tratará
de dar las posibles soluciones a estos problemas. Ademas se enumerarán los
distintos casos de usos que se han probado.
2
Groove Basin
Groove Basin es un servidor-reproductor de música que permite configurar un
servidor y asi compartir música local o remotamente. Los usuarios que accedan
al servidor por medio de la interfaz web que incluye Groove Basin o algún otro
cliente externo podran controlar el reproductor y gestionar la colección si es que
tienen los permisos adecuados.
• Caracteristicas:
– Incluye un cliente web ligero para gestionar la coleccón de música.
– Soporta el protocolo MPD, por lo que se pueden elegir entre una gran
variedad de clientes aparte del propio.
– Soporte de streamming. Permite escuchar localmente y/o hacer streamming de la música.
– Soporte scrobbling de Last.fm
– Gestión de playlists (solo usuarios admin).
– Permite descargar y agregar música.
1
Figure 1: https://github.com/andrewrk/groovebasin
3
Instalación
Para realizar la instalación se puede optar por utilizar un script de instalación,
https://github.com/matiazzz/install-groovebasin, o seguir el siguiente tutorial
en donde se detalla paso a paso el proceso.
1. Instalar node (Groove Basin necesita la versión v0.10.36 que se instalará
por medio de Node Version Manager)
$
$
$
$
$
$
$
sudo apt-get update
sudo apt-get remove --purge node nodejs
sudo apt-get install build-essential checkinstall curl libssl-dev
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash
source ~/.profile
nvm install v0.10.36
nvm use v0.10.36
2. Instalar libgroove y otras dependencias necesarias.
$ sudo apt-add-repository ppa:andrewrk/libgroove (solo para Linux Mint)
$ sudo add-apt-repository ppa:mc3man/trusty-media (solo para Linux Mint)
$ sudo apt-get update
$ sudo apt-get install git cmake ffmpeg libebur128-dev libchromaprint-dev libsdl2-dev
libavformat-dev libavcodec-dev libavfilter-dev libavutil-dev
$ sudo apt-get install libgrooveplayer-dev libgrooveloudness-dev
libgroovefingerprinter-dev libgroove-dev
3. Instalar Groove Basin (desde el codigo fuente)
$ git clone --branch 1.5.1 https://github.com/andrewrk/groovebasin.git
$ cd groovebasin/
$ npm run build
4
Configuración e inicio de Groove Basin
Antes de poder iniciar el servidor es necesario hacer unas pequeñas configuraciones.
1. Correr el comando ’npm start’ para que se creen automaticamente los
archivos de configuración. Esto va a mostrar un error, ignorarlo y continuar con el siguiente punto.
2
2. Es necesario darle permisos de lectura y escritura al archivo config.json
que se encuentra en la carpeta del proyecto que se clono anteriormente.
Para ello se ejecuta el siguiente comando:
• sudo chmod 666 config.json
3. Por ultimo abrir con cualquier editor de texto el archivo config.json para
configurar los distintos atributos disponibles. Con especificar la ruta correcta de la colección de música es suficiente para que Groove Basin funcione correctamente. De todas formas a continuación se da una breve
explicación de cada aspecto configurable.
host: Host para acceder al cliente web.
port: Puerto para acceder al cliente web.
musicDirectory: Ruta donde se encuntra la colección de música.
mpdHost: Host para el protocolo MPD.
mpdPort: Puerto para el protocolo MPD.
encodeBitRate: Calidad de audio del streamming.
4. Finalmente ejecutar el comando ’npm start’ para iniciar el servidor.
5. Luego en cualquier navegador web accedemos con la siguiente dirección:
• https://localhost:16242
* 16242 es el puerto por defecto, si se eligio otro se debe especificar el
puerto correcto.
* Para acceder de forma remota es necesario conocer la ip y el puerto
donde se encuentra alojado el servidor.
6. Dentro del cliente web se debe crear una cuenta con permisos de administrador. Para eso ir a la pestaña Settings y apretar el boton ’Make Admin
Account’, en la terminal se imprimirá el nombre y usuario de la cuenta
que luego puede cambiarse. El admin es quien decide que perimisos tienen
los demas usuarios que accedan al servidor.
5
Casos de uso y otros clientes
Ademas del cliente web se han probado otros clientes para acceder al servidor
por medio del protocolo MPD:
ncmpcpp: Se trata de un cliente para MPD que corre sobre la consola, la interfaz fue desarrollada con la libreria Ncurses. Se encuentra en los repositorios
de ubuntu y Linux Mint por lo que la instalación no tubo inconvenientes.
Se configura por medio de un archivo de texto.
3
Sonata: Es un cliente con interfaz GTK con muchas caracteriscas, tales como
letras y portadas de albunes, teclas multimedias, edición de tags, etc. La
configuración es muy simple. También se encuntra en los repositorio y
está desarrollado con GTK y python.
MPDroid: Es un cliente para dispositivos móviles con sistema operativo Android. Permite navegar por la librerı́a de música, hacer streamming y
controlar el reproductor.
Se ha levantado un servidor con una colección bastante acotada y otra mucho mas grande (aprox. 200gb). Con la primer colección todos los clientes
respondieron muy bien, sin embargo con la colección mas grande el cliente web
falló en mostrar algunos albunes que se encontraban en la colección y la interfaz
se tornó un poco lenta. Mientras que los demas clientes respondieron bastante
bien.
6
Problemas y soluciones durante la instalación
1. En un principio se instaló node con el comando sudo ’apt-get install nodejsdev nodejs-legacy npm’ como dice el readme del proyecto, pero esto instala
una versión de node distinta a la necesaria. Por lo que se uso Node Version
Manager.
2. En Ubuntu todas las dependencias se encuentran en los repositorios oficiales. Mientras que en Linux Mint fue necesario agregar un PPA para
instalarlas.
3. Al momento de compilar groovebasin hubo varios problemas por falta
de algunas dependencias como libgrooveplayer-dev libgrooveloudness-dev
libgroovefingerprinter-dev, las cuales no estan indicadas en el readme del
proyecto.
*Para resolver estos y otros problemas menores se acudió al sector de
issues del proyecto, el cual es recomendable en caso de tener un problema
que no figure aca. https://github.com/andrewrk/groovebasin/issues
7
Conclusión
Groove Basin es una herramienta util para compartir música, controlarla remotamente desde otros dispositivos distintos a donde se encuentra el servidor.
Viene con un cliente web propio por lo cual no es necesario ninguna herramienta
extra. Si bien la instalación no es muy simple como cualquier otra aplicación
no deberı́a tener mayores incovenientes si se sigue esta guı́a. La configuración
es relativamente sencilla, aunque seria muy bueno que en un futuro se pueda
configurar por medio de una interfaz más amigable para el usuario. El hecho
4
de que soporte el protolo MPD es muy bueno por que se pueden elegir entre
muchos clientes acordes a las necesadidades de cada usuario.
5
Descargar