phanan/koel

Personal audio streaming service that works.

Maintainers

Details

github.com/phanan/koel

Installs: 77

Dependents: 0

Suggesters: 0

Security: 0

Stars: 12 992

Watchers: 336

Forks: 1 654

Type:project

v5.1.8 2021-10-25 20:35 UTC

README

Showcase

Intro

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

Install and Upgrade Guide

For system requirements, installation/upgrade guides, troubleshooting etc., head over to the Official Documentation.

Development

Since Koel makes use of git submodules, you'll want to make sure the submodule is up-to-date:

git pull
git submodule update --init --recursive --remote

# install the submodule dependencies
cd resources/assets
yarn install

To start the PHP dev server, which serves as the API of the application, run the following command from the root directory. By default, the server will listen at port 8000.

php artisan serve

For the client application itself, run this command:

yarn hot

A development version of Koel should now be available at http://localhost:8080 with full support for hot module reloading.

Alternatively, you can start both the PHP server and the client application in one go with yarn dev, which uses start-server-and-test under the hood.

Testing, Linting, Static Analysis and Stuff

# PHP-related code quality tasks
# Basically, take a look at the "scripts" section in composer.json
composer test        # Run the PHP test suite
composer cs          # Run code style checker
composer cs:fix      # Run code style fixer 
composer analyze     # Run PHP static analysis

yarn build # Build a production version of the client application

# Client/E2E code quality tasks
# You may want to run `yarn build` first.
yarn test:e2e        # Run the Cypress test suite interactively
yarn test:e2e:ci     # Run the Cypress test suite non-interactively (CI mode)
# These commands need to be run from within the submodule (resources/assets)
yarn lint            # Lint
yarn type-check      # TypeScript type checking
yarn test            # Unit testing

Note: If you're already running yarn test:e2e, there's no need to start a dev server. yarn test:e2e calls yarn dev internally and will eliminate the existing yarn dev process, if any.

A quick and easy way to start hacking on koel is to open and run this repo in Gitpod, an online IDE with full Laravel support.

Open in Gitpod

Koel Player

Koel Player screenshots

Koel Player is the official mobile app for Koel, which supports both iOS and Android without the limitations of the mobile web version. For more information on the project, visit its repository.

Backers

Support me on OpenCollective with a monthly donation and help me continue building Koel.

68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f302f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f312f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f322f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f332f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f342f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f352f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f362f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f372f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f382f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f392f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f31302f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f31312f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f31322f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f31332f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f31342f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f31352f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f31362f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f31372f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f31382f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f31392f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f32302f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f32312f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f32322f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f32332f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f32342f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f32352f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f32362f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f32372f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f32382f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f6261636b65722f32392f6176617461722e737667

Sponsors

GitHub Sponsors

OpenCollective

Become a sponsor on OpenCollective and get your logo on our README on Github with a link to your site.

68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f302f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f312f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f322f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f332f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f342f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f352f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f362f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f372f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f382f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f392f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f31302f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f31312f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f31322f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f31332f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f31342f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f31352f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f31362f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f31372f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f31382f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f31392f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f32302f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f32312f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f32322f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f32332f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f32342f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f32352f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f32362f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f32372f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f32382f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6b6f656c2f73706f6e736f722f32392f6176617461722e737667