K

Koel

17.1k stars·System Optimization·SHA-256 checksum verified

A web-based personal audio streaming service with a beautiful UI, powered by Vue and Laravel.

Smart Download

Visit Project Homepage

No installer available yet — head to the source repository

Host your own private music streaming server with a modern web interface.

Core Features

  • Modern Vue + Laravel frontend
  • Supports MP3, FLAC, OGG and more
  • Playlist management & search
  • Official mobile app (iOS & Android)
  • Self-hosted for full privacy control

What It Can't Do

  • •Requires server administration knowledge; no built-in music; mobile web is limited, use official app for best experience.

Use Cases

  • Replace cloud music services with your own private server
  • Share music library across devices in a home network

Detailed Introduction

Koel is a simple, self-hosted personal audio streaming service that lets you listen to your music collection from anywhere. Built with Vue.js on the front-end and Laravel on the back-end, it offers a modern, responsive interface for browsing, searching, and playing music. Koel supports various audio formats, provides playlist management, and has an official mobile app for iOS and Android. It targets web developers and music enthusiasts who want full control over their music library without relying on cloud services.

Troubleshooting & FAQ (2)

Troubleshooting
How do I fix Koel scan not removing deleted songs from the database?

This happens when the post-scan event listeners do not run because required Laravel environment variables are missing, especially QUEUE_CONNECTION. Compare your .env file with .env.example and add the Laravel-specific variables from the bottom of the example file. For a standard Koel/Docker setup without a separate queue worker, ensure QUEUE_CONNECTION=sync. Then restart the container and rescan:

docker restart <koel-container>
docker exec -it <koel-container> php artisan koel:scan

After the scan, songs whose files have been removed from storage should be deleted from the songs table and disappear from the web interface.

GitHub Issue #2466
Troubleshooting
How to fix 'Server error' when uploading large FLAC/audio files to Koel (50MB limit)?

Koel's default 50MB upload cap comes from PHP's upload_max_filesize and post_max_size settings. To raise it:

1. Copy .htaccess.example from the Koel repo root to .htaccess (if not already present).
2. Edit the values at the bottom, changing 50M to your desired limit, e.g.:

php_value upload_max_filesize 800M
   php_value post_max_size 800M

3. Save the file — Apache picks up .htaccess changes immediately, no restart needed.

Note: If you use the official Koel Docker image, its bundled php.ini already sets the limit to 800M, so align your .htaccess with that value. Also, if you proxy through Cloudflare, the free tier caps request/response sizes at 100MB — temporarily disable the Cloudflare proxy (DNS-only mode) when uploading files larger than that.

GitHub Issue #2664

Tags

musicstreamingself-hostedlaravelvue

Getting Started

1

Download installer

Click the button above to download the installer for your system

2

Install the software

Double-click the downloaded installer and follow the prompts

3

Step 1: Ensure PHP 8.1+, MySQL/MariaDB, and Composer are installed

4

Step 2: Clone the repo and run composer install

5

Step 3: Run php artisan koel:init to set up the database

Install Guide
  1. Step 1: Ensure PHP 8.1+, MySQL/MariaDB, and Composer are installed
  2. Step 2: Clone the repo and run composer install
  3. Step 3: Run php artisan koel:init to set up the database
File Integrity

Checksum not available

This project has not published a SHA-256 checksum on its GitHub Release page

SHA256 Checksum

No checksum available

Download directly from GitHub Releases and verify file integrity yourself

All SHA-256 checksums on this platform are extracted from the project's official GitHub Release page, without any modification. You can independently verify them on the GitHub Releases page.

Open Source Transparency

View GitHub Source
Environment Guide

Uninstall Info

Delete the project directory and drop the Koel database. For Docker setups, remove containers and images.

No Extra Dependencies

Ready to use after download. No additional runtime required.

Project Info
LicenseMIT
Last Updated2026-10-20 17:57:29
GitHub Repository

Having issues? Check the FAQ below

2 FAQs

Similar Projects