GNU/Linux >> Tutoriales Linux >  >> Ubuntu

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

Koel es una aplicación de transmisión de audio personal basada en la web escrita en Vue.js en el lado del cliente y Laravel en el lado del servidor. Este tutorial cubrirá cómo instalar Koel en un servidor basado en Ubuntu 18.04.

Requisitos

  • Un servidor con Ubuntu 18.04.

  • Un usuario sudo no root.

  • Asegúrate de que todo esté actualizado.

    $ sudo apt update && sudo apt upgrade
  • Pocos paquetes que tu sistema necesita.

    $ sudo apt install ca-certificates curl unzip build-essential libpng-dev gnupg2 lsb-release ufw -y

    Es posible que algunos de estos paquetes ya estén instalados en su sistema.

Configurar cortafuegos

El primer paso es configurar el cortafuegos. Antes de habilitar el firewall, debemos permitir los puertos SSH; de lo contrario, nuestro servidor quedará bloqueado.

$ sudo ufw allow OpenSSH

Habilite el cortafuegos.

$ sudo ufw enable

Permitir puertos HTTP y HTTPS.

$ sudo ufw allow http
$ sudo ufw allow https

Compruebe el estado del cortafuegos.

$ sudo ufw status

Debería ver un resultado similar.

Status: active
To                         Action     From
--                         ------      ----
OpenSSH                   ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443/tcp                   ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80/tcp (v6)               ALLOW       Anywhere (v6)
443/tcp (v6)               ALLOW       Anywhere (v6)

Instalar Git

Comenzaremos instalando Git.

$ sudo apt install git -y
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"

Instalar Node.js

Instalaremos Node 10.x en lugar de la última versión 12.x porque Koel empaqueta algunas bibliotecas obsoletas que no son compatibles con Node 12.

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install -y nodejs

Compruebe si Node está correctamente instalado.

$ node --version

Debería ver un resultado similar.

v10.17.0

Instalar hilo

Instale el administrador de paquetes Yarn.

$ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
$ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
$ sudo apt update && sudo apt install -y yarn

Compruebe si Yarn funciona correctamente.

$ yarn --version

Debería ver un resultado similar.

1.19.1

Instalar PHP

Instale PHP 7.2 con todas las extensiones requeridas.

$ sudo apt install -y php7.2-fpm php7.2-mbstring php7.2-bcmath php7.2-xml php7.2-mysql php7.2-curl php7.2-zip

Compruebe si PHP funciona correctamente.

$ php --version

Debería ver un resultado similar.

PHP 7.2.24-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Oct 24 2019 18:29:11) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
  with Zend OPcache v7.2.24-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

Instalar MariaDB

MariaDB es un reemplazo directo de MySQL, lo que significa que los comandos para ejecutar y operar MariaDB son los mismos que para MySQL. Para instalar MariaDB, ejecute los siguientes comandos.

$ sudo apt install mariadb-server

Compruebe si MariaDB se instaló correctamente.

$ mysql --version

Debería ver el siguiente resultado.

mysql  Ver 15.1 Distrib 10.1.41-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Ejecute el siguiente comando para realizar la configuración predeterminada, como proporcionar una contraseña de root, eliminar usuarios anónimos, prohibir el inicio de sesión de root de forma remota y descartar tablas de prueba. Introduzca para todo y configurar una contraseña de root.

$ sudo mysql_secure_installation

Hay una advertencia con la configuración de la contraseña de root. MariaDB por defecto permite a los usuarios raíz del sistema iniciar sesión en MariaDB sin una contraseña. Pero si va a utilizar una aplicación de terceros para acceder a través de la raíz, una contraseña es imprescindible, de lo contrario, las aplicaciones como PHPMyAdmin fallarán. Para ello, debe deshabilitar la autenticación basada en complementos, que es la opción predeterminada en MariaDB.

Para deshabilitar la autenticación del complemento y restaurar la contraseña raíz, ingrese primero el indicador de MySQL usando el siguiente comando.

$ sudo mysql -u root

Ahora ingrese los siguientes comandos para deshabilitar la autenticación del complemento.

use mysql;
update user set plugin='' where User='root';
flush privileges;
exit

Después de esto, reinicie su servicio MariaDB.

$ sudo systemctl restart mariadb.service

Eso es todo. La próxima vez que desee iniciar sesión en MySQL, use el siguiente comando

$ sudo mysql -u root -p

Introduzca su contraseña raíz cuando se le solicite.

Configurar MariaDB para Koel

Ahora necesitamos configurar una base de datos para usar con la aplicación Koel. Para hacer eso, inicie sesión en el indicador de MySQL. Asumiremos que está utilizando el método de autenticación predeterminado de MariaDB (es decir, sin usar la contraseña de root) para el resto del tutorial.

$ sudo mysql -u root

Una vez que se le solicite, ingrese los siguientes comandos que configurarán una base de datos llamada koelmusic y un usuario de base de datos llamado koeluser y concédale acceso a la base de datos.

mysql> CREATE DATABASE koelmusic;
mysql> CREATE USER 'koeluser'@'localhost' IDENTIFIED BY 'yourpassword';
mysql> GRANT ALL PRIVILEGES ON koelmusic.* TO 'koeluser'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> exit

Instalar Nginx

Instale el servidor Nginx.

$ sudo apt install nginx

Compruebe si funciona correctamente.

$ nginx -v

Debería ver el siguiente resultado.

nginx version: nginx/1.14.0 (Ubuntu)

Ejecute el siguiente comando para agregar un archivo de configuración para Koel.

$ sudo nano /etc/nginx/sites-available/koel.conf

Pegue el siguiente código en el editor.

server {
 listen         *:80;
 server_name     koel.example.com;
 root           /var/www/koel;
 index           index.php;

 gzip           on;
 gzip_types     text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript application/json;
 gzip_comp_level 9;

 # Whitelist only index.php, robots.txt, and some special routes
 if ($request_uri !~ ^/$|index\.php|robots\.txt|(public|api)/|remote|api-docs|sw\.js) {
   return 404;
}

 location /media/ {
   internal;

   alias       $upstream_http_x_media_root;

   access_log /var/log/nginx/koel.access.log;
   error_log /var/log/nginx/koel.error.log;
}

 location / {
   try_files   $uri $uri/ /index.php?$args;
}

 location ~ \.php$ {
   try_files $uri $uri/ /index.php?$args;
   fastcgi_param PATH_INFO $fastcgi_path_info;
   fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
   fastcgi_index index.php;
   fastcgi_split_path_info   ^(.+\.php)(/.+)$;
   fastcgi_intercept_errors on;
   include fastcgi_params;
}
}

Este archivo asume que instalaremos Koel en el dominio koel.example.com y en el directorio /var/www/koel .

Active este archivo de configuración vinculándolo a sites-enabled directorio.

$ sudo ln -s /etc/nginx/sites-available/koel.conf /etc/nginx/sites-enabled/

Pruebe la configuración.

$ sudo nginx -t

Debería ver el siguiente resultado que indica que su configuración es correcta.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Vuelva a cargar el servicio Nginx.

$ sudo systemctl reload nginx

Instalar compositor

Esto es lo último que necesitamos antes de continuar con la instalación.

Ingrese los siguientes comandos para instalar Composer.

$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php composer-setup.php
$ php -r "unlink('composer-setup.php');"
$ sudo mv composer.phar /usr/local/bin/composer

Compruebe si funciona correctamente.

$ composer --version

Debería ver el siguiente resultado.

Composer version 1.9.1 2019-11-01 17:20:17

Instalar Koel

Cree una carpeta raíz de documentos vacía para Koel.

$ sudo mkdir -p /var/www/koel

La -p El argumento asegura que los directorios principales var y www se crean automáticamente si no existen.

Navegue a la carpeta raíz del documento.

$ cd /var/www/koel

Cambiar la propiedad de la raíz del documento a user que es el usuario no root que hemos usado para el tutorial.

$ sudo chown -R user:user /var/www/koel

Clone el repositorio de Koel Git y obtenga su última versión. Puede consultar la última versión desde su página de lanzamientos.

$ git clone --recurse-submodules https://github.com/phanan/koel.git .
$ git checkout v4.1.1

Instala las dependencias.

$ composer install

Ejecute el siguiente comando para configurar la base de datos y la cuenta de administrador. Introduzca mysql como tipo de base de datos, omita el puerto e ingrese las credenciales de la base de datos que creamos anteriormente. Para la carpeta multimedia, puede ingresar algo como /home/user/songs .

$ php artisan koel:init

Cambie la propiedad de la carpeta raíz del documento a www-data usuario.

$ sudo chown -R www-data:www-data /var/www/koel

La configuración ahora está completa. Abra koel.example.com en su navegador e inicie sesión con las credenciales que creó anteriormente y comience a transmitir. También se puede acceder al sitio web de Koel a través de dispositivos móviles.

Configurar Koel

Hay más detalles que puede configurar editando el .env archivo con el siguiente comando.

$ sudo nano /var/www/koel/.env

Aquí puede ingresar sus detalles SMTP, configurar Youtube y Last.fm para Koel y hacer muchas más cosas.

Vuelva a cargar el servidor Nginx para implementar los cambios.

Si desea restablecer su contraseña de administrador, puede hacerlo emitiendo el siguiente comando.

$ php artisan koel:admin:change-password

Si desea escanear la biblioteca de medios en busca de archivos actualizados, puede hacerlo con el siguiente comando.

$ php artisan koel:sync

Debería ver el siguiente resultado.

Koel syncing started.
953/953 [????????????????????????????] 100%
Completed! 944 new or updated song(s), 0 unchanged song(s), and 9 invalid file(s).

Agregue el sufijo al comando con -v marca que le dará más detalles como errores de sincronización.

Incluso puede configurar este comando como un trabajo cron, por ejemplo, para que se ejecute cada medianoche. Para hacerlo, ejecute el siguiente comando.

$ crontab -e

Seleccione 1(nano ) como su editor.

Pegue la siguiente línea al final del archivo.

0 0 * * * cd /var/www/koel && /usr/bin/php artisan koel:sync >/dev/null 2>&1

Guarde el archivo presionando Ctrl + X e ingresando Y Cuando se le solicite. Ahora, su biblioteca multimedia se sincronizará cada medianoche.

Para obtener más información, consulte la documentación oficial de Koel.

Configurar HTTPS usando Let's Encrypt

Para usar Let's encrypt, necesitamos instalar el Certbot paquete.

Agrega el repositorio.

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

Instale Certbot.

$ sudo apt install python-certbot-nginx

Instale el certificado.

$ sudo certbot --nginx -d koel.example.com

Si es la primera vez que usa la herramienta en este servidor, debe aceptar los términos e ingresar su dirección de correo electrónico. Di no cuando se le pregunte si desea compartir su correo electrónico con la fundación EFF.

Si tiene éxito, certbot le preguntará cómo le gustaría configurar sus ajustes de HTTPS.

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):

Seleccione 2 y luego presione ENTER . Su certificado ya está instalado y activado. Su certificado se renovará automáticamente en 90 días.

Conclusión

Esto concluye nuestro tutorial. Puede transmitir medios desde su servidor al contenido de su corazón.


Ubuntu
  1. Cómo instalar el servidor RabbitMQ en Ubuntu 18.04 y 16.04 LTS

  2. Cómo instalar el servidor Gitlab en Ubuntu 18.04 y 16.04 LTS

  3. Cómo instalar MsSQL Server 2019 en Ubuntu 20.04

  4. Cómo instalar Ansible en Ubuntu Server 21.04

  5. Cómo instalar el servidor Xrdp en Ubuntu 20.04 LTS

Cómo instalar CouchPotato en Ubuntu Server/Desktop

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

Cómo instalar un servidor FTP en Ubuntu 20.04 LTS

Cómo instalar Plex Media Streaming Server en Ubuntu 19.04

Cómo instalar el servidor de Minecraft en Ubuntu 20.04

Cómo instalar Jellyfin Media Server en Ubuntu 20.04