El autor seleccionó a Open Internet/Free Speech Fund para recibir una donación como parte del programa Write for DOnations.
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.
Para completar esta guía, necesitará lo siguiente:
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.
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:
<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 VirtualH
ost que creó no halla errores con la utilidad apache
ctl:
- sudo apachectl configtest
Si su configuración no contiene errores, verá el siguiente resultado después del comando:
OutputSyntax 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
. . .
upload_max_filesize = 2M
. . .
post_max_size = 8M
. . .
por lo siguiente:
. . .
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.
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:
OutputPlease 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:
OutputCongratulations, 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.
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:
ampache_database
: nombre de la base de datos de Ampache.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.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.
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.
Seleccione el idioma de la interfaz de Ampache y haga clic en el botón Start Configuration para continuar.
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.
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:
ampache_database
localhost
database_user
database_password
Haga clic en el botón Insert database para continuar.
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
Installation Type Deje el ajuste predeterminado.
Allow Transcoding1 Seleccione ffmpeg de la lista desplegable.
Players Deje el ajuste predeterminado.
Haga clic en el botón Create Config para continuar.
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.
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.
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.
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:
Give this catalog a short, memorable name.
local
/data/Music
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:
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.
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:
A continuación, haga clic en el enlace Upload de la sección Music.
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.
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.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Sign up for Infrastructure as a Newsletter.
Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.