Une alternative auto-hébergée à Spotify : Koel
Dans un précédent article, je vous ai présenté Navidrome, une excellente alternative gratuite et auto-hébergée à Spotify. Je vous invite à la tester si vous recherchez une solution simple, légère et allant à l’essentiel.
Dans cet article, nous allons découvrir une autre alternative et auto-hébergée à Spotify, plus riche en fonctionnalités : Koel.
Présentation
Qu'est-ce que Koel ?
Koel est une solution de streaming musical libre et open source. , elle analyse les fichiers audio que vous possédez déjà et les rend disponibles dans une interface web utilisable depuis n'import où.
Ce que propose Koel
Dans sa version entièrement gratuite, Koel propose une interface web moderne, la gestion des artistes, des albums, des morceaux et des pochettes, ainsi que des playlists classiques et intelligentes. Il peut également s’intégrer à des services comme Last.fm, Spotify et MusicBrainz.
Mise en place de koel
Comme toujours, nous allons installer Koel avec Docker dans un environnement Debian. Toutefois, si vous le préférez, vous pouvez également l’installer directement à partir des fichiers binaires.
Prérequis
Pour suivre ce tutoriel, il vous faut :
- une machine debian disposant de Docker et Docker Compose
- Minimum 2 Go de mémoire vive pour être à l'aise
- un Minimum d'espace disque pour la base de données et, surtout, suffisamment de stockage pour votre musique
- Vos fichiers audio dont vous possédez les droits d'utilisation.
Préparer les dossiers de Koel
Nous allons installer Koel dans /etc/koel.
Commencez par créer le dossier de Koel :
mkdir -p /etc/koelcd /etc/koelRécupération des fichiers de Koel
Nous allons ensuite récupérer les fichiers Docker directement depuis le dépôt GitHub officiel de Koel :
git clone https://github.com/koel/docker.git .Et créer le dossier qui accueillera votre musique :
mkdir -p /etc/koel/musicVous devrez ensuite générer deux mots de passe différents pour les variables MYSQL_ROOT_PASSWORD et MYSQL_PASSWORD. Pour cela, je vous recommande d’utiliser Minp et de créer, pour chacune de ces variables, un mot de passe sécurisé d’au moins 16 caractères.
Modification des fichiers de Koel
Pour simplifier la gestion de votre conteneur, attribuez-lui un nom explicite. Dans le fichier docker-compose.yml fourni par Koel, ajoutez la ligne suivante :
container_name: koel Editer donc le fichier docker-compose.mysql.yml via nano ou vim
nano /etc/koel/docker-compose.mysql.ymlvim /etc/koel/docker-compose.mysql.ymlservices:
koel:
image: phanan/koel
container_name: koel
restart: unless-stopped
depends_on:
- database
ports:
- 80:80
environment:
- DB_CONNECTION=mysql
- DB_HOST=database
- DB_USERNAME=koel
- DB_PASSWORD=<MDP_a_CHANGER_N1>
- DB_DATABASE=koel
volumes:
- ./music:/music
- image_storage:/var/www/html/storage/app/public/images
- search_index:/var/www/html/storage/search-indexes
- ./sql:/docker-entrypoint-initdb.d
database:
image: mariadb:10.11
restart: unless-stopped
volumes:
- db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=<MDP_a_CHANGER_N2>
- MYSQL_DATABASE=koel
- MYSQL_USER=koel
- MYSQL_PASSWORD=<MDP_a_CHANGER_N1>
volumes:
db:
driver: local
music:
driver: local
image_storage:
driver: local
search_index:
driver: localDémarrage du docker koel
Vous pouvez maintenant lancer le conteneur Docker en faisant :
docker compose -f docker-compose.mysql.yml up -dVotre conteneur Docker peut prendre un peu de temps à démarrer, c’est normal. Il doit d’abord télécharger l’image Docker, ce qui peut prendre plus ou moins de temps en fonction de votre connexion Internet.

Une fois le conteneur démarré, vous devez initialiser Koel. Pour cela, exécutez la commande suivante :
docker exec --user www-data -it koel php artisan koel:init --no-assets
Il vous demandera de renseigner le dossier Media. Celui proposé par défaut convient, vous pouvez donc simplement appuyer sur Entrée.

L’installation est presque terminée. Il manque cependant une étape très importante, récupérer le fichier .env du conteneur Docker et le copier dans notre dossier Koel, afin de conserver la clé de l’application. Pour cela, il vous suffit d’exécuter la commande suivante en étant dans le répertoire Koel :
docker cp koel:/var/www/html/.env ./Il faut ensuite modifier le fichier docker-compose.mysql.yml afin qu’il récupère le fichier .env et l’intègre au conteneur Docker à chaque démarrage.
Il suffit d’ajouter cette ligne dans la section volumes de votre fichier docker-compose.yml :
- ./.env:/var/www/html/.envCe qui donne ceci dans la version complète du fichier docker-compose.yml :
services:
koel:
image: phanan/koel
container_name: koel
restart: unless-stopped
depends_on:
- database
ports:
- 80:80
environment:
- DB_CONNECTION=mysql
- DB_HOST=database
- DB_USERNAME=koel
- DB_PASSWORD=<MDP_a_CHANGER_N1>
- DB_DATABASE=koel
volumes:
- ./music:/music
- image_storage:/var/www/html/storage/app/public/images
- search_index:/var/www/html/storage/search-indexes
- ./sql:/docker-entrypoint-initdb.d
- ./.env:/var/www/html/.env
database:
image: mariadb:10.11
restart: unless-stopped
volumes:
- db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=<MDP_a_CHANGER_N2>
- MYSQL_DATABASE=koel
- MYSQL_USER=koel
- MYSQL_PASSWORD=<MDP_a_CHANGER_N1>
volumes:
db:
driver: local
music:
driver: local
image_storage:
driver: local
search_index:
driver: localVous pouvez maintenant vous rendre à l’adresse IP de votre machine depuis votre navigateur. Vous aurez alors accès à Koel.
Email: [email protected]
Password: KoelIsCoolToutefois, vous pouvez définir le mot de passe du compte administrateur Koel à l’aide de la commande suivante :
docker exec -it koel php artisan koel:admin:change-password
Ajout de musique à Koel
Pour ajouter de la musique à Koel, il est important que tous vos fichiers musicaux se trouvent dans le répertoire /etc/koel/music. Vous pouvez utiliser des liens symboliques ou toute autre méthode, tant que la musique est accessible depuis ce répertoire.
Une fois votre musique ajoutée, elle n’apparaîtra pas immédiatement dans All Songs de Koel. C’est tout à fait normal, Koel doit d’abord effectuer une synchronisation de la bibliothèque.

Pour cela, rendez-vous dans Settings depuis l’interface web de Koel, puis cliquez sur Save & Scan afin de lancer la synchronisation.

Ou pour cela, exécutez la commande suivante :
docker exec --user www-data koel php artisan koel:sync
Une fois la synchronisation terminée, vous verrez vos musiques apparaître dans Koel.

Si certaines informations de votre musique sont incorrectes, vous pouvez les modifier en cliquant sur les trois petits points situés à côté du morceau, puis sur Edit.
Vous accéderez alors à une page vous permettant de modifier les différentes informations du morceau.

Gestion de Koel
Ajouter un utilisateur
Vous aurez probablement besoin d’ajouter des utilisateurs à Koel. Rien de bien compliqué, connectez-vous avec un compte administrateur, puis rendez-vous dans la section Manage, située dans le menu de gauche, et cliquez sur Users.

Cliquez ensuite sur Add pour commencer la création du compte utilisateur.

Renseignez ensuite les informations, le nom (Name), l’adresse e-mail (Email) et le mot de passe (Password).

Choisissez ensuite le rôle à attribuer au compte, Admin pour un administrateur ou User pour un utilisateur standard. Validez et le compte sera immédiatement créé.
Utilisation des Player mobile
Koel propose ses propres applications mobiles pour iOS et Android. Celles-ci sont toutefois payantes et disponibles au prix de 9,99 €.

Je sais que le prix peut constituer un frein pour certains. Toutefois l'achat permet de soutenir le développement du projet.
Pour associer votre compte Koel à l’application Koel Player, rien de plus simple, rendez-vous dans la section Profile & Preferences.

Rendez-vous ensuite dans la section QR Code afin d’afficher le code QR.


Ouvrez ensuite l’application Koel Player, puis sélectionnez l’option de connexion par code QR.

Une fois le code QR scanné, vous serez immédiatement connecté à votre compte Koel.

Je vous laisse maintenant découvrir Koel par vous-même. N’hésitez pas à rejoindre la communauté Make in Lab, nous serons ravis de vous prêter une licence Koel Plus afin que vous puissiez tester ses différentes fonctionnalités.
Nous pourrons également échanger avec vous et vous accompagner dans la mise en place d’une configuration plus avancée de Koel.
Pour nous aider à nous améliorer, n'hésitez pas à faire part de vos avis en commentaires ou même à poser vos questions si vous avez besoin d'aide supplémentaire.
Vous pouvez également partager cet article et nous suivre sur Twitter/X :
ainsi que sur Instagram :

Et même sur TikTok :
@makeinlab.fr


