{"id":689,"date":"2020-07-23T20:00:42","date_gmt":"2020-07-23T20:00:42","guid":{"rendered":"https:\/\/asgardius.company\/?p=83"},"modified":"2020-07-23T20:00:42","modified_gmt":"2020-07-23T20:00:42","slug":"como-crear-nuestro-propio-servidor-de-streaming-de-musica-con-ampache-y-una-raspberry-pi","status":"publish","type":"post","link":"https:\/\/asgardius.company\/?p=689","title":{"rendered":"Como crear nuestro propio servidor de streaming de m\u00fasica con Ampache y una Raspberry Pi"},"content":{"rendered":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/asgardius.company\/wp-content\/uploads\/2021\/06\/Ampache_Logo.png\" alt=\"\" class=\"wp-image-84\"\/><figcaption>Logo del software Ampache<\/figcaption><\/figure><\/div>\n\n\n\n<p>En el tutorial anterior vimos como configurar un reproductor de m\u00fasica con Music Player Daemon. En este veremos como escuchar nuestra biblioteca musical de forma remota con Ampache, un software que nos permitir\u00e1 montar nuestro propio servidor de streaming de audio. Ser\u00eda algo parecido a Spotify, pero con nuestra m\u00fasica. Este tutorial utiliza una Raspberry Pi como referencia, pero se puede utilizar cualquier ordenador con una distribuci\u00f3n GNU\/Linux basada en Debian. En caso de haber seguido el tutorial anterior, probablemente ya tengamos una biblioteca musical en nuestro servidor (utilizaremos la ruta \/home\/music como ejemplo en este tutorial). En caso contrario necesitaremos copiar nuestra m\u00fasica a un directorio. En caso de que vayamos a instalar Music Player Daemon mas tarde tendremos que darle permisos de lectura al directorio despues de copiar nuestra m\u00fasica<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo chmod -R 755 \/home\/music<\/code><\/pre>\n\n\n\n<p>En caso de que solo vayamos a utilizar nuestra bilbioteca musical con Ampache es preferible utilizar algo m\u00e1s seguro<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo chown -R www-data:www-data \/home\/music<\/code><\/pre>\n\n\n\n<p>Instalaremos las dependencias<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo apt install apache2 php php-mysql mariadb-server php-json php-curl php-xml php-gd composer git<\/code><\/pre>\n\n\n\n<p>Opcionalmente se puede installar FFMPEG para la transcodificaci\u00f3n (recomendable si nuestra m\u00fasica est\u00e1 en un formato diferente a ogg o mp3)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo apt install ffmpeg<\/code><\/pre>\n\n\n\n<p>Habilitaremos mod_rewrite<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo a2enmod rewrite<\/code><\/pre>\n\n\n\n<p>Lo configuraremos editando el archivo de vhost actual<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo nano \/etc\/apache2\/sites-enabled\/000-default.conf<\/code><\/pre>\n\n\n\n<p>Busaremos la siguiente linea<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;\/virtualhost><\/code><\/pre>\n\n\n\n<p>Agregaremos lo siguiente justo antes de dicha linea<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;Directory \/var\/www\/html>\nOptions -Indexes +FollowSymLinks\nAllowOverride All\nRequire all Granted\n&lt;\/Directory><\/code><\/pre>\n\n\n\n<p>Reiniciamos Apache para aplicar los cambios<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo systemctl restart apache2<\/code><\/pre>\n\n\n\n<p>Ahora configuraremos MariaDB<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo mysql_secure_installation<\/code><\/pre>\n\n\n\n<p>Cuando nos pregunte por la contrase\u00f1a ra\u00edz actual de Mysql presionamos enter sin introducir nada, despues nos preguntar\u00e1 si deseamos cambiar la contrase\u00f1a, a lo cual decimos que si. Despues de cambiar la contrase\u00f1a nos har\u00e1 m\u00e1s preguntas, a las cuales contestamos si. Ahora entraremos a la consola de MariaDB<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo mysql -u root<\/code><\/pre>\n\n\n\n<p>Dentro de esta crearemos una nueva base de datos<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE DATABASE ampache;<\/code><\/pre>\n\n\n\n<p>Ahora crearemos un nuevo usuario con permisos para acceder a la base de datos (este m\u00e9todo solo funciona en MariaDB, pero no con Mysql)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>GRANT ALL ON ampache.* TO 'ampache'@'localhost' IDENTIFIED BY 'password';<\/code><\/pre>\n\n\n\n<p>Salimos de la consola de MariaDB y ajustamos los permisos del directorio ra\u00edz de apache<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo chown -R www-data:www-data \/var\/www\/html<\/code><\/pre>\n\n\n\n<p>Ahora entramos a la consola del usuario http<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo -u www-data bash<\/code><\/pre>\n\n\n\n<p>Despues nos movemos a la carpeta ra\u00edz de apache<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ cd \/var\/www\/html<\/code><\/pre>\n\n\n\n<p>Despues descargamos el c\u00f3digo fuente de ampache desde github<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ git clone -b master https:\/\/github.com\/ampache\/ampache.git ampache<\/code><\/pre>\n\n\n\n<p>Nos movemos al directorio del c\u00f3digo fuente<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ cd ampache<\/code><\/pre>\n\n\n\n<p>Y ahora lo compilamos<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ composer install --prefer-source --no-interaction<\/code><\/pre>\n\n\n\n<p>Ahora abriremos el navegador e introduciremos la direcci\u00f3n de nuestra nueva instancia de Ampache (por ejemplo http:\/\/127.0.0.1\/ampache).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/asgardius.company\/wp-content\/uploads\/2021\/06\/2020-07-23-111505_1366x768_scrot-1024x576.png\" alt=\"\" class=\"wp-image-93\"\/><\/figure>\n\n\n\n<p>Nos preguntar\u00e1 el idioma, al dar a siguiente nos mostrar\u00e1 cierta informaci\u00f3n sobre nuestro servidor.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/asgardius.company\/wp-content\/uploads\/2021\/06\/2020-07-23-111654_1366x768_scrot-1024x576.png\" alt=\"\" class=\"wp-image-94\"\/><\/figure>\n\n\n\n<p>En caso de haber hecho bien las cosas no deber\u00eda aparecer ning\u00fan error acerca de caracter\u00edsticas requeridas, las advertencias sobre caracter\u00edsticas opcionales se pueden ignorar. Una vez revisado todo le daremos a siguiente.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/asgardius.company\/wp-content\/uploads\/2021\/06\/2020-07-23-112403_1366x768_scrot-1024x576.png\" alt=\"\" class=\"wp-image-95\"\/><\/figure>\n\n\n\n<p>En esta pantalla nos pedir\u00e1 las credenciales para la base de datos. Al darle siguiente nos preguntar\u00e1 algunas cosas. Les recomiendo que lo dejen como est\u00e1 a menos que se vaya a utilizar la transcodificaci\u00f3n, donde en este caso seleccionaremos la plantilla ffmpeg.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/asgardius.company\/wp-content\/uploads\/2021\/06\/2020-07-23-112701_1366x768_scrot-1024x576.png\" alt=\"\" class=\"wp-image-96\"\/><\/figure>\n\n\n\n<p>Le daremos en crear configuraci\u00f3n y en la siguiente pantalla nos pedir\u00e1 crear una cuenta de administrador.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/asgardius.company\/wp-content\/uploads\/2021\/06\/2020-07-23-112910_1366x768_scrot-1024x576.png\" alt=\"\" class=\"wp-image-97\"\/><\/figure>\n\n\n\n<p>Puede que despues de esto nos lleve al actualizador.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/asgardius.company\/wp-content\/uploads\/2021\/06\/2020-07-23-112935_1366x768_scrot-1024x576.png\" alt=\"\" class=\"wp-image-98\"\/><\/figure>\n\n\n\n<p>En este caso le damos en actualizar ahora y en la pantalla siguiente le damos en volver a p\u00e1gina principal.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/asgardius.company\/wp-content\/uploads\/2021\/06\/2020-07-23-113257_1366x768_scrot-1024x576.png\" alt=\"\" class=\"wp-image-99\"\/><\/figure>\n\n\n\n<p>Una vez que iniciemos sesi\u00f3n nos avisar\u00e1 que no tenemos ning\u00fan cat\u00e1logo<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/asgardius.company\/wp-content\/uploads\/2021\/06\/2020-07-23-121451_1366x768_scrot-1024x576.png\" alt=\"\" class=\"wp-image-100\"\/><\/figure>\n\n\n\n<p>Le damos en Agregar Cat\u00e1logo e introducimos la informaci\u00f3n correspondiente<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/asgardius.company\/wp-content\/uploads\/2021\/06\/2020-07-23-122223_1366x768_scrot-1024x576.png\" alt=\"\" class=\"wp-image-101\"\/><\/figure>\n\n\n\n<p>Una vez que agreguemos el cat\u00e1logo se comenzar\u00e1 a escanear el contenido de la carpeta seleccionada. Se recomienda mantener abierta la ventana del navegador hasta que el proceso termine.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/asgardius.company\/wp-content\/uploads\/2021\/06\/2020-07-23-122334_1366x768_scrot-1024x576.png\" alt=\"\" class=\"wp-image-102\"\/><\/figure>\n\n\n\n<p>Una vez que el proceso termine solo falta revisar que la informaci\u00f3n sea correcta y agregar los avatares de los artistas, ya que debido a un bug presente en la versi\u00f3n actual no los busca por defecto.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/asgardius.company\/wp-content\/uploads\/2021\/06\/2020-07-23-122926_1366x768_scrot-1024x576.png\" alt=\"\" class=\"wp-image-103\"\/><\/figure>\n\n\n\n<p>Se recomienda agregar las biograf\u00edas que hagan falta, pero es un paso opcional. Podemos escuchar nuestra m\u00fasica desde cualquier navegador moderno o desde cualquier cliente compatible con Ampache o Subsonic. Para android les recomiendo Audinaut o Ultrasonic, ya que permiten guardar la m\u00fasica para escuchar sin conexi\u00f3n. Tambi\u00e9n podemos abrir el puerto 80 en el router para acceder a nuestra biblioteca estando fuera de casa. En caso de hacerlo les recomiendo Audinaut en lugar de Ultrasonic, ya que facilita dicha configuraci\u00f3n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En el tutorial anterior vimos como configurar un reproductor de m\u00fasica con Music Player Daemon. En este veremos como escuchar nuestra biblioteca musical de forma remota con Ampache, un software que nos permitir\u00e1 montar nuestro propio servidor de streaming de audio. Ser\u00eda algo parecido a Spotify, pero con nuestra m\u00fasica. Este tutorial utiliza una Raspberry&hellip; <a class=\"more-link\" href=\"https:\/\/asgardius.company\/?p=689\">Seguir leyendo <span class=\"screen-reader-text\">Como crear nuestro propio servidor de streaming de m\u00fasica con Ampache y una Raspberry Pi<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-689","post","type-post","status-publish","format-standard","hentry","category-sin-categoria","entry"],"_links":{"self":[{"href":"https:\/\/asgardius.company\/index.php?rest_route=\/wp\/v2\/posts\/689","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/asgardius.company\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/asgardius.company\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/asgardius.company\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/asgardius.company\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=689"}],"version-history":[{"count":0,"href":"https:\/\/asgardius.company\/index.php?rest_route=\/wp\/v2\/posts\/689\/revisions"}],"wp:attachment":[{"href":"https:\/\/asgardius.company\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=689"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/asgardius.company\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=689"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/asgardius.company\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=689"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}