-
v8.3.0 Stable
released this
2026-01-09 00:30:43 +03:00 | 189 commits to master since this release📅 Originally published on GitHub: Thu, 08 Jan 2026 21:32:58 GMT
🏷️ Git tag created: Thu, 08 Jan 2026 21:30:43 GMTWhat's Changed
- fix: hover status on context menu items by @phanan in https://github.com/koel/koel/pull/2184
- chore(deps): bump paragonie/sodium_compat from 1.23.0 to 1.24.0 by @dependabot[bot] in https://github.com/koel/koel/pull/2185
- chore: turn main/release branch names into variables by @phanan in
add9401a4b
Full Changelog: https://github.com/koel/koel/compare/v8.2.0...v8.3.0
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
koel-v8.3.0.tar.gz
0 downloads ·
2026-02-26 02:31:19 +03:00 · 34 MiB -
koel-v8.3.0.zip
0 downloads ·
2026-02-26 02:31:22 +03:00 · 42 MiB
-
v8.2.0 Stable
released this
2025-12-23 00:11:05 +03:00 | 193 commits to master since this release📅 Originally published on GitHub: Mon, 22 Dec 2025 21:21:34 GMT
🏷️ Git tag created: Mon, 22 Dec 2025 21:11:05 GMTWhat's Changed
- feat: delete podcast upon last unsubscription by @phanan in https://github.com/koel/koel/pull/2161
- feat: add synchronized LRC lyrics support by @DzmingLi in https://github.com/koel/koel/pull/2154
- feat: improvements for plain-text and LRC lyrics by @phanan in https://github.com/koel/koel/pull/2162
- fix: slow scan (closes #2165) by @phanan in https://github.com/koel/koel/pull/2173
- fix: missing lyrics support for FLAC files by @ngiamour in https://github.com/koel/koel/pull/2178
- chore(ui): adapt fullscreen to theme colors by @phanan in
fb2fa90165 - chore(ui): adapt plyr tooltip to theme color by @phanan
e22486ae41 - chore: prevent hotkeys from leaking out of dialogs by @phanan in
8bed6c34c3 - fix: preamp lost precision due to implicit conversion to int by @phanan in
1843fbb316
New Contributors
- @DzmingLi made their first contribution in https://github.com/koel/koel/pull/2154
- @ngiamour made their first contribution in https://github.com/koel/koel/pull/2178
Full Changelog: https://github.com/koel/koel/compare/v8.1.0...v8.2.0
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
koel-v8.2.0.tar.gz
0 downloads ·
2026-02-26 02:31:14 +03:00 · 34 MiB -
koel-v8.2.0.zip
0 downloads ·
2026-02-26 02:31:16 +03:00 · 42 MiB
-
v8.1.0 Stable
released this
2025-10-27 20:16:43 +03:00 | 211 commits to master since this release📅 Originally published on GitHub: Mon, 27 Oct 2025 17:26:41 GMT
🏷️ Git tag created: Mon, 27 Oct 2025 17:16:43 GMTWhat's Changed
- chore: make file inputs not take the full width by @phanan in https://github.com/koel/koel/pull/2148
- fix: enable picking custom themes when creating embeds by @phanan in https://github.com/koel/koel/pull/2149
- chore(ui): ensure checkbox contrast by @phanan in https://github.com/koel/koel/pull/2150
- fix: selected playables are not collected properly by @phanan in https://github.com/koel/koel/pull/2151
- feat(ui): use dialog element for context menus by @phanan in https://github.com/koel/koel/pull/2152
- refactor: extract artwork fields to a reusable component by @phanan in https://github.com/koel/koel/pull/2156
- feat(ui): use highlight color for selection by @phanan in https://github.com/koel/koel/pull/2157
Full Changelog: https://github.com/koel/koel/compare/v8.0.0...v8.1.0
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
koel-v8.1.0.tar.gz
0 downloads ·
2026-02-26 02:31:09 +03:00 · 34 MiB -
koel-v8.1.0.zip
0 downloads ·
2026-02-26 02:31:11 +03:00 · 42 MiB
-
v8.0.0 Stable
released this
2025-10-23 18:13:31 +03:00 | 221 commits to master since this release📅 Originally published on GitHub: Thu, 23 Oct 2025 17:49:40 GMT
🏷️ Git tag created: Thu, 23 Oct 2025 15:13:31 GMTWelcome to Koel v8 (code named Tchaikovsky). This version brings a set of major changes, most notably:
Embeds
You can now embed songs, playlists, artists, albums… hosted by Koel. Embedding allows you to share your music with others without having to create an account for them, making it super useful for music creators.
For more information on embedding, refer to the documentation.
Custom themes
Koel Plus users can now create and use custom themes, which is simply a combination of a color pallette (foreground, background, and highlight colors), an optional background image, font family, and font size.
Check the documentation for more details.
White labeling
Koel Plus users (or, to be precise, admins) can now customize the branding elements of Koel i.e. name, logo, and cover image.
Command to fetch missing artist and album artworks
A new artisan command,
koel:fetch-artworkhas been added by popular demand. This command will attempt to fetch artist and album artworks from available sources (Spotify, Wikipedia, etc.). To "play nice" with these services, the fetching will be done at the rate of maximum 1 operation per second.Better
koel:initscriptA
composer koel:initcommand has been added, which triggersphp artisan koel:initunder the hood. The core difference between the two commands is thatcomposer koel:initworks at the Composer level and will install the dependencies beforehands, ensuringphp artisan koel:initcan run.Laravel 12
Koel is now powered by Laravel 12. That's it, that't the memo.
As usual, a bunch of bug fixes and improvements have also been added under the hood.
Upgrade
- Make a backup of your database
- Depending on your installation method, either check out the tag by running
git pull && git checkout v8.0.0or downloading and extracting the release archive - If building from source, run
composer koel:initas your webserver user - Enjoy!
Change List
- feat: support embeds by @phanan in https://github.com/koel/koel/pull/2105
- feat(plus): simplify Dropbox auth route by @phanan in https://github.com/koel/koel/pull/2108
- feat: revamp role and permission system by @phanan in https://github.com/koel/koel/pull/2110
- feat(build): use Node 22 by @phanan in https://github.com/koel/koel/pull/2111
- refactor: revamp context menus by @phanan in https://github.com/koel/koel/pull/2112
- feat: use proper song lists for home screen by @phanan in https://github.com/koel/koel/pull/2113
- feat(plus): support custom branding by @phanan in https://github.com/koel/koel/pull/2117
- feat: add composer script for
koel:initby @phanan in https://github.com/koel/koel/pull/2119 - fix: allow empty playlist description by @Doppelkeks12 in https://github.com/koel/koel/pull/2118
- feat: keep track of song/transcode sizes by @phanan in https://github.com/koel/koel/pull/2120
- fix: sidesheet background went missing by @phanan in https://github.com/koel/koel/pull/2122
- Fix typos and linguistic errors in documentation by @survivant in https://github.com/koel/koel/pull/2121
- chore: add PR template and codeowner file to aid maintenance by @phanan in https://github.com/koel/koel/pull/2124
- fix: make album/artist tabs scrollable on mobile by @phanan in https://github.com/koel/koel/pull/2125
- feat: use
v-bindinstead of injection for modal context by @phanan in https://github.com/koel/koel/pull/2126 - fix: stop playlist sidebar item events from bubbling by @phanan in https://github.com/koel/koel/pull/2127
- fix: Wikipedia connector and ImageWriter got broken by @phanan in https://github.com/koel/koel/pull/2130
- fix: only cache Wiki summary for 1 month by @phanan in https://github.com/koel/koel/pull/2131
- feat: add a command to fetch artist/album artworks by @phanan in https://github.com/koel/koel/pull/2132
- fix: "new albums" layout for small screens by @phanan in https://github.com/koel/koel/pull/2133
- chore(docs): include CodeSpect logo in README by @mattb-it in https://github.com/koel/koel/pull/2135
- docs: white labeling by @phanan in https://github.com/koel/koel/pull/2136
- fix: add cache invalidation after library prune by @Doppelkeks12 in https://github.com/koel/koel/pull/2114
- feat(plus): custom themes by @phanan in https://github.com/koel/koel/pull/2138
- refactor: simplify all those image URLs and paths by @phanan in https://github.com/koel/koel/pull/2141
- chore(build): upgrade to Laravel 12 by @phanan in https://github.com/koel/koel/pull/2143
- chore(ui): add input border by @phanan in https://github.com/koel/koel/pull/2145
- fix: a couple of minor mobile issues by @phanan in https://github.com/koel/koel/pull/2147
New Contributors
- @Doppelkeks12 made their first contribution in https://github.com/koel/koel/pull/2118
- @survivant made their first contribution in https://github.com/koel/koel/pull/2121
- @mattb-it made their first contribution in https://github.com/koel/koel/pull/2135
Full Changelog: https://github.com/koel/koel/compare/v7.15.1...v8.0.0
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
koel-v8.0.0.tar.gz
0 downloads ·
2026-02-26 02:31:04 +03:00 · 34 MiB -
koel-v8.0.0.zip
0 downloads ·
2026-02-26 02:31:06 +03:00 · 42 MiB
-
v7.15.1 Stable
released this
2025-09-14 18:38:31 +03:00 | 262 commits to master since this release📅 Originally published on GitHub: Sun, 14 Sep 2025 15:42:38 GMT
🏷️ Git tag created: Sun, 14 Sep 2025 15:38:31 GMTWhat's Changed
- refactor: turn some method args into DTO by @phanan in https://github.com/koel/koel/pull/2091
- chore: make dropzone fullscreen by @phanan in https://github.com/koel/koel/pull/2096
- fix: inconsistent state after changing album/artist name (closes #2094) by @phanan in https://github.com/koel/koel/pull/2097
- fix: playlist disappears when no results are found (closes #2092) by @phanan in https://github.com/koel/koel/pull/2100
- refactor: restrict user API routes to specific actions only (#2098) by @WangYihang in https://github.com/koel/koel/pull/2101
- refactor: better types for modals and their contexts by @phanan in https://github.com/koel/koel/pull/2102
New Contributors
- @WangYihang made their first contribution in https://github.com/koel/koel/pull/2101
Full Changelog: https://github.com/koel/koel/compare/v7.15.0...v7.15.1
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
koel-v7.15.1.tar.gz
0 downloads ·
2026-02-26 02:30:58 +03:00 · 33 MiB -
koel-v7.15.1.zip
0 downloads ·
2026-02-26 02:31:00 +03:00 · 41 MiB
-
v7.15.0 Stable
released this
2025-09-09 08:43:02 +03:00 | 271 commits to master since this release📅 Originally published on GitHub: Tue, 09 Sep 2025 05:54:12 GMT
🏷️ Git tag created: Tue, 09 Sep 2025 05:43:02 GMTWhat's Changed
- feat: upload/remove artist/album arts via form by @phanan in https://github.com/koel/koel/pull/2079
- feat: group fragmented commands into an Actions menu by @phanan in https://github.com/koel/koel/pull/2081
- fix: reapply the selection state for playable lists by @phanan in https://github.com/koel/koel/pull/2082
- chore: some type improvements by @phanan in https://github.com/koel/koel/pull/2083
- feat: add Playlist description by @phanan in https://github.com/koel/koel/pull/2084
- feat(plus): add Ticketmaster integration by @phanan in https://github.com/koel/koel/pull/2085
- feat: unify all generated/uploaded images by @phanan in https://github.com/koel/koel/pull/2086
- feat: upload/remove playlist cover by @phanan in https://github.com/koel/koel/pull/2087
- chore: move some require-dev requirements to require by @phanan in https://github.com/koel/koel/pull/2088
- feat: optimize release build by @AEnterprise in https://github.com/koel/koel/pull/2077
- fix: janks on song lists and some other improvements by @phanan in https://github.com/koel/koel/pull/2090
Upgrade
With #2086, Koel will now store and serve all generated and uploaded images (album covers, artist images, radio station logos, user avatars, etc.) in one unified
public/img/storagedirectory. Thus, before upgrading:-
Make a backup of your
public/imgdirectory. -
Create a
public/img/storagedirectory and move all (image) files underpublic/img/artists,public/img/covers,public/img/playlists,public/img/radio-stations,public/img/avatarsthere. You can do it manually or use a simple bash script like this for the task:#!/usr/bin/env bash set -euo pipefail BASE_DIR="public/img" DEST_DIR="$BASE_DIR/storage" SUBFOLDERS=("artists" "covers" "playlists" "radio-stations" "avatars") mkdir -p "$DEST_DIR" for folder in "${SUBFOLDERS[@]}"; do SRC="$BASE_DIR/$folder" [[ -d "$SRC" ]] || continue echo "Moving files from $SRC ..." mv -n "$SRC"/* "$SRC"/.* "$DEST_DIR"/ 2>/dev/null || true rmdir "$SRC" 2>/dev/null || true done echo "All done. Files are now in $DEST_DIR"
Everything else should go per usual.
New Contributors
- @AEnterprise made their first contribution in https://github.com/koel/koel/pull/2077
Full Changelog: https://github.com/koel/koel/compare/v7.14.0...v7.15.0
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
koel-v7.15.0.tar.gz
0 downloads ·
2026-02-26 02:30:53 +03:00 · 33 MiB -
koel-v7.15.0.zip
0 downloads ·
2026-02-26 02:30:55 +03:00 · 41 MiB
-
v7.14.0 Stable
released this
2025-08-31 09:56:36 +03:00 | 284 commits to master since this release📅 Originally published on GitHub: Sun, 31 Aug 2025 07:05:26 GMT
🏷️ Git tag created: Sun, 31 Aug 2025 06:56:36 GMTWhat's Changed
- feat: genre revamp by @phanan in https://github.com/koel/koel/pull/2068
- refactor: use functional approach for FE tests by @phanan in https://github.com/koel/koel/pull/2069
- feat(ai): add Laravel Boost by @phanan in https://github.com/koel/koel/pull/2070
- feat(perf): use file resources instead of contents for cloud upload/download by @phanan in https://github.com/koel/koel/pull/2071
- feat: use hash to check if file changed by @phanan in https://github.com/koel/koel/pull/2072
- feat: use
useFormcomposable for forms by @phanan in https://github.com/koel/koel/pull/2073 - feat: add Log Viewer for easier local debugging by @phanan in https://github.com/koel/koel/pull/2074
- feat: add NightWatch support by @phanan in https://github.com/koel/koel/pull/2075
- fix: artifact path creation bug by @phanan in https://github.com/koel/koel/pull/2076
Full Changelog: https://github.com/koel/koel/compare/v7.13.0...v7.14.0
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
koel-v7.14.0.tar.gz
0 downloads ·
2026-02-26 02:30:48 +03:00 · 39 MiB -
koel-v7.14.0.zip
0 downloads ·
2026-02-26 02:30:50 +03:00 · 50 MiB
-
v7.13.0 Stable
released this
2025-08-22 17:19:18 +03:00 | 296 commits to master since this release📅 Originally published on GitHub: Fri, 22 Aug 2025 15:24:32 GMT
🏷️ Git tag created: Fri, 22 Aug 2025 14:19:18 GMTWhat's Changed
- fix: smart playlist cannot find new songs (closes #2034) (#2065)
- fix: broken no-genre summary if all songs have genres (#2064)
- fix: headers already sent in PHP streamer (closes #2054) (#2062)
- fix: downgrade sodium_compat to work with 32bit systems (#2061)
- fix: Koel Plus modal cutoff (#2060)
- fix: empty URL would sometimes be displayed (#2057) by @lewislarsen
- feat: support radio stations (#2058)
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
koel-v7.13.0.tar.gz
0 downloads ·
2026-02-26 02:30:42 +03:00 · 38 MiB -
koel-v7.13.0.zip
0 downloads ·
2026-02-26 02:30:44 +03:00 · 49 MiB
-
v7.12.0 Stable
released this
2025-08-15 14:30:16 +03:00 | 307 commits to master since this release📅 Originally published on GitHub: Fri, 15 Aug 2025 11:39:17 GMT
🏷️ Git tag created: Fri, 15 Aug 2025 11:30:16 GMTWhat's Changed
- feat(demo): prune old and inactive user accounts by @phanan in https://github.com/koel/koel/pull/2043
- fix: remove obsolete artist/album seeders (closes #2048) by @phanan in https://github.com/koel/koel/pull/2049
Full Changelog: https://github.com/koel/koel/compare/v7.11.0...v7.12.0
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
koel-v7.12.0.tar.gz
0 downloads ·
2026-02-26 02:30:35 +03:00 · 39 MiB -
koel-v7.12.0.zip
0 downloads ·
2026-02-26 02:30:38 +03:00 · 50 MiB
-
v7.11.0 Stable
released this
2025-08-06 11:51:36 +03:00 | 311 commits to master since this release📅 Originally published on GitHub: Wed, 06 Aug 2025 09:53:25 GMT
🏷️ Git tag created: Wed, 06 Aug 2025 08:51:36 GMTWhat's Changed
- You can now mark not just songs and episodes, but artists, albums, and podcasts as favorites. The albums, artists, and podcasts UI elements have been adapted to integrate this change — for example, clicking the "Show all / Show favorites only" button on the Album list screen will filter the list accordingly.
- A couple of bugs have been squashed
- A couple of improvements were added
Upgrade
Since the aforementioned changes unfortunately required a major modification to the database structure, BACK UP YOUR DATABASE before upgrading.
Important
Back up your database!
Once you've made the database backup, follow the upgrade guide as per usual. Then, re-import the artists and albums search indexes:
php artisan scout:flush "App\Models\Album" php artisan scout:import "App\Models\Album" php artisan scout:flush "App\Models\Artist" php artisan scout:import "App\Models\Artist"Oopsie?
If there's any error during database migration, check
storage/logs/laravel.logfor the error details. If you can fix it yourself, great! Otherwise, restore the backup, reverse the upgrade, and file a report.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
koel-v7.11.0.tar.gz
0 downloads ·
2026-02-26 02:30:28 +03:00 · 39 MiB -
koel-v7.11.0.zip
0 downloads ·
2026-02-26 02:30:31 +03:00 · 50 MiB
mirror of
https://github.com/koel/koel.git
synced 2026-04-25 00:36:03 +03:00