Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: koel/koel

v8.1.0

27 Oct 17:26
9439edb

Choose a tag to compare

What's Changed

  • chore: make file inputs not take the full width by @phanan in #2148
  • fix: enable picking custom themes when creating embeds by @phanan in #2149
  • chore(ui): ensure checkbox contrast by @phanan in #2150
  • fix: selected playables are not collected properly by @phanan in #2151
  • feat(ui): use dialog element for context menus by @phanan in #2152
  • refactor: extract artwork fields to a reusable component by @phanan in #2156
  • feat(ui): use highlight color for selection by @phanan in #2157

Full Changelog: v8.0.0...v8.1.0

v8.0.0 Tchaikovsky

23 Oct 17:49
6cf7420

Choose a tag to compare

Welcome 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.

image

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-artwork has 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:init script

A composer koel:init command has been added, which triggers php artisan koel:init under the hood. The core difference between the two commands is that composer koel:init works at the Composer level and will install the dependencies beforehands, ensuring php artisan koel:init can 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

  1. Make a backup of your database
  2. Depending on your installation method, either check out the tag by running git pull && git checkout v8.0.0 or downloading and extracting the release archive
  3. If building from source, run composer koel:init as your webserver user
  4. Enjoy!

Change List

New Contributors

Full Changelog: v7.15.1...v8.0.0

v7.15.1

14 Sep 15:42
89e055b

Choose a tag to compare

What's Changed

  • refactor: turn some method args into DTO by @phanan in #2091
  • chore: make dropzone fullscreen by @phanan in #2096
  • fix: inconsistent state after changing album/artist name (closes #2094) by @phanan in #2097
  • fix: playlist disappears when no results are found (closes #2092) by @phanan in #2100
  • refactor: restrict user API routes to specific actions only (#2098) by @WangYihang in #2101
  • refactor: better types for modals and their contexts by @phanan in #2102

New Contributors

Full Changelog: v7.15.0...v7.15.1

v7.15.0

09 Sep 05:54
441cfe6

Choose a tag to compare

What's Changed

  • feat: upload/remove artist/album arts via form by @phanan in #2079
  • feat: group fragmented commands into an Actions menu by @phanan in #2081
  • fix: reapply the selection state for playable lists by @phanan in #2082
  • chore: some type improvements by @phanan in #2083
  • feat: add Playlist description by @phanan in #2084
  • feat(plus): add Ticketmaster integration by @phanan in #2085
  • feat: unify all generated/uploaded images by @phanan in #2086
  • feat: upload/remove playlist cover by @phanan in #2087
  • chore: move some require-dev requirements to require by @phanan in #2088
  • feat: optimize release build by @AEnterprise in #2077
  • fix: janks on song lists and some other improvements by @phanan in #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/storage directory. Thus, before upgrading:

  1. Make a backup of your public/img directory.

  2. Create a public/img/storage directory and move all (image) files under public/img/artists, public/img/covers, public/img/playlists, public/img/radio-stations, public/img/avatars there. 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

Full Changelog: v7.14.0...v7.15.0

v7.14.0

31 Aug 07:05
e931aa1

Choose a tag to compare

What's Changed

image

Full Changelog: v7.13.0...v7.14.0

v7.13.0

22 Aug 15:24
6c17a38

Choose a tag to compare

What'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)

v7.12.0

15 Aug 11:39
5954050

Choose a tag to compare

What's Changed

  • feat(demo): prune old and inactive user accounts by @phanan in #2043
  • fix: remove obsolete artist/album seeders (closes #2048) by @phanan in #2049

Full Changelog: v7.11.0...v7.12.0

v7.11.0

06 Aug 09:53
f0db461

Choose a tag to compare

What'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.log for the error details. If you can fix it yourself, great! Otherwise, restore the backup, reverse the upgrade, and file a report.

v7.10.4

14 Jul 16:11
d082d88

Choose a tag to compare

  • Adding Ray back as a sponsor. It's a super cool app though and you should consider using it if you're a PHP/JS developer.

Full Changelog: v7.10.3...v7.10.4

v7.10.3

13 Jul 10:25
763e7a6

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v7.10.2...v7.10.3