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 -tVous 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éussiRechargez le service Nginx.
$ sudo systemctl recharger nginxInstaller 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/composerVérifiez s'il fonctionne correctement.
$ composer --versionVous devriez voir la sortie suivante.
Composer version 1.9.1 2019-11-01 17:20:17Installer Koel
Créez un dossier racine de document vide pour Koel.
$ sudo mkdir -p /var/www/koelLe -p l'argument garantit que les répertoires parents
var
etwww
sont automatiquement créés s'ils n'existent pas.Accédez au dossier racine du document.
$ cd /var/www/koelChanger 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/koelClonez 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.1Installez les dépendances.
Installation de $ composerExé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:initRemplacez la propriété du dossier racine du document par
www-data
utilisateur.$ sudo chown -R www-data:www-data /var/www/koelLa 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/.envIci, 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-passwordSi 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:syncVous 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 -eSé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>&1Enregistrez 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/certbotInstallez Certbot.
$ sudo apt install python-certbot-nginxInstallez le certificat.
$ sudo certbot --nginx -d koel.example.comSi 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.