TiloBox
Back to directory
Koel project preview

Koel

A self-hosted music streaming application with library scanning, browser playback, playlists, favorites, and user accounts.

LicenseMIT
GitHub stars17.2k
Last commit1 weeks ago
Tags6 topics
LaravelMusic StreamingVuePrivacySelf HostedOpen Source
Overview

Why consider Koel?

Koel is a self-hosted audio streaming server that turns personal media libraries into a web-based listening platform. It pairs a Laravel backend API with a Vue frontend and supports Subsonic client applications.

Guided learning

Learn Koel by building

Practical setup notes, real use cases, and copy-ready examples in one focused guide.

5 min read 5 sections
In this guide5 sections

Deploying and Operating Koel Personal Audio Streaming Server

Overview and Core Architecture

Koel (also stylized as koel, with a lowercase k) is a free, open-source music streaming solution that turns your personal collection into a sleek, web-based listening experience. Designed for media enthusiasts and self-hosters who want full control over their audio files, the system indexes local audio tracks and streams them on demand to desktop and mobile browsers. Full details on feature scope and repository status can be reviewed in the Koel README.

The server is a Laravel application acting as the API, and the client is a Vue.js application responsible for the user interface. This decoupling enables clear separation between data storage, media streaming mechanics, background scanning jobs, and real-time playback controls. Technical requirements and platform architecture are documented in the Getting Started Guide.

Beyond playback, Koel handles playlists, smart playlists, scrobbling, podcasts, radio, Last.fm/Spotify/MusicBrainz integrations, and an AI assistant that responds to natural-language commands. Users can organize custom collections, manage podcast subscriptions, and stream live internet radio stations directly from the web interface. Additional integration details are described in the Koel README.

Koel speaks the Subsonic / OpenSubsonic API, so you’re not stuck inside the web interface. This compatibility allows administrators and listeners to connect standalone mobile apps, desktop players, and network streamers directly to their music server instance. The official overview is published on the Koel Documentation Hub.

As an open-source project hosted on GitHub, Koel describes itself as a Music streaming solution that works. Contribute to koel/koel development by creating an account on GitHub. Community members can inspect the source code, file bug reports, and follow version updates directly on the Koel GitHub Repository.

Database Requirements and Deployment Options

One of the databases supported by Laravel. Koel has been tested with MySQL, MariaDB, PostgreSQL, and SQLite. For straightforward single-user installations or quick local testing, SQLite offers zero-configuration storage, whereas MySQL, MariaDB, or PostgreSQL provide robust concurrency for large multi-gigabyte collections. Database compatibility instructions are provided in the Getting Started Guide.

Koel works well with FrankenPHP, a modern PHP application server that bundles a webserver (Caddy) and the PHP runtime into a single binary, with automatic HTTPS out of the box. Administrators can choose between standalone binary deployments, containerized Docker setups, or standard web server stacks such as Nginx paired with PHP-FPM, as detailed in the Getting Started Guide.

Setup and Initialization Workflow

Koel supports installing from a pre-compiled archive, which eliminates the need of manually compiling the front-end assets. To set up this deployment method, download the release archive, extract the files into the target web root directory, and execute the installation wizard as outlined in the Getting Started Guide:

bash
1composer koel:init -- --no-assets
2
3# Follow the wizard to populate necessary configurations
4
5php artisan serve

For production, point a proper server (Apache, nginx, Caddy, etc.) at Koel's public/ directory — the process is no different from any standard PHP application. Running behind a reverse proxy ensures stable SSL termination, static asset offloading, and reliable background audio delivery, as documented in the Getting Started Guide.

System Diagnostics and CLI Management

Koel comes with a set of handy CLI commands to help you manage your installation. These Artisan commands allow administrators to manage user accounts, trigger library rescans, clean up temporary media files, and diagnose environmental issues from the terminal, as documented in the CLI Commands Reference.

Always run commands as your web server user (e.g. www-data or nginx), never as root. To verify that all required PHP extensions, directory permissions, database connectivity, and media streaming components are operating correctly, administrators can run the doctor diagnostic command detailed in the CLI Commands Reference:

bash
1php artisan koel:doctor

Maintenance, Search Indexing, and License Terms

If you use the default search driver, run this once after upgrading to rebuild your search indexes: running the search import artisan task ensures that newly added artists, albums, and song titles remain instantly searchable across the web interface and connected client applications, as explained in the v9.11.1 Release Notes.

bash
1php artisan koel:search:import

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction. The permissive licensing enables self-hosters and organizations to adapt the platform freely for their internal audio streaming requirements, as stated in the Koel License.

Related tools

More options with a similar category or technology profile.

Koel FAQs

Koel is listed as a Media tool on TiloBox. Review the overview, features, and official documentation on this page to decide whether it solves your specific workflow.

Start with the project's GitHub repository and official website for supported installation and deployment instructions. Test the setup with representative data or a small project before rolling it out more widely.

Koel is listed under the MIT license. Read the complete license text and the project's notices before using, modifying, or distributing the software.

Production readiness depends on your requirements. Review maintenance activity, security practices, documentation, backup and upgrade procedures, and compatibility with your stack; then validate it in a non-production environment.

Koel is listed as an alternative to Spotify. Compare the core workflow, deployment model, integrations, and licensing against your must-have requirements before switching.