GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer le serveur de diffusion de musique Koel sur Ubuntu 18.04

Koel est une application de streaming audio personnelle basée sur le Web écrite en Vue.js côté client et en Laravel côté serveur. Ce didacticiel explique comment installer Koel sur un serveur basé sur Ubuntu 18.04.

Prérequis

  • Un serveur exécutant Ubuntu 18.04.

  • Un utilisateur sudo non root.

  • Assurez-vous que tout est mis à jour.

    $ sudo apt update &&sudo apt upgrade
  • Peu de packages dont votre système a besoin.

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

    Certains de ces packages sont peut-être déjà installés sur votre système.

Configurer le pare-feu

La première étape consiste à configurer le pare-feu. Avant d'activer le pare-feu, nous devons autoriser les ports SSH, sinon nous serons bloqués hors de notre serveur.

$ sudo ufw autorise OpenSSH

Activez le pare-feu.

$ sudo ufw enable

Autoriser les ports HTTP et HTTPS.

$ sudo ufw autoriser http
$ sudo ufw autoriser https

Vérifiez l'état du pare-feu.

État $ sudo ufw

Vous devriez voir une sortie similaire.

 Statut:actif 
à l'action de
- ------ ----
openssh autoriser n'importe où
80 / tcp Autoriser n'importe où
443 / TCP Autoriser n'importe où
OpenSSH (V6) Autoriser n'importe où (V6)
80 / TCP (V6) Autoriser n'importe où (V6)
443 / TCP (V6) Autoriser n'importe où (V6)

Installer Git

Nous allons commencer par installer Git.

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

Installer Node.js

Nous allons installer Node 10.x au lieu de la dernière version 12.x car Koel contient des bibliothèques obsolètes qui ne sont pas compatibles avec Node 12.

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

Vérifiez si Node est correctement installé.

$ node --version

Vous devriez voir une sortie similaire.

v10.17.0

Installer le fil

Installez le gestionnaire de packages 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

Vérifiez si Yarn fonctionne correctement.

$ fil --version

Vous devriez voir une sortie similaire.

1.19.1

Installer PHP

Installez PHP 7.2 avec toutes ses extensions requises.

$ 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

Vérifiez si PHP fonctionne correctement.

$ php --version

Vous devriez voir une sortie similaire.

PHP 7.2.24-1+ubuntu18.04.1+deb.sury.org+1 (cli) (construit :24 octobre 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, par Zend Technologies

Installer MariaDB

MariaDB est un remplacement direct de MySQL, ce qui signifie que les commandes pour exécuter et faire fonctionner MariaDB sont les mêmes que celles de MySQL. Pour installer MariaDB, exécutez les commandes suivantes.

$ sudo apt install mariadb-server

Vérifiez si MariaDB est installé correctement.

$ mysql --version

Vous devriez voir la sortie suivante.

mysql Ver 15.1 Distrib 10.1.41-MariaDB, pour debian-linux-gnu (x86_64) en utilisant readline 5.2

Exécutez la commande suivante pour effectuer la configuration par défaut, par exemple en donnant un mot de passe root, en supprimant les utilisateurs anonymes, en interdisant la connexion root à distance et en supprimant les tables de test. Entrez oui pour tout et configurez un mot de passe root.

$ sudo mysql_secure_installation

Il y a une mise en garde avec la configuration du mot de passe root. MariaDB permet par défaut aux utilisateurs racine du système de se connecter à MariaDB sans mot de passe. Mais si vous allez utiliser une application tierce pour accéder via root, un mot de passe est indispensable, sinon des applications comme PHPMyAdmin échoueront. Pour cela, vous devez désactiver l'authentification basée sur le plugin qui est l'option par défaut sur MariaDB.

Pour désactiver l'authentification du plug-in et restaurer le mot de passe root, entrez d'abord l'invite MySQL à l'aide de la commande suivante.

$ sudo mysql -u racine

Entrez maintenant les commandes suivantes pour désactiver l'authentification du plugin.

utiliser mysql ;
mettre à jour l'ensemble d'utilisateurs plugin='' où utilisateur='root' ;
vider les privilèges ;
quitter

Après cela, redémarrez votre service MariaDB.

$ sudo systemctl redémarre mariadb.service

C'est ça. La prochaine fois que vous voudrez vous connecter à MySQL, utilisez la commande suivante

$ sudo mysql -u root -p

Entrez votre mot de passe root lorsque vous y êtes invité.

Configurer MariaDB pour Koel

Nous devons maintenant configurer une base de données à utiliser pour l'application Koel. Pour ce faire, connectez-vous à l'invite MySQL. Nous supposerons que vous utilisez la méthode d'authentification par défaut de MariaDB (c'est-à-dire sans utiliser de mot de passe root) pour le reste du didacticiel.

$ sudo mysql -u racine

Une fois à l'invite, entrez les commandes suivantes qui créeront une base de données nommée koelmusic et un utilisateur de base de données nommé koeluser et accordez-lui l'accès à la base de données.

mysql> CRÉER UNE BASE DE DONNÉES koelmusic;
mysql> CRÉER UN UTILISATEUR 'koeluser'@'localhost' IDENTIFIÉ PAR 'votremotdepasse';
mysql> ACCORDER TOUS LES PRIVILÈGES SUR koelmusic.* À 'koeluser'@'localhost ';
mysql> FLUSH PRIVILEGES;
mysql> exit

Installer Nginx

Installez le serveur Nginx.

$ sudo apt install nginx

Vérifiez s'il fonctionne correctement.

$ nginx -v

Vous devriez voir la sortie suivante.

version de nginx :nginx/1.14.0 (Ubuntu)

Exécutez la commande suivante pour ajouter un fichier de configuration pour Koel.

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

Collez le code suivant dans l'éditeur.

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

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

 # Liste blanche uniquement index.php, robots.txt et certaines routes spéciales
 if ($request_uri !~ ^/$|index\.php|robots\.txt|(public|api) /|remote|api-docs|sw\.js) {
   retourne 404 ;
}

 location /media/ {
   interne ;

   alias       $upstream_http_x_media_root;

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

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

 emplacement ~ \.php$ {
   try_files $uri $uri/ /index.php?$args;
   fastcgi_param PATH_INFO $fastcgi_pat h_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 ;
}
}

Ce fichier suppose que nous allons installer Koel sur le domaine koel.example.com et dans le répertoire /var/www/koel .

Activez ce fichier de configuration en le liant au sites-enabled répertoire.

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

Testez la configuration.

$ sudo nginx -t

Vous devriez voir la sortie suivante indiquant que votre configuration est correcte.

nginx :la syntaxe du fichier de configuration /etc/nginx/nginx.conf est correcte
nginx :le test du fichier de configuration /etc/nginx/nginx.conf est réussi

Rechargez le service Nginx.

$ sudo systemctl recharger nginx

Installer Composer

C'est la dernière chose dont nous avons besoin avant de passer à l'installation.

Entrez les commandes suivantes pour installer 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

Vérifiez s'il fonctionne correctement.

$ composer --version

Vous devriez voir la sortie suivante.

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

Installer Koel

Créez un dossier racine de document vide pour Koel.

$ sudo mkdir -p /var/www/koel

Le -p l'argument garantit que les répertoires parents var et www sont automatiquement créés s'ils n'existent pas.

Accédez au dossier racine du document.

$ cd /var/www/koel

Changer la propriété de la racine du document en user qui est l'utilisateur non root que nous avons utilisé pour le tutoriel.

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

Clonez le référentiel Koel Git et consultez sa dernière version. Vous pouvez vérifier la dernière version à partir de sa page de versions.

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

Installez les dépendances.

Installation de $ composer

Exécutez la commande suivante pour configurer la base de données et le compte administrateur. Entrez mysql comme type de base de données, ignorez le port et entrez les informations d'identification de la base de données que nous avons créées ci-dessus. Pour le dossier multimédia, vous pouvez entrer quelque chose comme /home/user/songs .

$ php artisan koel:init

Remplacez la propriété du dossier racine du document par www-data utilisateur.

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

La configuration est maintenant terminée. Ouvrez koel.example.com dans votre navigateur et connectez-vous avec les informations d'identification que vous avez créées ci-dessus et commencez à diffuser. Le site Web de Koel est également accessible via mobile.

Configurer Koel

Il y a plus de détails que vous pouvez configurer en éditant le .env fichier avec la commande suivante.

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

Ici, vous pouvez entrer vos informations SMTP, configurer Youtube et Last.fm pour Koel et faire beaucoup plus.

Rechargez le serveur Nginx pour mettre en œuvre les modifications.

Si vous souhaitez réinitialiser votre mot de passe administrateur, vous pouvez le faire en lançant la commande suivante.

$ php artisan koel:admin:change-password

Si vous souhaitez analyser la médiathèque à la recherche de fichiers mis à jour, vous pouvez le faire à l'aide de la commande suivante.

$ php artisan koel:sync

Vous devriez voir la sortie suivante.

La synchronisation de Koel a commencé.
953/953 [????????????????????????????] 100 %
Terminé! 944 chanson(s) nouvelle(s) ou mise(s) à jour, 0 chanson(s) inchangée(s) et 9 fichier(s) invalide(s).

Suffixez la commande avec -v drapeau qui vous donnera plus de détails comme les erreurs de synchronisation.

Vous pouvez même définir cette commande comme une tâche cron, par exemple, pour qu'elle s'exécute tous les minuits. Pour ce faire, exécutez la commande suivante.

$ crontab -e

Sélectionnez 1(nano ) comme éditeur.

Collez la ligne suivante à la fin du fichier.

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

Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité. Désormais, votre médiathèque sera synchronisée tous les minuits.

Pour plus d'informations, reportez-vous à la documentation officielle de Koel.

Configurer HTTPS avec Let's Encrypt

Pour utiliser Let's encrypt, nous devons installer le Certbot paquet.

Ajoutez le référentiel.

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

Installez Certbot.

$ sudo apt install python-certbot-nginx

Installez le certificat.

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

Si c'est la première fois que vous utilisez l'outil sur ce serveur, vous devez accepter les conditions et saisir votre adresse e-mail. Dites non lorsqu'on vous demande si vous souhaitez partager votre e-mail avec la fondation EFF.

Si cela réussit, certbot vous demandera comment vous souhaitez configurer vos paramètres HTTPS.

Veuillez choisir de rediriger ou non le trafic HTTP vers HTTPS, en supprimant l'accès HTTP.
----------------------------------- -------------------------------------------------- --
1 : Aucune redirection :n'apportez aucune autre modification à la configuration du serveur Web.
2 : Redirection :redirigez toutes les requêtes vers un accès HTTPS sécurisé. Choisissez cette option pour les
nouveaux sites ou si vous êtes sûr que votre site fonctionne sur HTTPS. Vous pouvez annuler cette
modification en modifiant la configuration de votre serveur Web.
------------------------------ -------------------------------------------------
Sélectionnez le numéro approprié [1-2] puis [enter] (appuyez sur 'c' pour annuler) :

Sélectionnez 2 puis appuyez sur ENTER . Votre certificat est maintenant installé et activé. Votre certificat se renouvellera automatiquement dans 90 jours.

Conclusion

Ceci conclut notre tutoriel. Vous pouvez diffuser des médias de votre serveur au contenu de votre cœur.


Ubuntu
  1. Comment installer le serveur RabbitMQ sur Ubuntu 18.04 et 16.04 LTS

  2. Comment installer le serveur Gitlab sur Ubuntu 18.04 et 16.04 LTS

  3. Comment installer MsSQL Server 2019 sur Ubuntu 20.04

  4. Comment installer Ansible sur Ubuntu Server 21.04

  5. Comment installer le serveur Xrdp sur Ubuntu 20.04 LTS

Comment installer CouchPotato sur Ubuntu Server/Desktop

Comment installer Sonerezh Music Streaming Server sur Ubuntu 16.04 avec Apache ou Nginx

Comment installer le serveur FTP sur Ubuntu 20.04 LTS

Comment installer Plex Media Streaming Server sur Ubuntu 19.04

Comment installer le serveur Minecraft sur Ubuntu 20.04

Comment installer Jellyfin Media Server sur Ubuntu 20.04