GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar Sonerezh Music Streaming Server en Ubuntu 16.04 con Apache o Nginx

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.


Ubuntu
  1. Cómo instalar Nginx en Ubuntu 20.04

  2. Cómo instalar Jenkins Automation Server con Apache en Ubuntu 16.04

  3. Cómo instalar el servidor HTTP Git con Nginx en Ubuntu 16.04

  4. Cómo instalar el servidor de transmisión de música Koel en Ubuntu 18.04

  5. Cómo instalar el servidor HTTP Git con Nginx en Ubuntu 20.04

Instalar Roundcube Webmail en Ubuntu 20.04 con Apache/Nginx

Cómo instalar InvoiceNinja en un servidor Ubuntu 18.04 con Apache/Nginx

Cómo instalar InvoiceNinja en un servidor Ubuntu 20.04 con Apache/Nginx

Cómo instalar phpMyAdmin con Apache en Ubuntu 22.04 LTS

Cómo instalar Nginx en Ubuntu

Cómo instalar LetsEncrypt con Nginx en Ubuntu 15.04