Sonerezh es un servidor de transmisión de música basado en la web y autohospedado escrito en PHP y HTML5. Es liviano en comparación con Subsonic, que está escrito en Java. Sonerezh es un software de código abierto, distribuido bajo los términos de AGPL. Este tutorial le mostrará cómo instalar Sonerezh en Ubuntu 16.04 con Apache o Nginx.
Características de Sonerezh:
- Interfaz web moderna y fácil de usar
- Administración de listas de reproducción:agregue títulos, álbumes y artistas a sus listas de reproducción.
- Compartir música a través del sistema de administración de usuarios
- Extracción automática de metadatos e importación de archivos
- Transcodificación automática a mp3
- Motor de búsqueda sencillo
Con Sonerezh, puede escuchar su música desde cualquier lugar con un navegador web y conexión a Internet.
Para seguir este tutorial, deberá tener instalado LAMP o LEMP en Ubuntu 16.04. Si aún no lo ha hecho, consulte los siguientes tutoriales.
- Cómo instalar LAMP (Apache, MariaDB, PHP7) en Ubuntu 16.04
- Cómo instalar LEMP (Nginx, MariaDB, PHP7-FPM) en Ubuntu 16.04
Una vez que haya instalado LAMP o LEMP, vuelva aquí y siga leyendo.
Instalación de Sonerezh en Ubuntu 16.04
La última versión estable es Sonerezh 1.1.3, lanzada el 19 de diciembre de 2016. Puede descargarla con Git desde el repositorio de Github.
Cambiar directorio a /var/www/
.
cd /var/www/
Instalar git
y usa git para clonar el Sonerezh de Github.
sudo apt install git sudo git clone --branch master https://github.com/Sonerezh/sonerezh.git
Establecer servidor web (www-data
) como propietario del nuevo directorio.
sudo chown www-data:www-data /var/www/sonerezh/ -R
Crear base de datos MariaDB/MySQL para Sonerezh
Inicie sesión en el servidor de base de datos MariaDB/MySQL con el siguiente comando:
mysql -u root -p
Luego crea una base de datos para Sonerezh. Este tutorial nombra la base de datos sonerezh
. Puedes usar el nombre que quieras.
create database sonerezh;
Cree el usuario de la base de datos y otorgue a este usuario todos los privilegios en la base de datos de sonerezh. Reemplace your-password
con su contraseña preferida.
grant all privileges on sonerezh.* to sonerezh@localhost identified by 'your-password';
Vacíe los privilegios y salga.
flush privileges; exit;
Configuración del servidor virtual de Apache
Crearemos un sonerezh.conf
archivo en /etc/apache2/sites-available/
directorio.
sudo nano /etc/apache2/sites-available/sonerezh.conf
Copie y pegue las siguientes líneas en el archivo. Reemplace el texto rojo con su nombre de dominio preferido. También debe crear un registro A para el nombre de dominio. Si instala Sonerezh en su servidor doméstico, también debe configurar el reenvío de puertos en el enrutador.
<VirtualHost *:80> ServerName music.your-domain.com DocumentRoot /var/www/sonerezh <Directory /var/www/sonerezh> Options -Indexes AllowOverride All # Apache 2.2.x <IfModule !mod_authz_core.c> Order Allow,Deny Allow from all </IfModule> # Apache 2.4.x <IfModule mod_authz_core.c> Require all granted </IfModule> </Directory> CustomLog /var/log/apache2/sonerezh-access.log "Combined" ErrorLog /var/log/apache2/sonerezh-error.log </VirtualHost>
Guarde y cierre el archivo.
sudo a2ensite sonerezh.conf
Luego habilite el módulo mod_rewrite y vuelva a cargar el servidor web Apache para que los cambios surtan efecto.
sudo a2enmod rewrite sudo systemctl reload apache2
Ahora ve a music.your-domain.com/install
. Verá el instalador web de Sonerezh, que enumera algunos requisitos. Para satisfacer estos requisitos, ejecute el siguiente comando.
sudo apt install php7.0-gd libav-tools
Habilitación de HTTPS (Apache)
Para finalizar la instalación, debe ingresar los detalles de la base de datos y crear una cuenta de administrador. Pero antes de hacer eso, instalemos un certificado TLS gratuito de Let's Encrypt para que lo que ingrese en el instalador web no sea rastreado.
Instale el cliente certbot (Let's Encrypt).
sudo apt install letsencrypt python-letsencrypt-apache
Ahora emita el siguiente comando para obtener un certificado TLS/SSL gratuito. Reemplace el texto de color rojo con sus datos reales.
sudo letsencrypt --apache --agree-tos --redirect --hsts --email your-email-address -d music.your-domain.com
Explicación:
- –apache :use el complemento de Apache para obtener e instalar automáticamente el certificado.
- –de acuerdo :Acepto los términos del servicio.
- –redireccionar :Redirigir todo el tráfico HTTP a HTTPS para el host virtual
- –hsts : Obligar al navegador a usar siempre TLS.
En unos segundos, debería ver lo siguiente, lo que significa que se obtiene e instala un certificado TLS/SSL gratuito en su servidor Apache.
Las configuraciones predeterminadas de TLS/SSL obtienen una puntuación A+ en la prueba de SSL Labs.
Configuración del bloque del servidor Nginx
Si usa Nginx en lugar de Apache, cree un archivo de bloque de servidor Nginx.
sudo nano /etc/nginx/conf.d/sonerezh.conf
Copie y pegue las siguientes líneas en el archivo. Reemplace el texto rojo con su nombre de dominio preferido. También debe crear un registro A para el nombre de dominio. Si instala Sonerezh en su servidor doméstico, también debe configurar el reenvío de puertos en el enrutador.
server { listen 80; server_name music.your-domain.com; root /var/www/sonerezh/app/webroot; index index.php; location / { try_files $uri $uri/ /index.php?$args; expires 14d; add_header Cache-Control 'public'; } # The section below handle the thumbnails cache, on the client (browser) # side (optional but recommended) location ~* /([^/]+_[0-9]+x[0-9]+(@[0-9]+x)?\.[a-z]+)$ { try_files /img/resized/$1 /index.php?$args; add_header Cache-Control 'public'; expires 14d; access_log off; } location ~ \.php$ { try_files $uri =404; fastcgi_index index.php; fastcgi_pass unix:/run/php/php7.0-fpm.sock; include fastcgi.conf; # If fastcgi.conf is not available on your platform you may want to # uncomment the following line #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
Guarde y cierre el archivo. Luego pruebe la configuración.
sudo nginx -t
Si la prueba es exitosa, vuelva a cargar Nginx.
sudo systemctl reload nginx
Ahora ve a music.your-domain.com/install
. Verá el instalador web de Sonerezh, que enumera algunos requisitos. Para satisfacer estos requisitos, ejecute el siguiente comando.
sudo apt install php7.0-gd libav-tools
Habilitación de HTTPS (Nginx)
Para finalizar la instalación, debe ingresar los detalles de la base de datos y crear una cuenta de administrador. Pero antes de hacer eso, instalemos un certificado TLS gratuito de Let's Encrypt para que lo que ingrese en el instalador web no sea rastreado.
Instale el cliente certbot (Let's Encrypt).
sudo apt install letsencrypt
Ahora emita el siguiente comando para obtener un certificado TLS/SSL gratuito. Reemplace el texto de color rojo con sus datos reales.
sudo letsencrypt certonly --webroot --agree-tos --email your-email-address -d music.your-domain.com -w /var/www/sonerezh/app/webroot/
En unos segundos, debería ver lo siguiente, lo que significa que se obtuvo un certificado TLS/SSL gratuito.
Ahora edite el archivo de bloqueo del servidor Sonerezh para configurar TLS.
sudo nano /etc/nginx/conf.d/sonerezh.conf
Cambie las configuraciones a lo siguiente.
server { listen 80; server_name music.your-domain.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; server_name music.your-domain.com; root /var/www/sonerezh/app/webroot; ssl_certificate /etc/letsencrypt/live/music.your-domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/music.your-domain.com/privkey.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; # modern configuration. tweak to your needs. ssl_protocols TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; ssl_prefer_server_ciphers on; # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months) add_header Strict-Transport-Security max-age=15768000; # OCSP Stapling --- # fetch OCSP records from URL in ssl_certificate and cache them ssl_stapling on; ssl_stapling_verify on; index index.php; location / { try_files $uri $uri/ /index.php?$args; expires 14d; add_header Cache-Control 'public'; } # The section below handle the thumbnails cache, on the client (browser) # side (optional but recommended) location ~* /([^/]+_[0-9]+x[0-9]+(@[0-9]+x)?\.[a-z]+)$ { try_files /img/resized/$1 /index.php?$args; add_header Cache-Control 'public'; expires 14d; access_log off; } location ~ \.php$ { try_files $uri =404; fastcgi_index index.php; fastcgi_pass unix:/run/php/php7.0-fpm.sock; include fastcgi.conf; # If fastcgi.conf is not available on your platform you may want to # uncomment the following line #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
Guarde y cierre el archivo. Luego pruebe la configuración.
sudo nginx -t
Si la prueba es exitosa, vuelva a cargar Nginx.
sudo systemctl reload nginx
Finalizar la instalación
Ahora que su conexión está habilitada para HTTPS, puede ingresar los detalles de su base de datos en el instalador web. Y también cree una cuenta de administrador y especifique la carpeta de música.
Servidor de transmisión de música basado en web Sonerezh
Certificado de renovación automática
Para renovar automáticamente el certificado Let's Encrypt, edite el archivo crontab del usuario raíz.
sudo crontab -e
Agregue la siguiente línea al final del archivo.
@daily letsencrypt renew --quiet && systemctl reload apache2
Si usa Nginx, reemplace apache2 con nginx.
@daily letsencrypt renew --quiet && systemctl reload nginx
Es necesario volver a cargar para que el servidor web recoja el nuevo certificado.
¡Eso es todo! Espero que este tutorial te haya ayudado a instalar el servidor de transmisión de música Sonerezh en Ubuntu 16.04 con Apache o Nginx. También puede consultar cómo instalar el servidor de transmisión de música Subsonic.