--- title: Koel created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, music, music-streaming, koel, php, vue, subsonic, laravel] confidence: high contested: false sources: - https://selfh.st/apps/?tag=Music - https://github.com/koel/koel - https://koel.dev/ --- # đŸŽ” Koel > Serveur personnel de streaming musical Ă©crit en PHP (Laravel) et Vue.js, avec une UI moderne type Spotify, support Subsonic et applications mobiles natives. ## 📋 Informations GĂ©nĂ©rales | MĂ©tadonnĂ©e | Valeur | | :--- | :--- | | **Site web** | https://koel.dev/ | | **GitHub** | https://github.com/koel/koel | | **License** | MIT | | **Langage** | PHP (Laravel) / Vue.js | | **Étoiles** | ⭐ 2 107 | | **DerniĂšre MAJ** | 2026-06-06 | | **CatĂ©gorie** | [[cat-music]] | ## 📝 Description Koel (littĂ©ralement « Ăąme » en espĂ©ranto) est un serveur de streaming musical personnel lancĂ© en 2015 par Phan An, conçu pour reproduire l'expĂ©rience d'un service commercial comme Spotify ou Apple Music, mais en auto-hĂ©bergĂ©. Construit sur **Laravel** cĂŽtĂ© backend et **Vue.js** cĂŽtĂ© frontend, l'interface est unanimement reconnue pour son design soignĂ©, sa rapiditĂ© et ses thĂšmes multiples (Classic, Dawn, Jungle, Rose). Le slogan officiel est d'ailleurs « A music streaming solution that works ». L'application scanne automatiquement votre bibliothĂšque (FLAC, MP3, OGG, etc.), extrait les mĂ©tadonnĂ©es, rĂ©cupĂšre les pochettes, et expose le tout via une API REST et l'API **Subsonic/OpenSubsonic** (donc compatible avec Feishin, Symfonium, play:Sub, Substreamer, DSub, Sublime Music, etc.). Koel gĂšre les favoris, les playlists intelligentes, l'Ă©galiseur, les visualiseurs, le multi-utilisateurs, la synchro de lecture cross-device, ainsi que la prise en charge des radios et podcasts. L'Ă©cosystĂšme est complĂ©tĂ© par les **Koel Player** officiels sur iOS et Android (applications natives), qui se connectent sans configuration supplĂ©mentaire. Une offre **Koel Plus** (paiement unique) dĂ©bloque des pilotes de stockage supplĂ©mentaires (S3, Nextcloud, Dropbox, ownCloud), les librairies par utilisateur, la collaboration sur playlists, le SSO, le white labeling, et le thĂšme custom. L'Ă©dition Community reste 100 % libre et open-source. ## 🚀 Installation ### Option 1 : Docker Compose (recommandĂ©) ```yaml # docker-compose.yml version: "3.8" services: koel: image: ghcr.io/koel/koel:latest container_name: koel restart: unless-stopped depends_on: - db ports: - "8080:80" environment: APP_URL: http://koel.local:8080 DB_CONNECTION: mysql DB_HOST: db DB_PORT: 3306 DB_DATABASE: koel DB_USERNAME: koel DB_PASSWORD: ChangeM3_KOEL ADMIN_EMAIL: admin@example.com ADMIN_PASSWORD: ChangeM3_ADMIN ADMIN_NAME: Admin LASTFM_API_KEY: "" YOUTUBE_API_KEY: "" SPOTIFY_CLIENT_ID: "" SPOTIFY_CLIENT_SECRET: "" volumes: - ./music:/music:ro - ./covers:/var/www/html/storage/app/public/covers - ./config:/var/www/html/storage/app/config db: image: mariadb:11 container_name: koel-db restart: unless-stopped environment: MARIADB_DATABASE: koel MARIADB_USER: koel MARIADB_PASSWORD: ChangeM3_KOEL MARIADB_RANDOM_ROOT_PASSWORD: "yes" volumes: - ./db:/var/lib/mysql ``` Premier lancement : `docker compose up -d && docker compose exec koel php artisan koel:init`. ### Option 2 : Installation manuelle PrĂ©requis : PHP 8.2+ (avec `ext-mbstring`, `pdo_mysql`, `gd`, `curl`, `intl`), Node 18+, Composer, MySQL/MariaDB. Cloner le repo, `composer install`, `npm ci && npm run prod`, configurer `.env`, lancer `php artisan koel:init` puis servir via Nginx/Apache (ex : `/var/www/koel/public`). ## ⚙ Configuration - **BibliothĂšque musicale** : variable `MEDIA_PATH` (dĂ©faut `/music`), rescanner via `php artisan koel:scan`. - **IntĂ©grations** : clĂ©s API Last.fm, Spotify, YouTube, MusicBrainz (enrichissement des mĂ©tadonnĂ©es). - **Authentification** : locale par dĂ©faut, OAuth possible, header `X-Forwarded-User` en mode proxy (SSO via Authelia/Authentik). - **Streaming** : `STREAMING_METHOD=transcode` pour transcoder en MP3 (Ă©conomise la 4G), `proxy` ou `x-accel-redirect` recommandĂ© derriĂšre Nginx. - **Stockage** : Community = `local`, Koel Plus ajoute S3/Nextcloud/Dropbox. - **Logs** : `LOG_CHANNEL=stack` (stack daily + papertrail optionnel). ## 🔄 Alternatives ### Open Source - [[app-navidrome]] — Go, ultra lĂ©ger, multi-users natifs, Subsonic aussi. - [[app-ampache]] — PHP historique, compatible Subsonic, plus complet mais UI datĂ©e. - [[app-funkwhale]] — FĂ©dĂ©rĂ© (ActivityPub), orientĂ© podcasts et communautĂ©s. - [[app-airsonic]] — Java, Subsonic-compatible. - [[app-gonic]] — Go, fork d'Airsonic-Advanced, minimaliste. - [[app-jellyfin]] — Plus gĂ©nĂ©raliste (vidĂ©o + audio + Live TV). - [[app-icecast]] — Pure serveur de streaming (radio). - [[app-azuracast]] — Plateforme de webradio (broadcast). ### PropriĂ©taires (ce que cette app remplace) - Spotify — Streaming musical freemium. - Apple Music — Streaming musical freemium. - Tidal — Streaming HiFi/FLAC. - Deezer — Streaming musical freemium. - YouTube Music — Streaming avec vidĂ©o. ## 🔒 SĂ©curitĂ© - **HTTPS obligatoire** (Traefik ou Caddy avec Let's Encrypt) : la bibliothĂšque musicale est locale mais l'API Subsonic est exposĂ©e. - **Header d'auth** : si reverse proxy SSO, valider `X-Forwarded-User` cĂŽtĂ© Koel (`TRUSTED_PROXIES`). - **Chiffrement at-rest** : penser Ă  chiffrer le volume `./music` (LUKS) sur serveur partagĂ©/NAS. - **Rate limiting** : l'API Subsonic n'est pas throttlĂ©e nativement, placer un WAF (CrowdSec) devant. - **Mises Ă  jour** : suivre les releases GitHub (correctifs XSS et d'auth sur le panel admin). - **Credentials DB** : changer `ChangeM3_*` en secrets forts stockĂ©s dans un fichier `.env` non versionnĂ©. - **Backups** : `./db` (MySQL) et `./covers` (cache pochettes) Ă  sauvegarder rĂ©guliĂšrement ; la musique elle-mĂȘme ne se sauvegarde pas, on la duplique. ## 📚 Ressources - Site officiel : https://koel.dev/ - Documentation : https://docs.koel.dev/ - Repository : https://github.com/koel/koel - Apps mobiles : https://koel.dev/#download - Koel Plus : https://koel.dev/plus - Wiki communautaire : https://github.com/koel/koel/wiki - Subsonic API : https://www.subsonic.org/pages/api.jsp - DĂ©mo live : https://demo.koel.dev/ ## 🔗 Pages LiĂ©es - [[cat-music]] — CatĂ©gorie parente - [[app-navidrome]] — Concurrent Go, plus lĂ©ger - [[app-ampache]] — Concurrent PHP historique - [[app-funkwhale]] — Alternative fĂ©dĂ©rĂ©e - [[app-gonic]] — Subsonic-compatible minimaliste - [[app-azuracast]] — Pour le cĂŽtĂ© radio/stream broadcast - [[app-traefik]] — Reverse proxy HTTPS - [[app-authelia]] — SSO optionnel - [[recettes-docker-compose]] — Templates Docker - [[securisation-home-lab]] — Bonnes pratiques