Streamer sa musique depuis Koel
Présentation
A l'instar de Spotify, Deezer, ou bien des autres services installables, tel que Sonerezh ou Ampache, Koel se démarque par rapport à son Design épuré, se voulant être proche de celui de Spotify, et Koel le fait.
De plus, Koel permet de stream sans aucun soucis le contenu FLAC (Sous réserve de transcodage via FFMpeg), dispose d'un système de gestion de compte, mais également d'une interface mobile de qualité.
Pré-requis
Koel a besoin d'un grand nombre de pré-requis, autre que PHP et MySQL afin de fonctionner correctement. Les prérequis sont
- Composer
- NodeJS
- NPM
- Gulp
- Bower
Si l'un de ces pré-requis n'est pas installé, nous ne pourrons pas continuer l'installation de Koel. Soyez donc sur que ceux-ci sont présents sur votre machine
NDLR: Il n'est pas forcément nécéssaire d'avoir nGinx ou autre sur sa machine, étant donner que Koel dispose de son propre serveur web
Composer
Composer vous permet de gérer simplement les dépendances de votre application PHP
NodeJS
NodeJS n'est pas utile directement ici, mais il vous sera indispensable à l'installation de NPM
Ce script sert just à ajouter les bonnes sources à notre fichier sources. Nous l'installons comme d'habitude
NPM
NPM va vous permettre d'installer toutes les librairies JS nécéssaires au bon fonctionnement de Koel
Gulp
Gulp va vous permettre de compiler les fichiers JS et SASS
Bower
Tout comme Composer, Bower est un gestionnaire de paquet, destiné aux dépendances de vos diverses applications Web.
Installation
Maintenant que les dépendances de Koel sont satisfaites, nous pouvons passer à son installation en elle même.
Nous devons tout d'abord préparer la base de donnée qui recevra les données de notre Koel
CREATE DATABASE koel DEFAULT CHAR SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE USER koel-user@localhost IDENTIFIED BY koel-pass;
GRANT ALL PRIVILEGES ON koel.* TO koel-user@localhost WITH GRANT OPTION;
Bien évidemment, il faut remplacer koel-user et koel-pass par les identifiants que vous souhaitez.
Maintenant, nous allons cloner le projet Koel dans notre répertoire Web (Généralement, /var/www). N'oubliez pas d'installer git pour cela.
Il est maintenant nécéssaire de télécharges les dépendances nécéssaires au bon fonctionnement de Koel (Ne pas oublier de se placer dans le répertoire de Koel)
A ce stade de progression, il est désormais nécéssaire d'éditer le fichier de configuration de Laravel (Le framework utilisé par Koel)
Si vous n'avez pas de .env.example, je vous invite à vous rendre ici afin de le télécharger.
A l'intérieur de ce fichier, il y a plusieurs lignes à editer :
DB_CONNECTION
: Moteur de base de donnée à employer (Généralement, MySQL)DB_HOST
: Host sur lequel est hébergée votre base de donnée (Généralement, localhost)DB_DATABASE
: Nom de la base de donnée (Selon notre tutoriel, Koel)DB_USERNAME
: Nom d'utilisateur pour vous connecter à votre base de donnée (Définis précédemment)DB_PASSWORD
: Password pour vous connecter à votre base de donnée (Définis précédemment)
Nous modifions premièrement les identifiants de connexion à SQL. Nous devons maintenant les informations de connexion à Koel
ADMIN_EMAIL
: Identifiant de connexion à Koel (Peut être fake)ADMIN_NAME
: Nom de l'utilisateurADMIN_PASSWORD
: Mot de passe de connexion à Koel
Accessoirement, voici quelques valeurs qu'il peut être possible d'éditer, selon ses besoins :
APP_MAX_SCAN_TIME
: Temps maximum passé durant le scan d'une bibliothèque. Peut être utile d'augmenter si vous disposez d'une large bibliothèque-
STREAMING_METHOD
: Méthode utilisée pour envoyer les musiques -
LASTFM_API_SECRET
: Identifiant secret pour activer l'utilisation de Last.FM dans Koel LASTFM_API_KEY
: Clé secrète pour activer l'utilisation de Last.FM dans Koel
Pour obtenir ces identifiants LastFM, rendez-vous ici
FFMPEG_PATH
: Chemin absolu vers le bin de ffmpeg, afin de pouvoir transcoderOUTPUT_BIT_RATE
: Bitrate utilisée pour le transcodage (128 par défaut, 256 recommandé)
Afin de créer le premier compte, qui sera l'admin, il est nécéssaire de rentrer des valeurs dans les variables ADMIN_EMAIL
, ADMIN_NAME
et ADMIN_PASSWORD
.
Une fois cela fait, nous allons utiliser une nouvelle fois artisan afin de les générer en base de données :
Nous allons générer les JS & CSS de notre Koel
Et enfin, toujours en étant dans le dossier Koel, nous initialisons le premier lancement de Koel
Puis, nous pouvons lancer un serveur Web (Qui tournera sur le port 8000)
Pour que ce serveur intégrer puisse fonctionner, nous avons besoin de quelques librairies:
Si vous souhaitez avoir Koel qui tourne sur le port 80, vous pouvez ajouter '--port 80 à la ligne ci-dessus.
Bonus
Auto-update librairie
Il est possible d'automatiser la mise à jour de sa bibliothèque vient une simple ligne cron.
Pour cela, ajoutez cette ligne
nGinx
Il est également possible de se passer du '"serveur'" intégré à Koel et de faire son propre server block pour nginx. Koel nous en fournit déjà un par défaut qui fonctionne très bien.
Je vous invite à aller voir ici et de l'adapter selon vos besoins.
Serveur en tache de fond
Si toutefois, vous souhaitez utiliser le serveur intégré à Koel (ce que je ne comprendrais pas), vous devrez l'exécuter en tâche de fond
Créer l'instance screen
Puis on lance la commande habituelle
Et enfin, on sort du screen avec CTRL+A pour attached, puis CTRL+D pour detached