Tutorial

Cómo instalar el servidor Ampache de transmisión de música en Ubuntu 18.04

ApacheUbuntu 18.04

El autor seleccionó a Open Internet/Free Speech Fund para recibir una donación como parte del programa Write for DOnations.

Introducción

Ampache es un servidor de transmisión de música de código abierto que le permite alojar y administrar su colección de música digital en su propio servidor. Ampache puede transmitir su música a su computadora, smartphone, tableta o TV inteligente. Esto quiere decir que no tiene que guardar varias copias de su música en el dispositivo que desee usar para escucharla. Con Ampache, puede administrar su colección en su servidor usando la interfaz web de Ampache y escucharla en cualquier lugar.

A lo largo de este tutorial, instalará y configurará el servidor web Apache y PHP que presentarán su instancia de Ampache. A continuación, creará una base de datos MySQL que Ampache usará para almacenar toda su información operativa. Por último, debe cargar su colección de música para poder comenzar a transmitirla.

Requisitos previos

Para completar esta guía, necesitará lo siguiente:

Paso 1: Instalar Ampache

En este paso, decargará el archivo ZIP de Ampache en su servidor, lo descomprimirá en su directorio de inicio de instalación y realizará algunos cambios necesarios en el sistema de archivos.

Primero, inicie sesión en su servidor como non-root user. A continuación, cree el directorio principal de Ampache con el siguiente comando:

  • sudo mkdir /var/www/ampache

Luego, instale la utilidad zip que necesita para descomprimir el archivo de Ampache:

  • sudo apt install zip

A continuación, descargue el archivo ZIP de la última versión. Puede encontrar la última versión en la página de GitHub de Ampache. En estos ejemplos, se utiliza la versión 4.1.1:

  • wget https://github.com/ampache/ampache/releases/download/4.1.1/ampache-4.1.1_all.zip

A continuación, descomprima el archivo ZIP en el directorio /var/www/ampache/ usando la opción -d:

  • sudo unzip ampache-4.1.1_all.zip -d /var/www/ampache/

A continuación, establezca el usuario y la identidad de grupo de los archivos de Ampache para que Apache pueda leer, escribir y ejecutar los archivos de la instancia de Ampache:

  • sudo chown --recursive www-data:www-data /var/www/ampache/

La opción --recursive hace que chown cambie la propiedad y la identidad de grupo de todos los archivos y del subdirectorio en /var/www/ampache/ al usuario y el grupo de Apache www-data.

A continuación, cambie el nombre de los archivos .htaccess incluidos en el archivo ZIP. Los archivos .htaccess contienen información de seguridad y funcionamiento para Apache, pero solo funcionarán con el nombre de extensión de archivo .htaccess. Cambie el nombre de los archivos suministrados .htaccess.dist a .htaccess con los siguientes comandos:

  • sudo mv /var/www/ampache/rest/.htaccess.dist /var/www/ampache/rest/.htaccess
  • sudo mv /var/www/ampache/play/.htaccess.dist /var/www/ampache/play/.htaccess
  • sudo mv /var/www/ampache/channel/.htaccess.dist /var/www/ampache/channel/.htaccess

Ahora, creará el directorio que contendrá sus archivos de música. Por motivos de seguridad, conviene más crear este directorio fuera del directorio de instalación de Ampache. De esta manera, las solicitudes web maliciosas no podrán realizar en él operaciones de lectura ni cambios debido a que se encuentra fuera del DocumentRoot de Ampache.

Cree el directorio /data/Music con el siguiente comando:

  • sudo mkdir -p /data/Music

A continuación, cambie su propiedad y su identidad de grupo para que Apache pueda realizar tareas de lectura y escritura en él:

  • sudo chown www-data:www-data /data/Music

Para finalizar la configuración, instalará FFmpeg: una utilidad que convierte el audio y el video de un formato a otro. Por ejemplo, puede usarlo para convertir un archivo de música MP3 alk formato OPUS. Ampache utiliza FFmpeg para realizar, sobre la marcha, una conversión del formato en el que se cargó a uno que pueda reproducir el dispositivo desde el que se escucha. Este es un proceso conocido como conversión de código.

Resulta útil porque no todos los dispositivos pueden reproducir todos los formatos de música. Ampache puede detectar los formatos que son compatibles con el dispositivo de reproducción y ofrecer su música automáticamente en el formato compatible.

Instale FFmpeg con el siguiente comando:

  • sudo apt install ffmpeg

De esta manera, descomprimió y preparó su instancia de Ampache para el instalador web e instaló la utilidad FFmpeg. A continuación, configure Apache y PHP para presentar su instancia de Ampache.

Paso 2: Configurar Apache y PHP

En esta sección, configurará Apache creando un nuevo archivo VirtualHost, que proporcionará la configuración que Apache necesita para presentar su dominio del servidor Ampache. También instalará algunos módulos PHP adicionales que amplían las capacidades de PHP para cumplir los requisitos de Ampache.

Primero, instale algunos módulos PHP adicionales que no se incluyeron con la instalación predeterminada de PHP:

  • sudo apt install php-mysql php-curl php-json php-gd php7.2-xml

Estos módulos proporcionan la siguiente funcionalidad adicional:

  • php-mysql: permite que PHP se comunique con una base de datos MySQL.
  • php-curl: permite que PHP use la utilidad curl para descargar archivos, como las portadas de álbumes, desde servidores remotos.
  • php-json: permite que PHP lea y manipule archivos de texto en formato JSON.
  • php-gd: permite que PHP manipule y cree archivos de imagen.
  • php7.2-xml: permite que PHP lea y manipule archivos de texto en formato XML.

A continuación, habilite un par de módulos de Apache usando la utilidad a2enmod:

  • sudo a2enmod rewrite expires

Estos módulos de Apache le permiten hacer lo siguiente:

  • rewrite: modificar o volver a escribir URL conforme a las reglas provistas por Ampache.
  • expires: establece la caducidad de la caché para objetos como imágenes a fin de que los navegadores los almacenen de forma más eficiente.

Ahora, creará el archivo VirtualHost que indicará a Apache cómo y dónde cargar la instancia de Ampache.

Nota: Si creó un archivo de prueba VirtualHost que utiliza su nombre de dominio de Ampache cuando siguió la guía “Cómo instalar la pila Linux, Apache, MySQL y PHP (LAMP) en Ubuntu 18.04”, debe deshabilitarlo. Para hacerlo, use la utilidad a2disite.

  • sudo a2dissite test_virtalhost_file

Ahora, cree y abra el archivo VirtualHost con su editor de texto en /etc/apache2/sites-available/ampache.conf:

  • sudo nano /etc/apache2/sites-available/ampache.conf

Añada la siguiente plantilla VirtualHost a su archivo:

/etc/apache2/sites-available/ampache.conf
<VirtualHost *:80>

    ServerName your_domain
    DocumentRoot /var/www/ampache

    <Directory /var/www/ampache/>
        AllowOverride All
        Require all granted
    </Directory>

    RewriteEngine on
    CustomLog /var/log/apache2/ampache.access.log common
    ErrorLog  /var/log/apache2/ampache.error.log

</VirtualHost>

Debe cambiar your_domain por el nombre de dominio que redirigió a su servidor. Cuando termine de editar este archivo, guarde y cierre el editor.

Las directivas de este archivo VirtualHost son las siguientes:

  • ServerName: nombre de dominio que Apache usará para presentar su instancia de Ampache.
  • DocumentRoot: ubicación del sistema de archivos en su servidor donde se encuentra la instancia de Ampache. Es la misma ubicación en la que descomprimió el archivo ZIP en el paso 1.
  • Directory: esta sección transmite a Apache configuración que se aplica a los archivos y directorios que contiene la ruta.
  • RewriteEngine: habilita el módulo de reescritura de Apache.
  • CustomLog: crea un archivo de registro que Apache usará para asentar todos los registros de acceso de su servidor Ampache.
  • ErrorLog: crea un archivo de registro que Apache usará para asentar todos los registros de error generados por su servidor Ampache.

A continuación, compruebe que en el archivo VirtualHost que creó no halla errores con la utilidad apachectl:

  • sudo apachectl configtest

Si su configuración no contiene errores, verá el siguiente resultado después del comando:

Output
Syntax OK

Si su configuración contiene errores, en el resultado se imprimirán el nombre del archivo y el número de línea en los que se encontró el error.

Nota: Si ve el error

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message

deberá editar el archivo de configuración principal de Apache en /etc/apache2/apache2.conf y añadir la siguiente línea:

ServerName your_domain

A continuación, habilite la nueva configuración de VirtualHost usando la utilidad a2ensite:

  • sudo a2ensite ampache

La configuración final es opcional, pero se recomienda. La configuración predeterminada para las cargas de archivos en PHP no admite más de 2 MB. Los archivos de música suelen ser más grandes. Por ello, si aumenta este tamaño podrá usar la interfaz de Ampache para cargar archivos más grandes en su colección de música.

Abra /etc/php/7.2/apache2/php.ini con el siguiente comando:

  • sudo nano /etc/php/7.2/apache2/php.ini

Y cambie estas líneas

/etc/php/7.2/apache2/php.ini
. . .
upload_max_filesize = 2M
. . .
post_max_size = 8M
. . .

por lo siguiente:

/etc/php/7.2/apache2/php.ini
. . .
upload_max_filesize = 100M
. . .
post_max_size = 110M
. . .

Ahora podrá cargar archivos de música de hasta 100 MB. Utilice un valor más grande si desea cargar archivos de tamaño superior a este. Guarde el archivo y ciérrelo.

Por último, vuelva a cargar su configuración actualizada de Apache:

  • sudo systemctl reload apache2.service

Con esto, habrá configurado Apache para presentar Ampache en HTTP. A continuación, obtendrá un certificado TLS y configurará Apache a fin de usarlo para acceder de forma segura a Ampache en HTTPS.

Paso 3: Habilitar HTTPS

En este paso, obtendrá un certificado gratuito TLS de Let’s Encrypt usando la utilidad Certbot, permite navegar en HTTPS. Certbot creará el certificado, generará automáticamente la configuración necesaria de Apache y gestionará la renovación automática del certificado.

Es importante, porque cada vez que inicie sesión en Ampache enviará su nombre de usuario y contraseña por Internet. Si no utiliza HTTPS, la contraseña se enviará en texto simple que se podrá leer cuando viaje a través de Internet.

En las versiones LTS de Ubuntu no se suelen incluir los paquetes más recientes y lo mismo pasa con el programa Certbot. Los desarrolladores de Certbot mantienen un repositorio específico de Ubuntu, conocido como PPA, para que los usuarios de Ubuntu puedan contar con una copia actualizada de Certbot.

Instale el repositorio de Certbot con el siguiente comando:

  • sudo add-apt-repository ppa:certbot/certbot

Ahora, instale la utilidad certbot:

  • sudo apt install python-certbot-apache

A continuación, utilice certbot para obtener el certificado TLS:

  • sudo certbot --apache -d your_domain

La opción --apache usa el complemento de Apache que permite a Certbot leer y configurar Apache automáticamente. -d your_domain​​​ especifica el nombre de dominio para el cual quiere que Certbot cree el certificado.

Cuando ejecute el comando certbot, se le le harán unas preguntas. Se le solicitará ingresar una dirección de correo electrónico y aceptar los términos de servicio.

Si certbot confirma correctamente que controla su dominio, le solicitará configurar sus ajustes de HTTPS:

Output
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. ------------------------------------------------------------------------------- 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. ------------------------------------------------------------------------------- Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
  • No redirect: Apache presentará Ampache a través de HTTP y HTTPS.
  • Redirect: Apache redirigirá cualquier conexión HTTP a HTTPS automáticamente. Esto significa que su servidor Ampache solo estará disponible a través de HTTPS. Esta opción es más segura y no afectará al comportamiento de su instancia de Ampache. Es la opción recomendada.

Por último, verifique que realice correctamente la renovación automática del certificado ejecutando el siguiente comando:

  • sudo certbot renew --dry-run

La opción --dry-run implica que certbot probará un intento de renovación sin realizar cambios permanentes en su servidor. Si la prueba se realiza correctamente, el resultado incluirá la siguiente línea:

Output
Congratulations, all renewals succeeded. The following certs have been renewed: /etc/letsencrypt/live/your_domain/fullchain.pem (success)

Ahora, Apache y PHP estarán listos para presentar su instancia de Ampache. En el siguiente paso, creará y configurará la base de datos de Ampache.

Paso 4: Crear una base de datos MyQSL

Ampache utiliza una base de datos MySQL para almacenar información; por ejemplo, listas de reproducción y preferencias de usuarios, entre otros datos. En este paso, creará un usuario de base de datos y de MySQL que Ampache usará para acceder.

Deberá elegir tres informaciones para completar las siguientes instrucciones y crear la base de datos de Ampache:

  1. ampache_database: nombre de la base de datos de Ampache.
  2. database_user: usuario de MySQL que Ampache empleará para acceder a la base de datos. No es un usuario de un sistema y solo puede acceder a la base de datos.
  3. database_password: contraseña del usuario de la base de datos. Asegúrese de elegir una contraseña segura.

Anote estos datos; los necesitará más tarde.

Primero, abra el shell interactivo de MySQL con el comando mysql:

  • mysql --user=root --password

--user=root abre el shell de MySQL como el usuario root y --password solicita ingresar la contraseña del usuario root.

Con el siguiente comando se creará una base de datos vacía:

  • CREATE DATABASE ampache_database;

A continuación, cree el usuario MySQL:

  • CREATE USER 'database_user'@'localhost' IDENTIFIED BY 'database_password';

Ahora, dé al nuevo usuario acceso completo a la base de datos:

  • GRANT ALL PRIVILEGES ON ampache_database.* TO 'database_user'@'localhost';

Por último, compruebe que exista una nueva base de datos ejecutando el siguiente comando:

  • SHOW DATABASES;

Verá lo siguiente:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| ampache_database  |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

Cierre el shell de MySQL ingresando exit;.

Por último, pruebe la base de datos, el nombre de usuario y la contraseña intentando iniciar sesión en el shell de MySQL con database_user.

Ingrese el siguiente comando para iniciar sesión con el shell de MySQL como el nuevo usuario:

  • mysql --user=database_user --password ampache_database

Con esto, habrá creado la base de datos que Ampache usará. De esta manera, finalizó la configuración de su servidor y está listo para completar la instalación con el instalador web.

Paso 5: Usar el instalador web

En este paso, usará el instalador web de Ampache a fin de completar la instalación proporcionando a Ampache la información que necesita para ejecutarse, como un usuario administrador de la interfaz web, detalles de la base de datos y otros ajustes.

Inicie la instalación web ingresando https://your_domain en su navegador.

Elija el idioma de la instalación

Seleccione el idioma de la interfaz de Ampache y haga clic en el botón Start Configuration para continuar.

Requisitos

Esta es la página en la que Ampache comprueba que el servidor cumpla los requisitos. Cada línea de esta página representa una prueba que el instalador realiza para asegurarse de que, por ejemplo, todos los módulos PHP requeridos estén presentes y funcionando. Verá que cada prueba tiene una marca de verificación verde que indicará que su servidor está listo para Ampache.

Haga clic en el botón Continue para pasar a la siguiente página.

Introduzca la base de datos de Ampache

En esta página se crea la base de datos de Ampache si no existe y le da formato. Complete los campos como se muestra a continuación:

  • Desired Database Name: ampache_database
  • MySQL Hostname: localhost
  • MySQL Port (optional):<EMPTY>
  • MySQL Administrative Username: database_user
  • MySQL Administrative Password: database_password
  • Cree una base de datos:<UNCHECKED>
  • Create Tables (ampache.sql):<CHECKED>
  • Create Database User:<UNCHECKED>

Imagen del formulario completado

Haga clic en el botón Insert database para continuar.

Genere el archivo de configuración

En esta página se crea el archivo de configuración que Ampache usará para ejecutarse. Complete los campos como se indica a continuación:

  • Web Path:<EMPTY>

  • Database Name: ampache_database

  • MySQL Hostname: localhost

  • MySQL Port (optional):<EMPTY>

  • MySQL Username: database_user

  • MySQL Password: database_password

Imagen del formulario completado

  • Installation Type​​​ Deje el ajuste predeterminado.

  • Allow Transcoding​​​1​​​ Seleccione ffmpeg de la lista desplegable.

  • Players Deje el ajuste predeterminado.

Haga clic en el botón Create Config para continuar.

Cree una cuenta de administrador

En esta página se crea el primer usuario de la interfaz web. Este usuario se crea con privilegios administrativos completos y es el que usará para iniciar sesión y configurar Ampache por primera vez.

Seleccione un nombre de usuario y una contraseña segura e ingréselos en los campos Password y Confirm Password.

Haga clic en el botón Create Account para continuar.

Actualización de Ampache

Esta página realizará los cambios administrativos necesarios en la base de datos de Ampache. Estos cambios se realizan durante las actualizaciones de versiones. Sin embargo, dado que esta es una nueva instalación, el instalador no realizará cambios.

Haga clic en el botón Update Now! para continuar.

Actualización de Ampache

Esta página imprime y explica cualquier actualización que el instalador realizó en el paso anterior. No debería ver actualizaciones enumeradas.

Haga clic en el enlace [Return to main page] para continuar accediendo a la página de inicio de sesión. Ingrese el nombre de usuario y la contraseña que configuró para iniciar sesión en su servidor Ampache.

Apache no está completamente configurado ni listo para usarse. Ahora completará la configuración añadiendo su música para poder comenzar a usar el nuevo servidor Ampache.

Paso 6: Agregar su música a Ampache

Un servidor de música no tiene sentido si no hay música para reproducir. En este paso, configurará un catálogo de música y cargará un poco. “Catalog” es el nombre que Ampache da a una colección de música. Apache puede leer música de muchas fuentes, tanto conectado como desconectado del servidor, pero en este tutorial cargará y almacenará su música en el servidor en un catálogo local al que Ampache hace referencia.

Primero, haga clic en el enlace add a Catalog en la siguiente línea de la primera página que verá cuando inicie sesión en Ampache:

No hay catálogos configurados aún. Para comenzar a transmitir sus archivos multimedia, ahora debe añadir un Catálogo.

Esto lo llevará a la página Add Catalog. Complete los campos como se indica a continuación:

  • Catalog Name: Give this catalog a short, memorable name.
  • Catalog Type: local
  • Filename Pattern:<EMPTY>
  • Folder Pattern: deje la configuración predeterminada.
  • Gather Art:<CHECKED>
  • Build Playlists from Playlist Files. (m3u, m3u8, asx, pls, xspf):<UNCHECKED>
  • Path: /data/Music

Imagen del formulario Add Catalog completo

Haga clic en el botón Add Catalog para completar esta página.

En la página que sigue, haga clic en el botón Continue. Con esto, accederá a la página Show Catalogs que imprimirá los detalles del catálogo que creó. Luego de esto, podrá cambiar las configuraciones del catálogo en cualquier momento.

Ahora, habilite la utilidad de carga web de Ampache haciendo clic en el tercer ícono de navegación para abrir los ajustes ampliados:

Imagen del tercer ícono de configuración

Desplácese hacia la sección Server Config y haga clic en el enlace System para abrir la página de configuración del sistema.

Busque la línea Allow user uploads y seleccione Enable del menú desplegable en la columna Value.

También puede elegir el nivel de usuario que puede cargar archivos de música. El nivel predeterminado es Catalog Manager, que permite que el Catalog Manager y todos los usuarios con privilegios mayores carguen música. En este caso, es el administrador.

También debe establecer el catálogo en el que se añadirá la música. Hágalo usando la línea Destination catalog. Seleccione el catálogo que creó en el elemento desplegable Value.

Imagen que muestra las líneas de autorización de cargas y de catálogo de destino

Haga clic en el botón Update Preferences en la parte inferior de la página para completar la configuración. Ahora, estará listo para cargar música.

Primero, haga clic en el primer ícono de configuración:

Imagen del primer ícono de configuración

A continuación, haga clic en el enlace Upload de la sección Music.

Imagen del enlace de carga

En la página Upload, haga clic en el botón Browse, localice sus archivos de música en su computadora y cárguelos.

Si deja las etiquetas Artist y Album en blanco, Ampache leerá las etiquetas ID3 de los archivos de música para hallar el artista y el álbum de forma automática. Tras cargar música, ahora podrá encontrarla haciendo clic en los enlaces Songs, Albums o Artists de la sección Music, en el panel de navegación de la izquierda.

Ahora su servidor de música Ampache está listo para comenzar a transmitir su música.

Conclusión

A lo largo de este artículo, instaló y configuró un servidor Ampache de transmisión de música y subió parte de su música. Ahora ya puede escuchar su música desde cualquier lugar y en cualquiera de sus dispositivos. A través de la documentación de Ampache, podrá a usar y ampliar su servidor de transmisión. Estas apps de Android y esta app de iOS transmitirán su música a su teléfono. Ampache organiza su música en el servidor usando las etiquetas ID3 de los archivos de música. El programa MusicMrainz le ayudará a gestionar las etiquetas ID3 de sus archivos de música.

0 Comments

Creative Commons License