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_limitto 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
- 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:
cd <PUBLIC_WEB_DIRECTORY_FOR_KOEL> git clone --recurse-submodules https://github.com/phanan/koel.git . git checkout v4.0.0 # Check out the latest version at https://github.com/phanan/koel/releases 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.
Check out Releases for upgrade guides corresponding to your Koel version.