v7.4.0

Released on Mar 1st, 2026
Contact form, Raw support, and Quality of Life improvements

This release brings major new features across all editions! Supporter Edition users get a contact form allowing visitors to send messages directly from galleries (with full customization for Pro users), slugs as album IDs for prettier SEO-friendly URLs, mass rename functionality to apply renaming rules to photo/album selections, and watermark upload controls to choose between immediate or on-demand watermarking. Pro users gain the ability to let clients highlight photos without authentication—perfect for client galleries—plus revamped album headers with customizable positioning, colors, and focus point control for hero images.

For all users, this version introduces full RAW image support with automatic JPEG conversion while preserving originals, size-selectable zip downloads (small, medium, large, or original), and "remember me" login functionality for extended sessions. Additional improvements include a new photo list view, mass license editing, the ability to see which albums contain a photo, "starred" renamed to "highlight" for clarity, Lychee v3 album redirect fixes, and legacy code cleanup for improved performance.

    Pro ♯4082 : Allow non-authenticated users to highlight photo (by admin option) by @tkulev

        This functionality is targetted to our pro photographers, giving them the ability to provide a gallery to their customer where they can highlight their favorite photos without the need to create an account for them.

    klo ♯4106 : Starred to highlight by @ildyria

        To make it more obvious the difference between starred and photo rating (which also uses stars), we renamed the "starred" feature to "highlight". This is purely a naming change, no functionality has been changed.

    new ♯4113 : Add photo list display by @ildyria

        A small quality of life improvement, we added a list view of photos, similar to the one available for albums. This allows you to see more photos at once and quickly access the photo details.

    SE ♯4114 : Add option to disable watermarking at upload time. by @ildyria

        This is a small feature, but this allows you to disable watermarking at upload time. This is especially useful if you have a large gallery and want to avoid the overhead of watermarking all photos at upload time. You can still watermark photos later on demand.

    new ♯4120 : Mass edit license by @ildyria

        By request, we added the possibility to mass edit the license of photos. This is accessible via right click after selection.

    SE ♯4121 : Mass rename on album view by @ildyria

        It is now possible to apply renaming rules on a selection of photos/albums. This no longer something that is applied only at creation.

    new ♯4122 : Add link to owning albums. by @ildyria

        When viewing the details of a photo, we now display in which albums it is contained.

    klo ♯4124 : Remove endpoint to fetch all data in one go for an album by @ildyria

        This endpoing has been replaced with the head, photos, albums endpoints. This change allowed us to paginate the photos & albums. Now we no longer need it, so let's get rid of this legacy code.

    SE ♯4123 : Slugs as album ids by @ildyria

        To have prettier URLs, we added the possibility to use slugs as album IDs instead of the default UUIDs. The slug is unique for the full Lychee installation, but you can chose yourself exactly which to slug to use for each album.

    fix ♯4125 : add inner transactions to avoid aborting (♯4072) by @FredPraca

        On rare occasions, one of the migrations was failing. @FredPraca added some failsafes to avoid a cascade of failure in such cases.

    new ♯4130 : Raw support by @ildyria

        Instead of uploading jpeg, you can now directly upload your raw files. They will be converted to jpeg using the imagick extension and the raw file will be kept as original. This allows you to keep the best quality of your photos while still being able to easily share them. Note that this kind of conversion does not have noise reduction, so the resulting jpeg will likely be quite noisy as opposed to the output of the leader in the fields.

    fix ♯4126 : Lychee v3 redirect by @tkulev

        A small fix to ensure that album ids from version 3 are properly redirected to the new format. This is important for old photographers which are moving from version 3 to version 7 to ensure that their old links are not broken.

    new ♯4133 : Medium zip download by @ildyria

        We now provide the possibility to download albums as zip archive of a specified size. Instead of fully downloading the original photos, you can now select smaller sizes.

    pro ♯4105 : Album header improvements by @tkulev

        The album header has been revamped, you can now select the position of the title and its color. You are also able to fix the focus point of the hero image, ensuring a better display of the album header image.

    new ♯4134 : feat: implement remember-me login (Feature 023) by @ildyria

        Small feature that was requested, by ticking the remember me, on login you will be logged in for a longer period of time (set by env variable, default is 4 weeks).

    SE ♯4132 : feat: Contact Form (Feature 022) — backend & frontend by @ildyria

        This is a major feature addition for our Supporter Edition users! You can now add a contact form to your gallery, allowing visitors to send you messages directly from the gallery. This is especially useful for photographers who want to allow their customers to reach out to them easily. For our pro users, the contact form is fully customizable, you can choose the labels and titles.

New Contributors

    @FredPraca made their first contribution in https://github.com/LycheeOrg/Lychee/pull/4125

v7.3.3

Released on Feb 15th, 2026
Bulgarian language, fixes and improvements

This is a small patch which brings a few fixes and improvements. The most notable one is the addition of Bulgarian translations, thanks to our new contributor @tkulev. Additionally, @cdzombak added the possibility to filter embedded albums/streams by author using the data-author attribute. We also propose two new smart albums: "My rated pictures" and "My best rated pictures". The first one contains all the photos that you have rated, while the second one contains the best rated photos by you. Those albums are only visible to you and are a great way to quickly access your favorite photos.

This patch also contains a FrankenPHP update to fix some security issues. You can read more about it here
Most notable changes

    new ♯4041 : Add 2 new smart albums: "My rated pictures" and "My best rated pictures" by @ildyria.
    new ♯4046 : Add setting to also hide GPS data by @ildyria.
    fix ♯4048 : Fix settings not being set for default album protection policy by @ildyria.
    fix ♯4049 : Fix delete warning in tags albums by @ildyria.
    fix ♯4070 : Fix migration failing when rerun by @ildyria.
    new ♯4080 : Adding Bulgarian translations by @tkulev.
    fix ♯4084 : Copy built album-embed assets into Docker images by @cdzombak.
    new ♯4083 : Allow filtering embedded albums/streams by author using data-author attribute by @cdzombak.
    klo ♯4085 : Move notes on embeds feature from .ai to docs/specs/4-architecture/feature by @cdzombak.
    fix ♯4086 : Bump frankenphp by @ildyria.
    klo ♯4091 : Fix docker compose in readme by @ildyria.
    fix ♯4092 : Fix zip first install by @ildyria.

New Contributors

    @tkulev made their first contribution in https://github.com/LycheeOrg/Lychee/pull/4080
	
v7.2.1

Released on Jan 24th, 2026
Fixes and small features

A small patch to fix a few issues. We also added the ability to filter photos by their star rating in the album view.
Most notable changes

klo refers to Keep the Light On. In other words, basic software updates.

    klo ♯4004 : Improve docker compose template by @ildyria.

        Improve the docker-compose template use yaml template to avoid duplication. Added a minimal running example to help users dry test Lychee locally.

    fix ♯4005 : Fix downloading image directly from smart album by @ildyria.

        Fix the issue that downloading an image directly from a smart album was not working as expected.

    fix ♯4007 : Hide list button if there are no albums by @ildyria.

        When there are no albums, it does not make sense to display the list view button. We now hide it in such case.

    klo ♯4014 : Add documentation on tuning the timeouts in docker-compose.yaml by @ildyria.

        We added a small section in our documentation to explain how to tune the timeouts in the docker-compose file.

    fix ♯4012 : Fix renamer rule test by @ildyria.

        The testing of renaming rules in the renamer module was not working due to missing parameters. This is now fixed.

    fix ♯4015 : Hide more warnings by @ildyria.

        When using the docker image and queues, some of the warnings do not make sense anymore. We now hide them to avoid confusion.

    fix ♯4017 : Fix issue with filesize being 0 and add more coverage by @ildyria.

        In some edge cases, the filesize of a photo was 0, leading to errors when displaying sizes. This is now fixed.

    new ♯3978 : Filtering on rating by @ildyria.

        You can now filter photos by their rating in the album view.

v7.2.0

Released on Jan 21st, 2026
Speed improvement and minor UI updates

This release brings a few new features. We added the ability to order photos by star rating and new smart albums based on ratings (1-5 stars, Best pictures). Additionally, we also added the ability to move shared albums to a separate tab to reduce clutter.

One test instance database supports more than 3 million size variants and 400,000 photos in 4,000 albums. We noticed significant slowness when computing spaces, and somes actions such as deleting photos or albums where timing out completely, rendering them impossible to use. We refactored those parts of the code to improve the speed and avoid timeouts. This should greatly improve the experience of users with large galleries.
Most notable changes

    fix 3980 : Fix ♯3714 by @ildyria.

        We fix the issue that sub-albums were not supporting the set aspect ratio.

    new 3981 : Add support for hidden display of shared albums by @ildyria.

        We got feedback that having the list of all the public albums under your own albums may be a bit overwhelming. As a result we added an option which allows the admin to set those albums in a different tab instead of the main albums view. Users have the possibility to override this setting in their own gallery settings.

    new 3984 : Add ordering by stars, add rating smart albums by @ildyria.

        We added the possibility to order photos by their star rating. We also added a few new smart albums: 1 stars, 2 stars, 3+ stars, 4+ stars, 5 stars, Best pictures. The later is only available to the Supporter Edition users. It allows to select the X best rated photos where X is configurable in the gallery settings.

    klo 3985 : Speed-up space computation, at the cost no data from Unsorted by @ildyria.

        To improve the speed of Lychee, we changed the way we compute the used space. One of our test gallery has more than 3 millions size variants and 400 thousands photos in respectively 4000 albums. As a result, computing the used space was taking more than 30 seconds.

    new 3991 : Add localization support for categories by @ildyria.

        Categories can now be localized. We added support for english and french; other languages will need your support.

    new 3990 : Add possibility to hide exif data + fix tag list display by @ildyria.

        You can now hide the exif data from the photo detail panel if you wish so. This is available in the gallery settings.

    klo 3992 : Refactor photo data to have standalone fps and duration by @ildyria.

        Internally in the database we were reusing the field aperture and focal length to store fps and duration for videos. We resolved semantic issue.

    klo 3999 : Decrease complexity on fixTree by @ildyria.

        When updating the album tree with fixTree, we were sending all the albums in one go. We now only send the changed albums to decrease the complexity of the operation. We also refactored the front-end to reduce the complexity from O(n^2) to O(n).

    klo 3993 : Refactor deletion by @ildyria.

        Our test instance revealed that in cases with large number of photos and size variants, the deletion process was timing out and ended up not being executed at all. We refactored the deletion to speed up the SQL queries and avoid timeouts.

    klo 4003 : Harden tests scenarios for deletion by @ildyria.

        In addition to refactoring 3993, we also added more tests to cover edge cases and ensure that no data that should not be deleted are impacted.

Full Changelog: https://github.com/LycheeOrg/Lychee/compare/v7.1.2...v7.2.0