No description
Find a file
2022-07-29 12:51:20 +02:00
.github feat: adap release and init commands to new workflow 2022-07-29 12:49:55 +02:00
api-docs migration: settings screen 2022-04-22 00:20:21 +02:00
app feat: revamp sync and sync commands 2022-07-29 12:51:20 +02:00
bootstrap chore: remove custom Application file 2021-01-10 23:18:21 +01:00
config feat: integrate with Spotify 2022-07-17 00:42:29 +02:00
cypress fix(test): attempt to fix artist/album list false positives on Cypress 2022-05-16 12:14:42 +02:00
database feat: store settings as json instead of serialized 2022-07-07 23:23:41 +02:00
public feat: better supports for compilation when scanning 2022-07-05 15:47:26 +02:00
resources fix: undefined service worker 2022-07-27 22:09:48 +02:00
routes chore(api): remove redundant YouTube controller 2022-07-27 12:18:53 +02:00
storage fix: track logs dir 2022-07-29 09:33:50 +02:00
tests feat: revamp sync and sync commands 2022-07-29 12:51:20 +02:00
.editorconfig feat(test|api): add Album tests 2022-07-26 22:08:31 +02:00
.env.example feat: support MeiliSearch 2022-07-29 10:04:23 +02:00
.eslintrc test: add artist info unit tests 2022-05-04 23:01:35 +02:00
.gitattributes Big Bang 2015-12-13 12:42:28 +08:00
.gitignore fix: track logs dir 2022-07-29 09:33:50 +02:00
.gitpod.dockerfile chore: use Laravel' original structure 2020-09-12 17:14:34 +02:00
.gitpod.yml Vue highlighting added for Gitpod (#1202) 2020-04-02 17:33:26 +02:00
.version chore(release): bump version to v5.1.14 2022-04-13 13:33:20 +02:00
artisan Big Bang 2015-12-13 12:42:28 +08:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2020-09-14 09:48:41 +02:00
composer.json feat: support MeiliSearch 2022-07-29 10:04:23 +02:00
composer.lock feat: support MeiliSearch 2022-07-29 10:04:23 +02:00
cypress.json feat(build): add Cypress build integration 2021-01-03 20:41:14 +01:00
LICENSE.md The most important commit of all 2018-01-01 00:37:36 +01:00
nginx.conf.example feat(doc): recommend non-php streaming method 2022-07-28 12:55:19 +02:00
package.json chore: remove alertify 2022-07-26 16:58:56 +02:00
phpstan.neon.dist fix(cs): broken static analysis 2022-07-27 20:08:57 +02:00
phpunit.xml.dist fix(test): set fulltext search driver to tntsearch 2022-07-29 10:26:18 +02:00
README.md Update README.md 2021-07-25 19:07:00 +02:00
ruleset.xml feat: require PHP7.4 (#1326) 2021-06-05 12:47:56 +02:00
server.php chore: use Laravel' original structure 2020-09-12 17:14:34 +02:00
tag.sh chore: disable shellcheck 2021-05-21 13:57:04 +02:00
vite.config.js feat: use FontAwesome as components 2022-07-15 16:48:06 +02:00
yarn.lock chore: remove alertify 2022-07-26 16:58:56 +02:00

koel e2e unit Code Quality codecov OpenCollective OpenCollective

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.

Sponsors

GitHub Sponsors

OpenCollective

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