Koel (also styled as koel, with a lowercase k) is a simple web-based personal audio streaming service written in Vue at the client-side and Laravel on the server-side. Targeting web developers, Koel embraces some of the more modern web technologies – flexbox, audio, and drag-and-drop API to name a few – to do its job.


Koel has two components, each with its own set of requirements:


  • All requirements by Laravel – PHP, OpenSSL, composer and such. Consider setting PHP’s memory_limit to a good value (512M or better) if you have a big library.
  • MySQL, MariaDB, PostgresSQL, or SQLite. Actually, any DBMS supported by Laravel should work.
  • NodeJS latest stable with yarn


  • Any decent web browser will do – Koel has been tested on Chrome 47, Firefox 42, Safari 8, Opera 34, and Edge.



From your console, run the following commands:

git clone --recurse-submodules .
git checkout v4.0.0 # Check out the latest version at
composer install
php artisan koel:init # Populate credentials during the process

php artisan serve

You should now be able to visit http://localhost:8000 in your browser and start using Koel.

http://localhost:8000, however, is only the development server for Koel (or rather Laravel). For optimal performance, you’ll want to set up the production version, the configuration of which varies depending on your webserver of choice (Apache, Nginx, Caddy etc.) and is outside of this document’s scope, but shouldn’t be any different from that of a standard PHP application.

If you’re on Debian, here’s an unofficial installation guide. This may or may not be out of date, so use it with your own risk.

If you want more control, edit .env file. There’s quite a few settings there to tweak Koel to your needs. Remember to reload the server for the changes to take effects.

With Docker

Koel doesn’t maintain an official Docker image, but community-supported ones like 0xcaff/koel and binhex/arch-koel are available.


Check out Releases for upgrade guides corresponding to your Koel version.


Please enter your comment!
Please enter your name here