Released on Oct 31, 2024
klo
refers to Keep the Light On. In other words, basic software updates.
fixes
#2607 : Fix icons when using sub-folder install by @ildyria.fixes
#2605 : Fix login menu not visible when set to the right by @ildyria.klo
#2609 : [StepSecurity] Apply security best practices by @step-security-bot.klo
#2621 : Disable snq if secret is not set by @ildyria.fixes
#2624 : Fix link to Logs in case of sub folder hosting by @ildyria.new
#2625 : Add link to album from sharing page by @ildyria.Released on Oct 26, 2024
When we released version 5, we did not realize how much of a mistake switching to Livewire was.
Lychee's front-end became slow and sluggish, plagued with issues.
Most of the time as a work around, we had to advise users to disable version 5 of the front-end
by setting the environment variable LIVEWIRE_ENABLED=false
.
With this in mind, at the end of June we came to the conclusion that we needed to build a new front-end from scratch. We decided to go with Vue3, as it is a more mature framework and has a lot of support. This marks the begining of the Lychee version 6.
For more context on those changes, see our blog posts:
For the past few years, Lychee has been developed by a small group of people who have been working on it in their free time. We are proud to offer this software for free and we will continue to do so. However with time our team has decreased to the point where maintaining Lychee has become a challenge. We have been thinking about ways to keep Lychee alive, to be able to keep providing support, and to add more features.
We have come to the conclusion that we need to add a sponsor tier system. We have extended Lychee with a new version called SE (Supporter Edition) which will be available for our GitHub supporters. This SE version comes with enhanced features and configurations, helping us fund ongoing improvements while offering a bit extra to our supporters. The free version of Lychee will continue to be available but with a more streamlined feature set.
We strongly encourage you to check the full comparison between the free and supporter edition.
If you enjoy using Lychee, please consider supporting us.
Thank you for helping us keep Lychee alive and growing!
If you are consuming Lychee via Docker, you will probably need to update your docker-compose.yml
file.
In order solve the issue of temporary folders in the container, we added an extra volume /lychee-tmp
which
by default with the updated docker-compose.yml
will be mapped to ./lychee/tmp
, see here.
This volume allows you to control the temporary folder and avoid the issue of running out of space in the container.
SE
refers to functionalities that are aimed at the Supporter Edition.
new
#106 : have "Search" on all views by @ildyria.fixes
#126 : Add (optional) lossless rotation by @ildyria.Add the ability to over-write the original image with a temporary backup if the image was rotated. All the smaller sizes are normalized but the original is reverted back. Effectively, this is not lossless rotation, this is just no rotation for the original.
fixes
#226 SE
: Add counters for total pictures and subalbums by @ildyria.We added a statistic page, allowing the users to check how much space they are using and the total number of pictures and album that are in the library.
new
#520 SE
: Show and limit the space used by @ildyria.We introduced a quota system, allowing the admin to set a limit on the space used by each user.
fixes
#987 : Open image in new tab by @ildyria.With the switch to Vue3, this feature is now fully functional.
new
#1420 : Album name in link preview by @ildyria.new
#1641 SE
: User note (only available to admin) by @ildyria.Admin can now add notes to users. Those are only visible to the admin users.
fixes
#1987 : No space left on device by @ildyria.This error was mostly due to having temporary folders in the containers but without any ability to empty them. We now provide a UI to clean those folders, furthermore, those can now be mapped to a host directory.
new
#2082 : SEO optimization 1/3 - Setting <title>
and <meta>
tags by @ildyria.The title and meta tag are directly fetched from the album targetted by the link.
new
#2086 : Feature request: light theme for Lychee by @ildyria.Lychee now comes also with a Light theme, the user no longer needs to tweak their custom.css as there is now a native support for both dark and light sides.
fixes
#2168 : Universal Drag & Drop and Paste to upload no longer work when using Livewire by @ildyria.When moving to version 5, this functionality was lost. We now re-introduce it.
fixes
#2194 : Change album cover picture creates a slide show of all the picture after the selected one by @ildyria.Version 5 had this annoying re-rendering of the album when changing the cover picture which was completely messed up. By switching to Vue3, this is now fixed.
fixes
#2361 : Image selecting does not work on chrome + MacOS by @ildyria.One of the main complaints of MacOs user was that CTRL was also opening the context menu. We now support the CMD key for MacOs users, this should fix this issue.
fixes
#2495 : Inverted date on album tiles with multiple months by @ildyria.We provide the ability to change the order of the dates displayed both in the thumbs and hero on albums, cathering to either user preferences.
dropped
: API Documentation.We have decided to drop the API documentation end-point as it was not working anymore. Read more.
Released on Jul 5, 2024
fixes
#2487 : Fixes videos not loading from S3 due to unlisted CSP host by @RickyRomero.new
#2490 : Add support for paths in php-exif by @ildyria.fixes
#2492 : Fix error when opening tag album by @ildyria.klo
#2493 : Simplify by @ildyria.Released on Jun 26, 2024
Note: Migrated to Laravel 11. Might have some instability.
fixes
#2470 : Fix smart album not having visibilty option by @ildyria.new
#2465 : Add some details for clockwork profiler to work by @ildyria.new
#2468 : Allow to disable smart albums individually. by @ildyria.fixes
#2474 : Fix filename: no more double extension on download. by @ildyria.new
#2475 : Add ability to create user on the fly on Oauth auth step by @ildyria.This adds 3 settings:
oauth_create_user_on_first_attempt
:
Allow user creation when oauth id does not exist.oauth_grant_new_user_upload_rights
:
Newly created users are allowed to upload content.oauth_grant_new_user_modification_rights
:
Newly created users are allowed to edit their profile.
fixes
#2477 : Fix timezone warning by @ildyria. klo
#2478 : Minor speed improvements by @ildyria. klo
#2479 : disable livewire array hack by @ildyria. new
#2480 : add option to disable login requirements on albums by @ildyria. klo
#2464 : Migrate to Laravel 11 by @ildyria.Released on Jun 17, 2024
klo
#2460 : Composer update by @ildyria.fixes
#2462 : Fix #2446: Apostrophes are allowed in names. by @ildyria.new
#2461 : Add login_required option so access is only after login in. by @ildyria.Released on Jun 9, 2024
fixes
#2421 : Fix gen-sizevariants
button french translation by @HorlogeSkynet.fixes
#2423 : Fix map not updating in sidebar view by @ildyria.fixes
#2430 : Fix error cover option when selecting photo in smart album by @ildyria.fixes
#2431 : Fix broken thumbnail by @ildyria.fixes
#2435 : Fix order max-min in header to match order in thumbnail by @ildyria.new
#2429 : Use random instead of sorted for thumbs of Smart Albumbs by @ildyria.fixes
#2442 : Small improvements to French translation by @anantone.fixes
#2444 : Fix additional_footer_text setting (#2445) by @leso-kn.fixes
#2448 : Composer update + phpstan annotations + Improved speed by @ildyria.Released on Apr 29, 2024
As this is a change by @Kovah and we are unfortunately not able to provide support on how to make it work. Refer to https://laravel-news.com/using-aws-s3-for-laravel-storage for details of the settings. Any issues on that subject will be closed. Sorry.
fixes
#2400 : Fix description empty string creating bug in layout by @ildyria.new
#2379 : Add S3 bucket support by @Kovah.fixes
#2411 : Fix teapot not flagging on phpinfo.php by @ildyria.fixes
#2416 : Add migration on forgotten license CC-BY-SA by @ildyria.fixes
#2413 : Fixes scrolling of details when description is too wide/long by @ildyria.new
#1880 : Adding copyright to albums #1838 by @ThanasisMpalatsoukas.Released on Apr 20, 2024
fixes
#2396 : Fixes HTTP 500 "Attempt to read property "photo_id" on null" on album page when no photo is found for header by @nanawel.fixes
#2397 : Use portrait when landscape is not available for header image by @ildyria.Released on Apr 19, 2024
BROKEN - Use v5.2.2 instead.
We provide the PHOTO_PIPES
flag in .env
to enable the future code flow to process images.
By default its value is false
.
klo
#2364 : Avoid crashing when livewire flag is set in tests by @ildyria.klo
#2362 : More relevant diagnostic data, less privacy invasive by @ildyria.new
via #2363 #2365 #2366 #2367 #2368 #2369 #2371 #2372 #2373 #2374 #2375 #2376:PHOTO_PIPES
to true
in your .env
new
#2386 : New OAuth provider supported: keycloak by @jsaathof.new
#2377 : New per-album setting to set the header image by @aSouchereau.klo
#2387 : Remove non existing columns by @ildyria.fixes
#2393 : Fix database license type by @ildyria.Released on Apr 06, 2024
We strongly recommend anyone using Lychee version 5 to migrate as soon as possible to 5.2. There are major bug fixes contained in this update, most notably when uploading multiple images at the same time.
We are currently 2 active members (d7415 and myself). As a result development has been significantly slowed down. If you like Lychee and wish to contribute, fix bugs and add new features you are more than welcome to join the team or open pull requests.
new
#2242 : No more album ID within the history by @ildyria.new
#2221 : Remove is_public & deprecated Public smart album by @ildyria.fixes
#2245 : fix CVE-2020-8203 by @ildyria.new
#2239 : Add pulse when jobs are waiting/processing by @ildyria.fixes
#2246 : Avoid white flash on v4 redirection by @ildyria.fixes
#2249 : Fix upload photo by @ildyria.fixes
#2250 : Prebuild folders in storage by @ildyria.new
#2251 : Improve diagnostics by adding check of temporary file systems by @ildyria.klo
#2257 : Re-arrange commands by @ildyria.fixes
#2256 : Null coalescence on css/js to catch when file does not exists by @ildyria.fixes
#2252 : Add check for number of sizevariants without sizes by @ildyria.klo
#2261 : Composer update by @ildyria.klo
#2270 : Improve coverage by @ildyria.fixes
#2264 : Avoid exception, add error when unlocking album by @ildyria.fixes
#2291 : If LegacyIdException is thrown provide proper solution by @ildyria.new
#2282 : Add support for Feature flags by @ildyria.klo
#2269 : Mark some classes are readonly by @ildyria.fixes
#2286 : Support migration on docker builds without off time by @ildyria.fixes
#2298 : Add permission when user is not owner but creating an album by @ildyria.klo
#2310 : Dependencies update by @ildyria.fixes
#2140 : Fix Front-end bugs (swiping, uploading, margins) by @ildyria.fixes
#2317 : Add preg_quote before doing glob() to escape regex characters by @ildyria.new
#2309 : Add subalbum search by @Tombula.klo
#2324 : Bump livewire/livewire from 3.4.6 to 3.4.9 by @dependabot.klo
#2325 : Pinning dependencies + fix permissions by @ildyria.fixes
#2304 : Support Paths on V5 with Livewire by @ildyria.fixes
#2326 : Fix livewire breaking on non debug with sub folder by @ildyria.fixes
#2333 : only owner users with upload rights are allowed to edit albums by @ildyria.new
#2335 : Proper markdown support on descriptions by @ildyria.klo
#2340 : Bump vite from 5.1.6 to 5.1.7 by @dependabot.fixes
#2347 : Fix description markdown on the overlay by @ildyria.fixes
#2346 : Fix share button always visible by @ildyria.klo
#2338 : Composer update + formatting by @ildyria.new
#2331 : Improve logic for nested values in arrays for language by @ildyria.new
#2332 : Create maintenance page by @ildyria.klo
#2330 : Channel version type is an Enum by @ildyria.new
#2348 : add Optimize module to maintenance page by @ildyria.new
#2349 : add Cleaning module by @ildyria.new
#2350 : add Update module by @ildyria.new
#2351 : Add fix tree module by @ildyria.new
#2352 : add Fix Jobs module by @ildyria.new
#2353 : Add button to generate missing size variants by @ildyria.new
#2354 : Add module to fix the missing file sizes from size variants by @ildyria.Released on Jan 22, 2024
It is with great regret that we see one of our core contributors leave for personal reasons. Their critical mind was really appreciated and they will be sorely missed. We wish them success in all their future endeavors.
This functionality is back, you will need to add your token and authorize your app on dropbox. See more here: https://www.dropbox.com/developers/saver
We now provide the possiblity to redirect when using old links such as https://lychee.test/#albumID/photoID
.
To enable this add LEGACY_V4_REDIRECT=true
in your .env
.
Do note that this relies on a javascript hook and therefore page reload.
If you did not share any links that way, leave as is. Default value is false
.
new
#2210 : Diagnostics are now available when migrations are pending by @ildyria.fixes
#2215 : Fix import from Dropbox from Livewire side by @ildyria.fixes
#2211 : Fix upload on smart albums by @ildyria.fixes
#2219 : Fix search broken when hitting albums by @ildyria.fixes
#2117 : Add back Download and full size in photo view by @ildyria.new
#2226 : Anonymize the paths in the diagnostics by @ildyria.fixes
#2173 : Fix title not being updated by @ildyria.fixes
#2176 : Add redirection for legacy links by @ildyria.Released on Jan 18, 2024
Version 5.1.0 adds support for Oauth with the following providers:
You will need to register your app to those providers and get your client id and secret.
Those should then be placed in your .env
file. See .env.example
for templates.
Note that Oauth is only usable once the user exists in Lychee database; it is not possible to register directly via Oauth.
fixes
#2192 & #2195 : Load Thumb/Thumb2x as fail-over when Small does not exist by @ildyria.new
#2201 : Display owner names instead of Shared Albumns by @ildyria.new
#2199 : Add fallback on small2x for header if medium does not exists by @ildyria.fixes
#2042 : Improve token guard to not crash when provided with Basic Auth by @ildyria.new
#2200 : Improve diagnostics with count of thumbs that can be regenerated by @ildyria.fixes
#2203 : Fixes star/unstar on right click by @ildyria.new
#2190 : Oauth is now available by @ildyria.Released on Jan 12, 2024
APP_URL
From this version Lychee v5 supports hosting with sub-folders. Please update your .env
as follows:
APP_URL
must only contain the hostname up to the Top Level Domain (tld) e.g. .com, .org etc.If you are using Lychee in a sub folder, specify the path after the tld here in the APP_DIR
constant.
For example for https://lychee.test/path/to/lychee
:
APP_URL=https://lychee.test
APP_DIR=/path/to/lychee
fixes
#2126 : Cover for upper level album cannot be set - error 500 by @ildyria.new
#2124 : Add clear error message when CSS is not loading by @ildyria.fixes
#2135 : Description should be desc for overlay by @ildyria.new
#2128 : Provide the ability to change the sorting of sub-album per album (Livewire only). by @ildyria.fixes
#2142 : Improved diagnostics with censored URLs by @ildyria.fixes
#2143 and #2157 : fix Russian about. by @ildyria.fixes
#2158 : Error displaying enlarged images when accessing a public album without being logged in by @ildyria.fixes
#2161 : Update Readme, add theme repository, optimize ImageMagick by @tinohager.fixes
#2147 : Fix custom.js not being loaded by @ildyria.fixes
#2166 : Fix uploading large number of images fails with 429 by @ildyria.fixes
#2171 : Remove text-neutral for easier configuration of themes by @ildyria.new
#2153 : Add compact view for albums by @ildyria.fixes
#2154 : Fix WebAuthn not working by @ildyria.fixes
#2172 : Fix QR code displaying wrong URL by @ildyria.fixes
#2137 : Fix livewire not working on directory folders by @ildyria.new
#2138 : Allow different aspect ratios for album thumbs (+ per album setting) by @ildyria.fixes
#2181 : Improved diagnostics by @ildyria.fixes
#2186 : Fix double f aperture in sidebar by @ildyria.new
#2179 : Add notify toast when updating user by @ildyria.fixes
#2164 : Fix errors on access rights by @ildyria.fixes
#2178 : Fix back button on unlock page. by @ildyria.new
#2185 : Add left-right for login button + add custom go Home button by @ildyria.new
#2182 : make APP_URL optional again by @ildyria.Released on Dec 28, 2023
See here for more details: GHSA-rjwv-5j3m-p5x4
fixes
#2116 : Fixes hover (left-right) preventing clicks on volume etc buttons + fix frame button by @ildyriafixes
#2118 : Fix drag upload bug by @maoxian-1fixes
#2123 : Fix SQL Injection by @ildyriaReleased on Dec 27, 2023
fixes
#2090 : Add back blurred album thumbs by @ildyria.fixes
#2091 : Forgotten attribute of the canEdit function by @ildyria.fixes
#2095 : Redirection not functioning on album creation. by @ildyria.new
#2105 : Better diagnostics for APP_URL and LYCHEE_UPLOAD_URL by @ildyria.fixes
#2108 : Fix unlock album component wrongly selected. by @ildyria.fixes
#2096 : Remove U2F from left menu when user is not allowed to modify their account. by @ildyria.new
#2110 : Force https at the boot level instead of in the route files by @ildyria.fixes
#2112 : Remove path from query string via middleware by @mashb1t.new
#2111 : More checks for potential upload bugs by @ildyria.fixes
#2109 : Modify post-merge script to reflect 5.0.0 build changes by @TwizzyDizzy.Released on Dec 25, 2023
If you are using git clone
, you will need to use npm
to build the front-end:
composer install --no-dev
php artisan migrate
npm install
npm run build
Those files are however provided in the release zip file.
APP_URL
now needs to be defined in .env
for the images to be properly displayed.
new
#2031 : improved honeypot logic & add more honey by @ildyria.new
#2033 : map providers are now specified in an Enum by @ildyria.fixes
#2041 : Delete existing user permissions associated by @ildyria.new
#2066 : Add optimize database call by @ildyria.fixes
#2069 : Adds missing space separator in Ghostbuster command advice by @HorlogeSkynet.new
#2071 : Drops support for singular public photos in search. by @ildyria.new
#2060 : Bye bye PHP 8.1, long live PHP 8.2 by @ildyria.new
#2072 : Add configuration check between int and positive (>0) by @ildyria.fixes
♯199 : Depreciated dependencies cries for a new frontend. #199Complete rewrite of the front-end using latest technologies. Moving to a TALL stack: Tailwind, Alpinejs, Livewire, Laravel.
new
#12 : Shared albums: policyComplete new implementation of sharing and access rights.
new
#383 : Allow other users to upload to shared albumsSee #12
new
#725 : Login on direct album url if not logged in and album needs itProper implementation with the new frontend
new
#748 : UI/UX: give more information about the capabilities given to new users in the users pagefixes
#828 : Album name not correct displayed in confirmation popup when moving a newly created albumnew
#857 : Support for very large uploads by chunkingfixes
#1053 : Public album is not and can not be configured to be public #1053BREAKING CHANGE: The public smart album has been removed. Pictures are no longer made public singular.
new
#1211 : Date/Time display optionsDate/Time format are now configurable in the settings per location (sidebar, panel etc.)
new
#1249 : header text for the galleryDescription of each album is directly readable at the top and support markdown.
new
#1189 : Multiline descriptions with markdown support for images and albumsSimilar functionalities have been added for pictures too.
new
#1253 : Change album's Top Right menu behavior when selecting some picturesTop right action menu behaviour has enhanced to increase visibility and intent in the album view. It now depends of the selected elements.
new
#1462 : Access Rights management: Users and AlbumsMajor refactoring the access rights, user can now give read, upload, edit, delete access to others.
fixes
#1676 : Unable to open sidebar, can't navigate away from log/diagnostic/setting pagenew
#1704 : Add real links to albumsNo longer use fragments, as a results links are properly clickable.
fixes
#1720 : Download button is visible and does not support download rights yet.fixes
#1732 : Consistent URLs when Landing Page is disabled.url have been made consisten accross the board.
fixes
#1744 : UX broken on version 4.7.0 for Safari iPhoneNew front-end will need more testing.
new
#1825 : Change accent colorWith the use of tailwindcss this is now easier to produce.
new
#1891 : Login popup appears if no albums createdfixes
#1948 : Internal server error on photo upload (permissions?)No longer applicable due to new front-end
fixes
#1973 : The CSS tweaks to disable auto zoom in/out no longer work #1973No longer applicable due to new front-end
new
#1989 : Add search / filter for 'Move' destination album listnew
#2011 : Album Delete Confirmationdeletion is now hidden in a danger zone.
fixes
#2050 : When trying to open a password protected shared album, no password prompt is shownfixes
#2051 : Photo Download not work - UnauthorizedException fixes
#2058 : Insufficient privilieges when opening the "Share album" dialog as a regular userfixes
#2068 : Album allow public upload but disallow deletionPart of this is now available, user can give upload access to other users while preventing deletion. The public part is not taken in consideration as this is too much of a security risk.
new
♯104 : Rework Sharing Dialog in SettingsSharing page only provide an overview, sharing is now done at the album level.
new
♯166 : Add album description between the header and the picturesnew
♯268 : Css is too complex to permit anyone to create new themeWe now use tailwindcss, which makes it easier to create a unified theme.
new
♯312 : Make login dialog more prominent, auto-show login dialog if necessary, hide empty smart folders for anonymous usersfixes
♯343 : Use proper URL instead of # fragments.fixes
♯344 : a are now correct links/interactivefixes
♯373 : Left menu is now working correctlynew
#2078 : Diagnostics: Info are displayed in blue by @ildyrianew
#2079 : Add option for thumbs overlay: none|hidden|always by @ildyriaReleased on Sep 24, 2023
fixes
#2018 : Unique constraint for config keys by @qwerty287.fixes
#2019 : Update composer (include breaking) by @qwerty287.fixes
#1948 #1993 : Fix complaint due to type casting by @ildyria.fixes
#2025 : License as enum type by @ildyria.fixes
#2026 : Minor refactoring in prevision for Livewire. by @ildyria.Released on Sep 16, 2023
fixes
#2003 : Fix missing album decorations by @evoludolab.fixes
#2004 : Fix max/min_taken_at by @evoludolab.fixes
#2007 : Fix missing left-right button on smart albums by @ildyria.new
#2010 : Better diagnostics by @ildyria.new
#2012 : Better support for future policies. by @ildyria.new
#2015 : Replace layout and overlay to proper Enum types by @ildyria.Released on Sep 3, 2023
fixes
#1982 : How about we don't execute tests twice? by @ildyria.fixes
#1981 : Minor fixes on List sharing permissions. by @ildyria.fixes
#1990 : Fix complaints in Diagnostics when no migrations has been run by @ildyria.fixes
#1751 : Add error thrown if APP_URL does not match current url by @ildyria.fixes
#1991 : Fixes no log write access infinite loop by @ildyria.fixes
#1950 : Do not enforce strict model when downloading by @ildyria.fixes
#1686 : Providing absolute path if not set by @ildyria.new
#1999 : Webauthn supports also username by @ildyria.Released on Aug 13, 2023
fixes
#1963 : Change two German translations by @caminshafixes
#1975 : Fix bad placeholder in PT locale by @d7415 new
#1971 : Enable video thumbnail executable configuration by @Lingxi-Li new
#1977 : Hungarian language added by @KnauszFerencReleased on Aug 1, 2023
fixes
#1928 : Fix NSFW not toggling via Protection Panel by @ildyrianew
#1933 : Improve translations to German by @CodingWithCardnew
#1916 : Use Actions instead of direct call in controller by @ildyriafixes
#1919 : jobs can now also take string as input (upload in smart albums) by @ildyriafixes
#1922 : Add integrity DB check by @ildyriafixes
#1925 : Support ratio by @ildyriafixes
#1935 #1936 : Remove/Update OSM domain by @qwerty287fixes
#1942 : "Content-Security-Policy blocks blob requests required for Google Motion Pictures images" by @Merlyn42Released on Jun 28, 2023
new
#1901 : Make exceptions in one log line by @ildyria fixes
#1884 : Fixes wrong redirection when Lychee is used in a subfolder by @ildyria new
#1899 : Improved speed on global table by @ildyria new
#1908 : Update dependencies by @qwerty287 Released on Jun 25, 2023
This releases introduces the ability to use external logging system. Please refer to External tracking with Matomo, Google Analytics & Co for examples.
new
#1870 : Allow script-src and connect-src configuration by @timo-reymannnew
#1873 : Support files without extensions in importFromUrl by @wladiffixes
#1887 : Make fileTimeModified parameter optional in Photo::add by @ildyriafixes
#1853 : Fixes broken license editing by @ThanasisMpalatsoukasnew
#1875 : add support for 418 response code for dubious queries by @ildyriafixes
#1868 : Can't remove album permissions by @ildyriafixes
#1883 : Optimizing sql and improved Log data by @ildyriafixes
#1882 : Improved csp rules for docs/api by @mingan666fixes
#1775 : Search with Chinese by @ThanasisMpalatsoukasnew
#1898 : Improve explain on db_logging by @ildyriaReleased on May 22, 2023
fixes
#1861 : Remove hashes from CSP when using log-viewer by @ildyriafixes
#1862 : Remove duplicate link. Tweak comment by @d7415Released on May 19, 2023
fixes
#1856 : Fixes #1855 - update Makefile by @ildyriafixes
#1857 : Fix version 4.9 log-viewer paths hard coding by @ildyriaReleased on May 18, 2023
fixes
#1848 : Remove public option from album ordering: no longer supported by @ildyriafixes
#1850 : Fix SQL error on removing public status from album by @ildyrianew
#1846 : Remove homemade Log solution, add support log-viewer by @ildyriaReleased on May 15, 2023
new
#1826 : Improved support of migration very old versions (untestable code) by @ildyrianew
#1821 : Add backend implementation to use file's last modified time by @wladifNow support last_modified_time when uploading file without exif data.
fixes
#1828 : Fix left/right in photo view of tag albums by @ildyrianew
#1827 : Support API documentation by @ildyrianew
#1829 : Composer update + fix php stan complaints by @ildyriafixes
#1833 : fixes Mass assignment problem in Access Permissions by @ildyriaReleased on May 5, 2023
new
#1792 : Use access permissions instead of base_album table to determine access rights by @ildyriaReleased on May 4, 2023
new
#1819 : Make it possible to fetch random image without needing to be public & starred by @mingan666Released on April 19, 2023
fixes
#1786 : Update dependencies (including php-exif) by @qwerty287new
#1787 : Remove requirement of Auth in photo upload, pass ownerId as argument by @ildyrianew
#1785 : Add jobs processing by @ildyrianew
#1788 : Add Job History by @ildyriafixes
#1789 : doc blocks + fix deprecation utf8_encoding by @ildyrianew
#1793 : Use enum instead of constants for SmartAlbumTypes by @ildyriafixes
#1791 : Album creation no longer depends on Auth by @ildyriafixes
#1797 : Fix a wrong help text by @Anduin2017fixes
#1780 : Albums tagged NSFW do not appear in album list, ignoring visible parameter by @ildyriafixes
#1765 , #1794 : Share button is not visible on public albums by @ildyriaPre-released on Mar 8, 2023
new
#1755 : Ship an empty custom.js to prevent spamming the console (#1753) by @nicokaiserfixes
#1756 : Fixes locale not working (#1754) by @ildyriafixes
#1758 : Set noindex for error responses by @nicokaiserfixes
#1759 : Fixes unknown orientation in GdHandler by @wladifnew
#1766 : Add setting auto_fix_orientation
to enable auto image rotation by @wladiffixes
#1764 : Migrate to Laravel 10 by @ildyrianew
#1769 : Compile WebAuthn.js into frontend.js by @qwerty287Pre-released on Feb 5, 2023
fixes
#1688 : Update French.php by @davidbercotfixes
#1674 : Share button not working by @ildyriafixes
#1630 : 2FA not working by @ildyrianew
#1650 : Allow to store all files in storage
by @qwerty287fixes
#1698 : Fix 2fa tests by @ildyriafixes
#1702 : Fix cache busting on user.css by @ildyriafixes
#1701 : fix migration when photo do not have an album by @ildyriafixes
#1705 : fix exception missing driver by @ildyriafixes
#1706 : Simple composer update + fix php8.2 warning on formatting by @ildyrianew
#1707 : allow forcing HTTPS scheme by @ildyriaWhen serving behind a reverse proxy, the blade template engine think we are using HTTP. This change adds a new
.env
configuration variable enforcing HTTPS scheme.
fixes
#1713 : update config doc + sync front + dusting by @ildyriafixes
#1703 : Fixes #1703 by @ildyriaUpdates were not properly applied because of precendence of versionning check.
new
#1708 : Setting to make On This Day
smart album public by @aldjordjefixes
#1722 : Fix sync default user by @ildyrianew
#1724 : Add configuration option to set auth guard driver by @r7lfixes
#1730 : Fix wording for authentication guard option by @r7lfixes
#1728 : Avoid showing errors in tests when they are expected by @ildyrianew
#1738 : Fix URLs in RSS feeds (#1732) by @nicokaisernew
#1741 : Set theme-color on frontend template (#1740) by @nicokaisernew
#1697 : execute custom js from custom by @cshyam1892fixes
#1733 : migrate locales from 'app/Locale/' to 'lang/', drop Lang Facade by @ildyrianew
#1726 : use RuleSets instead of directly rule property by @ildyrianew
#1668 : DTO are less supported, and moving to Laravel Resources by @ildyriaReleased on Jan 4, 2023
new
#1631 : Customizable album decorations by @evoludolabAllows to change the layer symbol in the top right corner of albums which indicated the existence of sub-albums to a counter, also support counting pictures or not displaying any symbol at all. The layer symbol is still being used by default.
new
#1618 : Use Enum to enforce stricter types (โ php 8.1) by @ildyriaThis reduces the risk of bugs.
rm
#1673 : Nuke demo generator, does not reflect the latest version by @ildyriaThis removes the /demo page which was used to generate AJAX response in order to mock a server response on the demo page of Lychee.
new
#1671 : Ensure php version is correct prior migrations by @ildyriaBefore running any migration, we are not verifying that the required minimum version of PHP is used.
fixes
#1684 : Fix on HasAdminUser by @ildyriaWhen updating to 4.6.5, Users of the Migrate web interface where not able to procced. This is now resolved.
Released on Dec 26, 2022
fixes
#1665 : Fix migration for PostgreSQL users by @ildyrianew
#1667 : add setting to allow username change (default to true) by @ildyriaReleased on Dec 25, 2022
fixes
#1590 : Fix list of shares by @nagmat84new
#1594 : Add flags to command by @qwerty287new
#1591 : Add API to change upload date & fix API token auth by @qwerty287fixes
#1598 : Fix remove album cover throwing 403 by @ildyrianew
#1522 : Merge gallery
, view
and frame
into a Unified Frontend by @nagmat84This will require adapting your personal user.css
new
#1562 : Refactor box model by @nagmat84This will require adapting your personal user.css
new
#1611 : Checks if Webp is available for GD in diagnostics by @ildyrianew
#1607 : Smart album - On This Day - new feature by @aldjordjeCreate a smart album which will show every day of the year the pictures that were taken on that specific day in the past.
new
#1619 : Add option to enable-disable smart albums in the back-end by @ildyriaAllows complete disabling of smart albums rather than using CSS trick.
new
#1632 : Add Unix socket support to Redis by @r7lnew
#1628 : Versioning code refactoring by @ildyriafixes
#1653 : Full URL for metadata by @qwerty287Fixes a bug where images only provided incomplete path in embeded previews.
fixes
#1649 : Remove and clean up unused files by @qwerty287new
#1655 : Add number of foreign key check and listing option by @ildyrianew
#1539 : Apply rights naming convention by @ildyriaFirst step in direction of supporting multiple acces rights on albums.
new
#1602 : Create admin during installation, allow multiple admins by @qwerty287fixes
#1662 : Remove (broken and unused) installer scripts by @qwerty287Released on Nov 12, 2022
new
#1519 : Adopt new modern dialogfixes
#1494 : Consolidate localizationnew
#1558 : Add option to skip diagnostic checksnew
#1469 : Upgrade to Laravel 9 + switch to Laragear/WebAuthnnew
#1564 : Add option to append tagsfixes
#1581 : Fixes files installation if no Git repo is availablefixes
#1478 : Fixes smart albums rightsReleased on Oct 08, 2022
new
#1489 : Drop page supportThis functionality was not known by 99.9% of the users of Lychee. We decided to drop its support in favor of more targetted development in the core.
new
#1443 : Add user and better structure to session jsonnew
#1153 : Support for multi path on server importfixes
#1508 : Ensure that Admin rights are overloading othersfixes
#1366 : Improve config optionsfixes
#1514 : 32 bits system improved supportFor 32bit systems and time-based, legacy IDs we must catch failing inserts due to duplicate legacy ID when insertions is running too fast. In the past it was sufficient to check for MySQL error codes 23000 and 23005 as integers and then pause for a short period of time.
fixes
#1480 : Shared albums should not consider the require_link
property.new
#1368 : Improve API client usabilityfixes
#1528 : Improve CSP and fix XSS vulnerabilitySee advisories
Released on Sep 04, 2022
Once the migration is applied, should you wish to rollback, you will need to reset your admin user otherwise it will not be possible to log as admin anymore.
new
#1453 : Provide an ASCII fallback for multibyte filenamesnew
#1403 : Use Laravel Auth facade instead of home-brewed authentication layer This change will prevent the rollback as the Admin now follows proper username - hashed password values in the database (previously was hashed username and hashed value).
fixes
#1472 : Fixes major bug with relation to Tag albums fixes
#1495 : Solve minor bugs in the installation procedureReleased on Aug 07, 2022
new
: New ID scheme. Albums and photos are migrated to a new ID scheme. Previously, albums and photos used time-based integer IDs. The new IDs are truly 144bit of randomness encoded in Base64 as a 24-character string; e.g., if your photo had the URL https://my-domain.tld/r/16102925744307/16102927818284
before, it may have the URL https://my-domain.tld/r/GTqZfSso3nPeCnTNW4ovisgC/jM6KkmlK7X0LtVas5MjrHtTO
after the migration. This means, external links to your albums or photos will stop working. However, we implemented a redirection service. You can enable/disable the re-direction service under Settings
> More
> legacy_id_redirection
. This gives you time to migrate any external reference to the new IDs. We also generate a log entry every time the redirection service is used. This log contains the legacy and new ID as well as information where the request came from. This may help you with the migration of your external links.
new
: New folder structure for images:
medium/ba/d0/9a28ec995ead4877dfa1befa2d3b.jpg
).@2x
) variants now reside in their own directories.big
has been renamed to original
.Note that this only affects newly added photos; those added in the past are not moved to new locations. Also, see the note above about directory permissions.
new
: Refactoring of the internal architecture and the representation of albums. While this didn't add any major new features, a number of optimizations have been put in place to speed up various operations, e.g., on installations with many hundreds of albums. Because this requires a particularly complex database migration, those with existing installations should pay attention to the note above about backing up their database.
new
: Refactoring of error handling and reporting. This should result in more meaningful error messages both in the web front end and in the server logs (instead of the old cryptic "Server error or API not found" messages).new
:Refactoring of the file handling during upload/import. Instead of using temporary files and (re-)reading them many times, we now rely on file streams. This not only speeds up processing during upload/import (by around 50% in our tests), but is also an important step towards future support for the use of AWS S3 as image storage.new
: Addedfeatures in the web front end :new
: ZIP compression level can now be changed and the compression can be disabled.new
: Support of Vietnamese language.Released on Dec 03, 2021
new
#1145 : Upgrade Composer and PHP VersionAttention: Support for PHP < 8 has been removed.
fixes
#1152 : Fix diagnosticsfixes
#1154 : Set configuration option user_agent
during init.Released on Nov 23, 2021
fixes
#1059 : Add Cache busting.new
#1049 / fixes
#1011 : New Photos Email Notification
- Send an email when new photos were added to albums that have been shared.
- Use the laravel notification system to send via SMTP,
env
settings will need to be set up.- It is set to send out emails once a week via cron, so the laravel cron job would need to be set up.
- Neither is required so if people don't want to set those up then it won't affect the operation of Lychee.
- Add admin setting to toggle the notification option, which enables a user level menu item to change their email. This is purely opt-in, so users can clear their email if they don't wish to receive the emails anymore.
- The email that gets sent out has been branded lychee, and will group the last week's worth of notifications and send them all out in one email to each user that has an email set up.
new
#1065 : Add Polish translation.new
#1071 : Avoid git rebase conflicts during development on other branchesnew
#1086 : cli sync from from server with option to delete, import via symlink, etc.new
#1097 : Make language more gender neutral.fixes
#1102 : Character limitation of table column logs.function causes server error 500 for deployments with long installation pathfixes
#1105 : Fix type issues related to thumbsfixes
#1108 : Fixes takestamps.
- This should correct all instances of incorrect album min/max takestamps and as a bonus be computationally much less expensive.
fixes
#1110 : round
in php8 requires an int
or float
as the first argument.fixes
#1119 : No video upload when ffmpeg is missingnew
#1122 : Improved French translations.fixes
#1121 : Fix lychee:video_datafixes
#1033 : A bit of JS to prevent multiple submissions of the migration form.fixes
#1127 : The upload_processing_limit parameter only works when uploading images in the admin account. It does not work for images uploaded by other usersnew
#1142 : also support Caps on size format in diagnostics.fixes
#1146 : artisan optimize crashes with Unable to prepare routefixes
https://github.com/LycheeOrg/Lychee-front/pull/270: Copy To... didn't work correctlyfixes
https://github.com/LycheeOrg/Lychee-front/issues/273: Wrong support of ' (single quote) in some placesfixes
#1123: Album renaming did not work reliablynew
https://github.com/LycheeOrg/Lychee-front/pull/276: Remember user preference for the visibility of the info sidebarfixes
https://github.com/LycheeOrg/Lychee-front/pull/278: Fix the menu for smart and tag albums and in public mode, fix import into top-level albums view, fix empty info sidebar for albumsReleased Jul 11, 2021
new
#972 : more versions and dependencies checkfixes
#954 : Google Motion Photonew
#988 : Added raw values of attributes to JSON APInew
#1000 : Extended search for cameramodel and date.fixes
#998 : Use Guzzle7 instead of Guzzle6fixes
#994 : Disable login with Legacy if UserAdmin existsnew
#991 : Add attribute 'filesize_raw' to entity 'Photo'new
#1016 : Refactor timestampsfixes
#1008 : null error on live photo importnew
#1041 : Enhance German TranslationReleased April 18, 2021
new
#940 : Improved support for touch devices.new
#939 : Responsive web design for small screens.fixes
#959 : Excluded '/api/Session::init' from CSRF protection (as per the API specs).fixes
#959 : Fixes .lycheeignore support.new
#942 : Add support for Portuguese language.fixes
#927 : Also copy over the password column when migrating from the very old version 3 of Lycheefixes
#932 : Public photos hidden It adds a new config variable public_photos_hidden, which defaults to 1 (preserving the current behavior). If set to 0, photos individually made public (rather than through an album) will be included in the results of a public search or in public tagged albums. Basically, they will no longer be treated as hidden (even though they still won't be findable through browsing; we could address that as well by making the Public smart album, well, public -- I welcome your input if we should, and if so, what to name the config variable to enabled that, other than public_public wink).
Released Feb 16, 2021
fixes
#882 : Password albums were broken.fixes
#891 : Download: file not found on password protected Albumfixes
#895 : Default license displayfixes
#888 : Refactoring of the rotation codenew
#887 : Add the possibility to not display the GPS direction on the mapnew
#892 : Add --force
option to the Command Line Interface for Takedatefixes
#890 : Fix delete bug when selecting multiple sub albumsnew
#901 : Add more diagnostics checksnew
#905 : Improve Chinese translationfixes
#908 : Migration from v3 was broken since version 4.2By adding nested set tree, column
_lft
and_rgt
did not exist on first import while the code required it.
new
#919 : Add the possibility to limit the number of image being processedThis will lower the memory load on the server, especially on RAM limited instances.
fixes
#925 : Some user decided to upload pictures without extension, this broke our code...fixes
#903 : Windows microtime()
was a bit slow, generating collisions in the uploaded file names.The file name are now generated from the sha1 hash of the file.
new
#894 : Extend the functionality of Import from server to have the same interface as from the command line.Released Jan 24, 2021
new
#875 : Add custom cover for albums
- custom album covers
- IMPORTANT: support for 3 distinct images for albums dropped (overkill given that 2 are barely visible)
Released Jan 24, 2021
fixes
#831 - Bad extension filename when you upload *.jpgThe regression was introduced in 4.0.8 as part of #777.
new
#874 - Update CLI Takedate
- add option --timestamp added to set create_at to timestamp of media file for media that lacks EXIF information
- use same formatting for 'sysdate' as for 'takedate'
new
#832 - Major rework of backend
- start using Livewire for the front-end, for now accessible at
example.com/livewire
if enabled viaLIVEWIRE_ENABLED
in.env
(DO NOT USE, still in development)- use Facade
AccessControl
to accessSession
information (basically home-brewedAuth
Facade)- use Facade
Lang
to accessLang
information (Easier to use through the blade template)heavy refactoring of the core, introducing more granularity:
- Interfaces are Contracts
- Group Factories
- use
trait
on album for smaller dedicated operations- add Nested Set theory to Album to allow access to all descendants
fixes #843
- fixes #846
- fixes #858
Released Dec 27, 2020
new
#798 : Force migration page.when the database is behind the file version, we immediately redirect to a migration page to ensure that database columns are not missing, generating error 500.
new
#800 : Move to GitHub actions instead of Travis CI.They are still available in the Ajax query
upd
#799 #816 : Require PHP 7.4PHP 7.3 is EOL.
new
#807 : add new command: php artisan lychee:rebuild_albums_takestamps
there are instances where the album min max takestamps are broken. This allows the user to reset it.
upd
#808 : Update traditional Chinese files.fixes
#813 : some error 500 during installations were not properly caught.fixes
#806 : Direct Links of albums do not respect url if lychee installed in subdirectoryfixes
#811 : fall back to native metadata extraction on errorfixes
#810 : fix(rss): avoid display feed link in HTML if RSS option is disablednew
#819 : add support for WebAuth: Yubikeys & fingerprint & other authentication devices.This is only available to the admin login (for now) Also implements shortcut
k
to pop-up the passwordless login interface.
new
#822 : add sensitive albums
- adds a new "flag" so that such folders can be recognized at first glance while being logged in.
- adds a key-bind
h
who hides all folders previously marked as sensitive.- adds a pink star in the header to notify the user is in a Sensitive folder.
- Changing this property is either done on clicking on the star or toggling it in the visibility parameters.
- makes it possible to hide Sensitive folder by default.
Important note: if a sensitive folder is set as public, it will be revealed by
h
. If you do not wish such public folder to be visible, set it as hidden.
fixes
#831 : Use correct file name for small/medium downloadsfixes a regression bug introduced by #777
Released Nov 19, 2020
BREAKING CHANGE: REQUIRE PHP 7.4
fixes
#783 : Can't rename tag albumTag-albums were not accessible by
albums.getByID
fixes
#781 : Fixes a bug which prevented the use of sharing albums between usersThis rare bug was only triggered if a non-admin user was sharing an album with another user.
fixes
#779 : Fixes some missing information on Tag Albums in the front end.fixes
#766 : It is no longer possible to use the 'photo rotation' functionalityWhile the buttons are still accessible we now return an error instead of filling up the entire disk space of the server.
fixes
#751 : In some rare instance, it was not possible to generate video thumbnailsthis is fixed. We try to reextract the 'aperture' property to get the thumbnail. We also added a warning in the case where FFmpeg was not enabled.
fixes
#769 : when moving pictures in Image view, the second try resulted in failurewe no longer clear the content of
json.album
when moving an image. This ensure that the required properties are still accessible
fixes
: Settings are accessible in Image viewThere were rare sequence of events which prevented the settings view to open.
new
: /Frame will now display a warning if no pictures are found.instead of staying a black screen, we now send an
alert()
new
: Share information are no longer displayed in public modeThey are still available in the Ajax query
upd
#773 : Update French localizationspacing typos in French localization
new
#771 : Update French localizationminor changes in the French localization.
new
#764 : Add Diagnotics warnings if the php init values are too low (less than 30M). new
#757 : Add limits on the number of logs seen.Too many logs lines where crashing php by using too much memory.
new
#758 : Add the possibility to chose the picture ordering per albumthe admin can now chose whether to order by name etc per album instead of globally.
Released Oct 9, 2020
fixes
#584 : Albums that do not allow photo downloads cannot be included as enclosures.This checks album permissions before creating the enclosure to add to the feed.
new
#616 : Add picture rotationsAs known improvements, this code will rotate all images.
fixes
#621 ( #623 ) : Original migration from v3 is less prone to breaknew
#625 : Better new smart albumsthis allows the ability to add more smart albums and more flexibility in using them.
fixes
#642 : Permission problem on WindowsWindows does not understand the concept of readable but not writable permission.
new
#656 : Add support for FireTVfixes
#662 : Error code changes in PhPnew
#660 : Add new available licensesnew
#659 : Add lossless image optimization supportfixes
#668 : Improved French translationnew
#671 : Add a redirection systemInstagram uses the hashtag for topics as a result, sharing a lychee link to an album does not work on it. Given example.com/r/123456 will be redirected to example.com/gallery#123456
and example.com/r/123456/7890 will be redirected to example.com/gallery#123456/7890
to allow sharing on such plateform.
new
#667 : Add support for traditional Chinese languagenew
#678 : Add support for Norvegian languagenew
#677 : Make swipping tolerances configurable.fixes
#680 : Distinguish UTC vs local video takestampsfixes
#708 : More failsafe when migrating from V3.new
#704 : Add smart albums by tagit is now possible to create smart albums which will take a list of tag and return an album containing the pictures with those tags.
new
#721 : Upgrade to Laravel version 8new
#727 : When checking a password on an album, upon success we also unlock the other albums with that same password.new
#749 : Add webp support to the GD handlerReleased May 26, 2020
new
#588 : add an option to the sync command to 're-sync' images that already exist.Since XMP sidecars are now allowed, images with the same checksum will not get updated metadata if the sidecar changes but the checksum remains the same. This adds an optional flag to the
lychee:sync
command that forces existing images with no change in checksum to get updated metadata from XMP files (if they exist). It only updates the image if the metadata read in differs from the metadata that the image aleady has.
new
#599 : Added method to get the full path of albums.Specifically in the sharing screen, when albums are sometimes named the same (if they are organized by Year and Month), then it is impossible to tell which album you are actually sharing. This adds the ability to get the album's "full path" and sends it down for the sharing settings.
fixes
#596 : Failing xmp file read results in fallback to native exif extraction.If the EXIF succeeds but sidecar fails, it reverts falls into the catch.
new
#574 : Support of HEIC files and subsequently convert raw files (e.g. .NEF) into jpeg.if a raw file is imported such as .nef, php-imagick will try to generate a thumbnail jpeg for it. Note that the extension still needs to be added in your advanced settings.
Important: Lychee was never meant to convert RAW files such as .nef, .cr2 .arw etc. If you shoot RAW, it is to be able to change exposure, dodge&burn, crop etc. later in a proper image processing software such as Lightroom, > Photoshop, Capture One, Luminar, Darktable … otherwise you better shoot JPEG. Lychee does not intend to provide those functionality.
new
#594 : Add debug bar for dev
install.It is disabled by default, even in debug mode. To enable it, set
DEBUGBAR_ENABLED
totrue
in your.env
file.
new
#579 : Ghostbuster command to clean up dead symlinks.The ghostbuster command also parses the database and see if some symlinks are dead. It will delete the photo from the database in such case. As this behaviour can modify the database, we disable it by default.
new
#577 : Parse additional xmp sidecars files to update metadata.This reads in XMP sidecar files (if they exist). Thankfully, exiftool supports reading in sidecars, so we can use the same technique we're using to read the files. We merge both file and sidecar metadata, taking priority based on user settings (default to prefer image metadata)
fixes
#581 : Undefined property errors when migrating from 3.1.6.The missing
license
,lens
are now taken care off.
fixes
#565 : No Dropbox Import with Lychee 4.0.0.The CSP was a bit too tight, preventing the execution of the script from dropbox.
Released May 15, 2020
new
#551 : Add RSS module.we provide a RSS feed, available at the
/rss
address. it will contains the lastrss_max_items
(default: 100) over the lastrss_recent_days
(default: 7) days.
fixes
#557 : report files not imported by sync.When using the command
lychee:sync
if a file is not imported for some reason, the Log will contains more detailed information instead of just an error message.
fixes
#550 : Version 4.0.4 database is not updated.Simply forgot to add the bump version.
fixes
#460 : Wrong rotation of photos when imported from server via symlink.thumbnails are now also rotated in the proper direction.
Released May 11, 2020
new
#543 : More idiot proof safeties (and avoid some 404 errors complaints).
- We add a check in the public directory that composer has indeed been run.
- We add a check that if apache is being used, the rewrite module is enabled (avoid silly 404 error when redirected to
/install
).
new
#541 : Better support for SQLiteWe create a file in
database/database.sqlite
to avoid issues in the case where some user decides to use this type of database without giving a path.
fixes
#539 : Invalid exif geolocation causes db errorWe now check that the latitude is between -90 and 90 degrees, we also check that the longitude is between -180 and 180 degrees. Any other values are discarded.
fixes
#533 : Add LYCHEE_UPLOADS_URL to secure-headers.phpThis allows the use allow images to be loaded from another server (CDN).
fixes
#529 : Footer linkable.With the update to Laravel v7, the footer was not html html tags anymore. We fix this. This allows the use of links in the footer, for e.g. legal stuff in Germany.
fixes
#525 : The config from the v3 was not migratedWe now also migrates most of the configuration from the v3 if the
lychee_settings
table if found.
Released April 29, 2020
fixes
#498 remove Lychee-front version number alltogetheradd Diagnostic information:
- Composer install type
- release type (git vs release)
- add button to allow migration for users using the release channel instead of master.
fixes
#508Diagnostic was checking the existence of mysqli only if postgresql is not used. With the added support of SQLite we now thoroughly check each possibilities.
fixes
#510add SQLite3 to the travis build check.
Released April 22, 2020
fixes
#488Error in the migration which made the script some files were existing.
fixes
#485Align lychee-front version number, remove error when not provided.
fixes
#487add missing files (css) to the installer.
Released April 19, 2020
fixes
#481 Decrease the size of the released archive by 82%.
fixes
missing download button when album is downloadable, does not have pictures but subalbumsReleased April 18, 2020
new
: uses the new Laravel backendBetter security for access control & more flexibility.
new
: broader database supportWith Laravel we are now Database agnostic; you can choose between MySQL, SQLite and PostgreSQL.
new
: introduce the sub-albumsYou can now create albums within albums.
new
: introduce multi user system (in addition to admin)The admin can arbitrarily change passwords, lock an account (user cannot change his password), give rights to the user to upload pictures and create albums.
new
: sharing between usersUsers can share albums with each other. Interface still needs improvements. Note that you are only give READ access, not write access.
new
: Frame moduleBy enabling the Frame module in the advanced settings, a user can display his starred pictures as a slideshow.
new
: Landing page moduleAllows the user to have a landing page instead of directly arriving at the gallery if enabled.
new
: Image symbolic moduleTo prevent full pictures from being directly available, a module is available to make the image link hard to guess. This will induce a slow down when the image is generated
new
: use XCRF cookiesAll requests to the server require an encrypted cookie in order to prevent cross-site request forgeries.
new
: "one click update"Admins can update their installation in one click in the Diagnostic interface if their installation has been done with
git
. This also support composer updates but this is more risqué.
new
: Full HiDPI supportOptional HiDPI support for preview images can be enabled in the advanced settings.
new
: Improved sharing and downloadingSharing and Visibility were split into two menus to make them easier to use; one can now download an image in any of the available sizes; multiple photos or albums can be downloaded in one go.
new
: Improved Smart albumsRecent and Starred can now be enabled in public mode using advanced settings; the age qualifying for Recent can be adjusted.
new
: Continuous Integration and Code CoverageWhile this is not visible to the users, we now test our builds before placing them in the master branch. This increases the stability of our builds. Our test suite currently covers 50% of our code.
new
: Image wraparound configurableWraparound from the last to first image when selecting Next in photo view can now be disabled in the advanced settings.
new
: Support for cn
, cz
, nl
, en
(default), fr
, de
, el
, it
, ru
, sk
, es
, sv
new
: Support for GPS coordinatesDecode the GPS data from the picture
new
: Display on map with OpenStreetMapoptionally display where on the map the picture has been taken
optionally add a global map to see where all your pictures have been taken.
new
: Live photosAdd support to live photos, also extract the video from the photo.
new
: Support 32 bits versionAdd support to 32 bits version of PHP (even though we don't like it).
new
: Provide command line access from server sideThis should replace the use of
lycheeupload
,lycheesync
,lychee-create-medium
available commands are:
lychee:exif_lens
: Get EXIF data from pictures if missinglychee:reset_admin
: Reset Login and Password of the admin user.lychee:logs
: Print the logs table.lychee:diagnostics
: Show the diagnostics informations.lychee:decode_GPS_locations
: Decodes the GPS location data and adds street, city, country, etc. to the tagslychee:generate_thumbs
: Generate intermediate thumbs if missinglychee:video_data
: Generate video thumbnails and metadata if missinglychee:sync
: Sync a directory to lycheelychee:npm
: Launch npm on the public/src folderlychee:takedate
: Make sure takedate is correct.use
php artisan lychee:<command> -h
for more informations about the command. For example:php artisan lychee:logs
will display the last 100 logs (requires the database).
fixes
: Improved Import from ServerUser can now select whether to delete originals right in the dialog box; status updates are provided throughout the input process; improvements were made to prevent PHP and HTTP timeouts.
fixes
: Improved support for video filesNext/prev buttons no longer cover the video player; extracted preview image now retains the video aspect ratio; basic video metadata is extracted and displayed in the Info sidebar.
fixes
: Multiselect improvementsShift-click is now supported for selecting ranges; clicking on the background clears selection; Ctrl-click for unselecting has been fixed.
fixes
: Sidebar improvementsThe Info sidebar no longer overlaps content; the displayed text can be selected and copied.
fixes
: Simplified password protection of albumsPassword-protected albums stay unlocked for the duration of the viewing session.
Released June 17, 2019
new
: hides lychee version number by default (e#82)wont-fix
: CVE-2021-43675
- Lychee-v3 3.2.16 is affected by a Cross Site Scripting (XSS) vulnerability in php/Access/Guest.php
.The function exit will terminate the script and print the message to the user. The message will contain albumID which is controlled by the user.
Released June 16, 2019
update
: improve stability when getting bad EXIF data (e#205)fixes
: ignore bad shutter data (3#240)update
: switch the git commit format number to only 7 characters in Diagnosticsfixes
: takedate format string (3#215, 3#256) new
: add setting to allow public search (3#262)fixes
: wrong version number displayed in Lychee (3#268)update
: credits.Released March 28, 2019
Updates
Add primary key to settings table (3#221)Updates
Add git source commit/branch/repo to Diagnostics pageUpdates
Use better lens tags from exiftool if present (if exiftool is enabled) (3#235)Updates
Accept larger input from exiftoolUpdates
Make photo/album IDs more consistentNew
Add fullscreen support to album and photo views (3#228)Updates
Use sortingAlbums and sortingPhotos even if logged out.Updates
Hide passwords. Add password confirmation.
Fixes
3#220, 3#222, 3#234, 'F' and 'f' hotkey behaviour and some spelling mistakes (3#229)
Released February 20, 2019
New
Add "unjustified" layoutUpdates
Improve Diagnostics pageFixes
3#194, 3#196, 3#205, 3#208Released February 12, 2019
New
Add usage of exiftool to get exif tags from camera #189
Using exiftool for getting exif tags make available a lot more tags than the built-in functionality in PHP. Using exiftool will make eg. lens info available without having to rely on that users have exported a raw from Ligthroom.
This setting needs to be enabled via the more
menu as it makes system calls.Fixes
image size missing from about 3#188Released February 3, 2019
New
Add description overlay and takestamps overlay in addition to Exif. Closes 3#167New
Add Setting to remove script execution time limit during imports. Fixes 3#177
This setting can only be activated via the More
setting and at user owns risks.Released January 19, 2019
New
Switch to InnoDB engine. Closes #169New
Add setting to decide whether to delete photos from source when imported. Fixes 3#173New
Use existing albums (if available) when importing from serverReleased January 9, 2019
Nothing major here. Just a bunch of small bug fixes
WARNING: Lychee now requires PHP 7.1 ( http://php.net/supported-versions.php )
Fixes
Cross-Origin Request Blocked: https://lycheeorg.github.io/update.json ( 3#121 )
The server is now doing the check for update (on Session::init
) if this one fail, the user will do an ajax request to check if an update is available.Fixes
Syntax Error in Session.php ( 3#153 )Fixes
Small bugs ( 3#136 , 3#157 , 3#159 , 3#163 , 3#166 )Fixes
lychee uploading pics into uploads/thumb folder only ( 3#148 , 3#165 )Updates
German translations ( 3#161 )Released December 26, 2018
Fixes
Site broken (3#157)
New
Admins can now access all settings via Settings -> more
at the bottom of the page.
WARNING: it is now easier to break your installation.
New
Admins can now create a specific user.css
file that will be loaded in addition to the main.css
one. This css file can be modified at the bottom of the Settings
screen.New
Admins can now define the default size for their medium and small images (via the advanced settings).
Fixes
Turn off zoom-in animation when switching photos (3#154)
Fixes
Setting // Image Size Definition // Small, Medium, large // With Default values (3#152)Fixes
"Display EXIF data overlay" can toggled with click on image (3#151)Fixes
"play-icon.png" should be in "lychee-front/images" not root (3#150) It is now placed in dist
Fixes
Shutter speed for long time exposures is displayed as fraction (3#149)Fixes
[Wish] Custom Size Image Creation (3#141)Fixes
New album doesn't show after create unless you refresh page (3#135)Fixes
Unable to edit settings table in database (3#80)Fixes
Hover-Over Blue Border/Square Highlights (3#51)Released December 11, 2018
New
Album-level licenses
(WARNING: All photo-level licenses will be reset when this update is applied.)New
Added script to generate "small" size files for existing imagesImproved
Update link on login dialog directs to the Releases page rather than the Readme.Fixes
Center align play icon in video thumbnail (3#133)Fixes
Missing "small" folder in 3.2.6 release (3#146)Fixes
Other minor bugfixesReleased November 30, 2018
New
Default Creative Commons license field in Settings. Applies to new uploads only.Fixes
Misspelling of 'Starred' Smart Album (English)Fixes
Albums not showing when 'Move' was selected on a single photo (3#129)Fixes
Previously set license saved in License field (3#120)Released November 26, 2018
New
Creative Commons licenses available as photo metadata (3#71)New
"Copy to..." option is now availableReleased November 22, 2018
Fixes
3#112, 3#111 (quick fix), 3#110, 3#109, 3#105, LycheeOrg/Lychee-front 3#16.New
small pictures (for the justified-layout)New
Lens informationNew
Displaying EXIF data as an overlay in the image view.Released November 21, 2018
New
German translations (3#104)New
support for justified-layout (3#95)Justified Layout is available as an option in the settings. It will only works with Imagick and medium. Lychee-front will require a npm install (only for devs).
Released November 20,2018
Fixed
small bugsFixed
SQL updated not appliedNew
Swedish support (3#101)New
multi selection with CTRL (3#36)New
Content Security Policy via .htaccess (3#91, 3#92)Released November 12, 2018
Fixes
Picture ordering bug.New
Panel for settings.New
Allow video upload. (3#4)New
localization (so far in English, French, Dutch and Simplified Chinese) (3#48, 3#53, 3#54, 3#55, 3#87, 3#94)[OPTIONAL] In order to have Thumbnail for video you will need to use composer:
cd Lychee
composer update
Released March 20, 2017
Fixed
Downloading a SmartAlbum results in crash (e#652)Fixed
htaccess IfModule for PHP7 (e#653)Released October 25, 2016
New
Hide mouse pointer in full screen mode (e#620)Improved
Smoothing rotation of album (e#626)Released August 28, 2016
Fixed
Search stopped working because of an undefined index error (e#605)Fixed
Better next/previous photo check to prevent an error when opening an album with only one photoReleased August 22, 2016
Improved
rotate and flip images with GD based on EXIF orientation (Thanks @qligier, e#600)Improved
enter/leave fullscreen-mode by (not) moving the mouse for one second (Thanks @hrniels, e#583)Improved
Prefetch the medium photo instead of the big one (Thanks @Bramas, e#446)Improved
Added "session" to required extensions (e#579)Improved
Added warning if Imagick is not installed/enabled (Thanks @hrniels, e#590)Fixed
Don't assume that gd_info exists when running diagnostics (Thanks @hrniels, e#589 e#565)Fixed
Sidebar showing up in smart albums when navigating back from the photo-viewReleased June 12, 2016
Improved
Added indexes to SQL fields to improve query execution time (Thanks @qligier, e#533)Improved
Protocol-relative URLs for open graph metadata (e#546)Improved
Remove metadata from medium-sized images and thumbnails (Imagick only) (e#556)Improved
Reduce quality of medium-sized images (Imagick only) (e#556)Improved
orientation-handling with Imagick (e#556)Released April 30, 2016
New
share button when logged out (e#473)New
Import of IPTC photo tags (Thanks @qligier, e#514)New
Added reset username and password to FAQ (e#500 e#128)Improved
Removed will-change from the main image to improve the image rendering in Chrome (e#501)Improved
scroll and rendering performance by removing will-changeImproved
Open Facebook and Twitter sharing sheet in new windowImproved
EXIF and IPTC extraction (Thanks @qligier, e#518)Fixed
broken URL in Update.md (e#516)Fixed
error 500 on database connect error (Thanks @tribut, e#530)Released March 29, 2016
Warning: It's no longer possible to update from Lychee versions older than 2.7.
Warning: Plugins which use the plugin API of Lychee must be updated to work with the new back-end.
Notice: It's no longer possible to edit the thumb quality in the database.
Notice: It's no longer possible to disable the creation of medium-sized photos when Imagick is installed on the system.
This updates includes a huge rewrite of the back-end. We are now using namespaces and the singleton pattern for Settings::get(), Database::get() and Plugins::get(). Everything is way better documented thanks to PHPDoc comments. Ugly #
comments have been replaced with the more known //
. Unused functions are gone and returns are more strict. We also added a handy module to output messages. Failed database updates and invalid queries will be saved to the log.
New
Empty titles for albumsNew
Share albums as hidden so they are only viewable with a direct link (e#27)New
Log failed and successful login attempts (Thanks @qligier, e#382 e#246)Improved
error messages and log outputImproved
The search shows albums above photos (e#434)Improved
Album id now based on the current microtime (e#27)Improved
Back-end modules and pluginsImproved
Database connect function and update mechanismImproved
Default photo title now "Untitled"Improved
Move to next photo after after moving a picture (e#437)Improved
Return to album overview when canceling album password inputImproved
URL import now accepts photo URLs containing "?" and ":" (Thanks @qligier, e#482)Improved
Replaced date by strftime to simplify date translations (Thanks @qligier, e#461)Fixed
Missing icons in Safari 9.1Fixed
duplicate uploads (Thanks @qligier, e#433)Fixed
incorrect escaping when using backslashesFixed
session_start() after sending headers (e#433)Fixed
error when deleting last open photo in albumFixed
Photo sometimes not loading when visiting directlyFixed
Move album, merge album and switch album/photo menus no longer show empty titles for untitled albums/photosReleased January 10, 2016
Improved
Disabled dragging for thumbnailsImproved
Avoided unnecessary devicePixelRatio checks by using srcset for all thumbnailsImproved
Avoided devicePixelRatio check by using srcset for the imageview imageImproved
Don't show log and system information when logged out (Thanks @Bramas, e#421)Fixed
Swipe-gestures on mobile devicesReleased December 20, 2015
Improved
Lychee update site now with SSL (e#317)Improved
Set undefined vars, remove unused vars and code that cannot be reached (Thanks @mattsches, e#435)Released November 15, 2015
New
PHP-version-check now requires PHP >= 5.5New
Preloading of big photos (e#185)Released September 13, 2015
Improved
Share photo now shares view.php link (e#392)Fixed
Incorrect error messages for failed uploads (e#393)Fixed
XSS issues and escaping problemsFixed
Broken "Download album" when album has an ampersand in the password (e#356)Released August 9, 2015
Fixed
view.php not displaying photosReleased July 17, 2015
Improved
Removed bower and updated basicModal & basicContextImproved
Small interface performance improvementsImproved
Updated all JS-files to take advantage of ES2015Improved
Better error-handling for the Dropbox-, URL- and Server-ImportImproved
Added skipDuplicates- and identifier-check to the diagnosticsFixed
error when using "Merge All" with one selected albumFixed
error when saving username and password after the initial setupFixed
Clicks not recognized when using a mouse on a touchscreen-device (e#345)Released June 28, 2015
New
Skip duplicates on upload (e#367, How to activate)Released June 13, 2015
Improved
Permission errors are now easier to understand (e#351)Improved
Escape data from database before inserting into view.php
Fixed
PHP-version-check now requires PHP >= 5.3 like written in the docsReleased May 24, 2015
New
Album Sorting (Thanks @ophian, e#98)New
Identifier to prevent login of multiple Lychee-instances (e#344)Improved
Albums and photos now can have a title with up to 50 chars (e#332)Fixed
Removing last Tag from photo not possible in Firefox (e#269)Released May 6, 2015
Warning: You need to enter a new username and password when upgrading from a previous version. Your installation is accessible for everyone till you enter a new login by visiting your Lychee. Both fields are now stored in a secure way. Legacy md5 code has been removed.
Warning: Upgrading from a previous version will set all public albums to private. Passwords are now stored in a secure way. Legacy md5 code has been removed.
Warning: We recommend to backup your database and photos before upgrading to the newest version.
Deprecated: Photos uploaded with Lychee v1.1 or older aren't supported anymore. Thumbnails fail to load on high-res screens.
New
Redesigned interface, icons and symbolsNew
Rewritten Front-EndNew
Dialog system now based on basicModalNew
Context-menus now based on basicContextNew
Edit the sharing options of a public albumNew
Quickly switch between albums and photos by clicking the title in the headerNew
Renamed API functionsNew
Merge albums (Thanks @rhurling, e#340, e#341, e#166)New
iPhone 6 Homescreen iconImproved
Performance of animationsImproved
Prevent download of deleted albums/photosImproved
Opening a private photo when logged out now shows an errorImproved
Reduced attribute changes to improve performanceImproved
Interact with the content while the sidebar stays openImproved
Username and password now stored in a safer wayImproved
Album passwords now stored in a safer wayImproved
Don't refresh albums when password-input canceled by userImproved
Additional Open Graph Metadata (e#299)Improved
Check allow_url_fopen (e#302)Fixed
Prevent ctrl+a from selecting the sidebar (e#230)Fixed
Removed unused scrolling bars in FF (e#316, e#289)And much moreโฆ
Released April 13, 2015
Fixed
Prevented remote code execution of photos imported using "Import from URL" (Thanks Segment S.r.l)Fixed
Stopped view.php from returning data of private photosReleased January 26, 2015
Improved
auto-login after first installationFixed
Disabled import of the medium-folderFixed
error when using apostrophes in text #290Fixed
$medium is now a tinyint like defined in the database structureFixed
incorrect height calculation for photosFixed
creation of test db e#295Fixed
a warning caused by set_charset e#291Released December 6, 2014
New
Intermediate sized images for small screen devices #67New
Added Docker help (@renfredxh, e#252)New
Move-Photo context shows album previewsImproved
Upload shows server-errorsImproved
Improved thumb creationImproved
Docker (@renfredxh, e#252)Improved
CSS has been rewritten partlyImproved
Front-end has been rewritten partly e#245Improved
Folder- and code-structure has been updatedImproved
Context-menu now based on basicContext e#245Fixed
OpenGraph image too big for some sites e#69Fixed
Wrong sizes after EXIF rotationFixed
Returning to 'Albums' after searching failedFixed
Move-Photo not scrollable e#215Released October 10, 2014
New
Caching for albums (Thanks @r0x0r, e#232)New
Save scroll position of albums (Thanks @r0x0r, e#232)New
Added Dockerfile (@renfredxh, e#236)Improved
Newest album on the top (Thanks @r0x0r, e#232)Fixed
Login in private mode (Safari)Fixed
Drag & Drop with open photoFixed
Wrong modified date of the photo filesFixed
Search function always returned all photos (Thanks @powentan, e#234)Released September 12, 2014
New
Select all albums/photos with cmd+a
or ctrl+a
New
Detect duplicates and only save one file (e#48)New
Duplicate photos (e#186)New
Added contributing guideNew
Database table prefix for multiple Lychee installations (e#196)Improved
Use IPTC Title when Headline not available (e#216)Improved
Diagnostics are showing system informationImproved
Harden against SQL injection attacks (e#38)Fixed
a problem with htmlentities and older PHP versions (e#212)Released August 22, 2014
New
Support for IE >= 11 (e#148)New
Choose if public album is downloadable or not (e#191)Improved
Albums gradient overlay is less harsh (e#200)Released August 16, 2014
New
Rewritten and redesigned Uploader (e#101)New
Custom server-import directory (e#187)New
Plugin documentationImproved
Database and installation process (e#202 #195)Improved
"No public albums" now easier to read (e#205)Fixed
Don't show EXIF info when not available (e#194)Released July 25, 2014
New
Choose if album should be listed public (e#177)New
Gulp instead of Grunt with autoprefixerImproved
Slightly better performance when opening big albumsImproved
Checksum with sha1 instead of md5 (e#179)Fixed
Missing public badge on public albumsFixed
Wrong path for public photos in view.phpFixed
Wrong link to thumbs when searchingFixed
Wrong date in album view when takestamp was nullFixed
It wasn't possible to rename albums while searchingFixed
It was possible to right-click on SmartAlbums after searchingReleased July 5, 2014
New
Smart Album "Recent"New
Checksum of photo in database (e#48)New
Show takedate in photo-overlay (when available)Improved
Permission check when running with the same UID (e#174)Released June 24, 2014
New
Swipe gestures on mobile devicesNew
Plugin-SystemNew
Rewritten Back-EndNew
Support for ImageMagick (thanks @bb-Ricardo)New
Logging-SystemNew
Blowfish hash instead of MD5 for all new passwords (thanks @bb-Ricardo)New
Compile Lychee using Grunt (with npm and bower)New
Open full photo without making the photo publicImproved
ShortcutsImproved
Album share dialogImproved
Database update mechanismImproved
Download photos with correct title (thanks @bb-Ricardo)Improved
EXIF parsingImproved
URL and Server import (thanks @djdallmann)Improved
Check permissions on uploadFixed
Wrong capture date in InfoboxFixed
Sorting by takedateReleased March 20, 2014
New
Delete albums with cmd + backspaceNew
Using iOS 7.1 minimal-uiImproved
Faster loading of single photosImproved
Faster and snappier animationsImproved
Better dialog when clearing UnsortedFixed
Warning when uploading images without EXIF-DataFixed
Close upload on errorReleased March 4, 2014
Important: You need to reenter your database credentials and set the correct rights for data/
, when updating from a previous version.
New
Multi-select (e#32)New
Multi-folder import from server (e#47)New
Tagging (e#5)New
Import of original image name (e#39)New
MakefileImproved
Upload-processImproved
DocumentationImproved
Overlay for photosFixed
Dropbox import (e#84)Fixed
Wrong login or password annotation (e#71)Fixed
Escaping issue (e#89)Moved
Config now located in data/
Released February 26, 2014
Released January 30, 2014
Released January 24, 2014
Released January 22, 2014
Released November 21, 2013
This update includes small fixes and enhancements.
Released September 8, 2013
Released Septermber 3, 2013
New: - Protect public albums with passwords - Export to Dropbox - Sharing-Link is displayed directly inside the sharing-dropdown - Delete photos with cmd+backspace
Improved: - Massive speed improvements - Changing the title, starring, description, etc. is now instant - Longer filenames for pictures (more security)
ShortLinks are removed for more independency and privacy. There are a lot of changes under the hood, including a lot of bug fixes and improvements. Please report every bug you find!
Released June 17, 2013
Released May 3, 2013
Released January 15, 2013
Released October 25, 2012
Released October 2, 2012
{tip} Caught a mistake or want to contribute to the documentation? Edit this page on Github!