Skip to content

Commit 7e0160d

Browse files
committed
more documentation
1 parent 04e33a7 commit 7e0160d

3 files changed

Lines changed: 92 additions & 5 deletions

File tree

docs/releases.md

Lines changed: 86 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,92 @@
3030

3131
## Version 7
3232

33+
### v7.1.0
34+
35+
Released on Jan 11th, 2026
36+
37+
#### Back to Debian, More caching and Pagination,
38+
39+
This release brings a major changes under the hood: We moved back from an Alpine-based docker image to a Debian-based one.
40+
This should solve some speed issues with php and stability issues with the musl libc used in Alpine. Combined with the ability to drop privileges
41+
for the php processes, this means that **you will likely need to double check the access rights of your volumes to make sure that they remain
42+
readable and writable by the php processes.** We are aware that this change created issues for some Synology users, and we are investigating a fix.
43+
In the meantime, you can use the environment variable `RUN_AS_ROOT=yes` to run the php processes as root again as a workaround.
44+
45+
Additionally, we added more precomputation mechanisms to improve the speed of Lychee. The thumbs are now pro-computed with the following caracteristics:
46+
If you select a photo as album cover, it will be visible to anyone. Otherwise, we pre-compute two thumbs covers: max privileges which is visible to admin and owner of the album, and min privileges which is visible to anyone. This is done by applying the previous logic that was used to select the thumb at runtime, but now pre-computed and stored in the database.
47+
48+
Finally, we added pagination to the albums and photos view. This should greatly improve the speed of Lychee when having a large number of albums/photos.
49+
You can configure the number of items, the type of pagination (paginated, load more, infinite scroll), and the reactivity of the preloading in infinite scroll in your gallery settings.
50+
51+
#### Most notable changes
52+
53+
`klo` refers to *Keep the Light On*. In other words, basic software updates.
54+
55+
56+
* `fix` #3920 : Do not load duplicates directly, it crashes the DB... by @ildyria.
57+
> When having a large number of photos, the duplicate query would hang and freeze the maintenance page.
58+
> We now make it an action required by the user.
59+
* `new` #3921 : Album computed fields by @ildyria.
60+
> Albums now have pre-computed fields for the cover thumb, and min/max dates. This improves speed when loading albums.
61+
> Those fields are updated when photos are added/removed from albums.
62+
> A maintenance action is also available to pre-compute those fields for existing albums.
63+
* `new` #3924 : Open keygen in a new page by @ildyria.
64+
> Per request of one our users, a small quality of life improvement, the keygen website now opens
65+
> in a new tab from the settings page when your SE key expired
66+
* `new` #3926 : Refactor thumb selection to avoid queries by @ildyria.
67+
> Leveraging the pre-computed fields, we refactored the thumb selection to avoid queries when loading albums.
68+
> This should furthermore increase the loading speed of Lychee.
69+
* `fix` #3927 : Fix unexpected password propagation behaviour by @ildyria.
70+
> A small security fix. When entering a password for a shared album, it was being propagated to all other albuns.
71+
> In a multi-user context, this could lead to unexpected access rights. A CVE has been raised for this issue,
72+
> read more [here](https://github.com/LycheeOrg/Lychee/security/advisories/GHSA-jj56-2c54-4f25).
73+
* `new` #3922 : Precompute album sizes. by @ildyria.
74+
> In addition to pre-computing the album thumb and min/max dates, we also pre-compute the album size.
75+
> This improves speed when statistics of the album.
76+
* `fix` #3928 : Fix Cache config not existing in the handling of cache events by @ildyria.
77+
> When running for the first time Lychee, the cache config was not existing yet, leading to errors when handling cache events.
78+
* `new` #3930 : Add view albums as lines instead of thumbs. by @ildyria.
79+
> A small quality of life improvement, you can now view albums as lines instead of square thumbs.
80+
> This is especially useful when you have a large number of albums and want to see the title as a single line to compare with your OS file explorer.
81+
* `fix` #3933 : Fix propagation not happening by @ildyria.
82+
> When uploading an image, the propagation of the recomputation of statistics was not happenning. This is now fixed.
83+
* `new` #3932 : Create legacy image by @ildyria.
84+
> Moving to FrankenPHP is a risky step. To mitigate potential issues, we also create a legacy image with nginx + php-fpm.
85+
> It is available at the tag `latest-legacy` and `edge-legacy`, mirroring respectively the `latest` and `edge` tags.
86+
* `new` #3934 : Add query logging by @ildyria.
87+
> To help us debug issues, we added query logging when the app is in debug mode. This will help us identify slow queries and optimize them.
88+
* `klo` #3936 : Fix deprecation warning by @ildyria.
89+
> PHP 8.5 comes with a few deprecation warnings. We fixed those to ensure compatibility with future PHP versions.
90+
* `klo` #3937 : Segregate cache when building docker image by @ildyria.
91+
> To avoid cache invalidation in our CICD pipeline, we now segregate the cache (legacy vs frankenphp) when building the docker image.
92+
* `klo` #3938 : Add clean up on old packages by @ildyria.
93+
> We added a CICD step to clean up old docker images that are unused in order to decrease our carbon footprint.
94+
* `new` #3939 : Add safety check to avoid breaking everything if the db query fails. by @ildyria.
95+
> A small safety check to avoid breaking the entire app if a db query fails during migrations.
96+
* `new` #3945 : Add support for max execution time & memory limit by @ildyria.
97+
> To help users with low resource environments, we added support for max execution time and memory limit in the `.env` file.
98+
* `new` #3954 : Alpine to Debian conversion by @ildyria.
99+
> To improve compatibility with various systems, we moved from an Alpine-based docker image to a Debian-based one.
100+
> This should also improve the stability of php and avoid known issues betten PHP and Alpine's musl libc.
101+
* `new` #3953 : Fix: Drop privileges for PHP processes in Docker entrypoint by @m3nu.
102+
> Since version 7.0.0, Lychee's docker image runs PHP processes as root user, this is a security risk.
103+
> @m3nu contributed a fix to drop the privileges to the `www-data` user when running the PHP processes.
104+
> Unfortunately, this combined with the switch from Alpine to Debian means that you will probably need to update your volume ownership from 82 to 33 or to the PUID/GUID of the selected user.
105+
>
106+
> It is also known that Synology users are currently facing issues with this change. We are investigating a fix.
107+
> As a work around, you can use `RUN_AS_ROOT=yes` in your environment to run the PHP processes as root again, but this is not recommended for security reasons, but a hopefully temporary workaround.
108+
* `fix` #3958 : Fix issue with variables not loaded where they should by @ildyria.
109+
> We have been made aware that because the entrypoint was calling further bash scripts, those where not using the environment variables set in the docker-compose file. This is obviously a problem that we fixed.
110+
* `new` #3952 : Add pagination & refactoring to reduce the number of queries by @ildyria.
111+
> To further improve the speed of Lychee, we added pagination to the albums and photos view. Note that this will have undefined behaviour if you are using sorting by title or description. In such case we added a new type of sorting: lexicographical sorting which is done at the database level instead of php. This does means that albums 1 2 10 will be sorted as 1 10 2, but at least they will be paginated without random order.
112+
113+
#### New Contributors
114+
* @m3nu made their first contribution in https://github.com/LycheeOrg/Lychee/pull/3953
115+
116+
**Full Changelog**: https://github.com/LycheeOrg/Lychee/compare/v7.0.1...v7.1.0
117+
118+
33119
### v7.0.1
34120

35121
Released on Jan 1st, 2026
@@ -60,7 +146,6 @@ Read more on our [blog post](https://lycheeorg.dev/2025-12-31-version-7/) about
60146
#### Most notable changes
61147

62148
`SE` refers to functionalities that are aimed at the Supporter/Pro Edition.
63-
`klo` refers to *Keep the Light On*. In other words, basic software updates.
64149

65150

66151
* `klo` #3880 : Spec driven development support by @ildyria.

src/components/widgets/Announcement.astro

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
>NEW</span
1111
>
1212
<a
13-
href="https://github.com/LycheeOrg/Lychee/releases/tag/v7.0.0"
14-
class="text-slate-200 hover:underline dark:text-slate-200 font-medium">Lychee 7.0.0 is now available! »</a
13+
href="https://github.com/LycheeOrg/Lychee/releases/tag/v7.1.0"
14+
class="text-slate-200 hover:underline dark:text-slate-200 font-medium">Lychee 7.1.0 is now available! »</a
1515
>
1616
<!-- <a
1717
href="https://github.com/LycheeOrg/Lychee/releases/tag/v6.10.4"

src/pages/roadmap.astro

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ const metadata = {
88
99
// Release data extracted from releases.md
1010
const releases = [
11+
{ version: 'v7.1.0', date: 'Jan 11, 2026', title: 'Back to Debian, Caching & Pagination', type: 'major', highlights: ['Moved from Alpine to Debian docker', 'Pre-computed album covers & stats', 'Pagination for albums & photos', 'Drop privileges for PHP processes', 'Improved loading speed', 'Lexicographical sorting'] },
12+
{ version: 'v7.0.1', date: 'Jan 1, 2026', title: 'Minor fixes', type: 'bugfix', highlights: ['Fixed eternal darkmode issue'] },
1113
{ version: 'v7.0.0', date: 'Dec 31, 2025', title: 'FrankenPHP, Webshop & Ratings', type: 'major', highlights: ['🌟 Webshop (Pro Edition)', 'Star rating system', 'FrankenPHP with Laravel Octane', 'Worker mode for horizontal scaling', 'AVIF support', 'PHP 8.4 required'] },
1214
{ version: 'v6.10.4', date: 'Dec 11, 2025', title: 'Minor Reflected SSRF fix', type: 'security', highlights: ['Fixed SSRF vulnerability with redirect validation', 'Added expert configuration to disable URL redirects'] },
1315
{ version: 'v6.10.3', date: 'Dec 4, 2025', title: 'Video support in embedded galleries', type: 'feature', highlights: ['Added video support to embedded galleries', 'Translations in EmbedCodeDialog', 'Fixed base URL for embedded galleries'] },
@@ -153,11 +155,11 @@ const getReleaseTypeBadge = (type: string) => {
153155
<div class="mx-auto max-w-3xl pt-12 px-4 sm:px-6">
154156
<div class="grid grid-cols-2 md:grid-cols-4 gap-8 text-center">
155157
<div class="space-y-2">
156-
<div class="text-4xl font-bold text-primary">7.0.0</div>
158+
<div class="text-4xl font-bold text-primary">7.1.0</div>
157159
<div class="text-sm text-gray-600 dark:text-gray-400 uppercase tracking-wide">Latest Version</div>
158160
</div>
159161
<div class="space-y-2">
160-
<div class="text-4xl font-bold text-primary">104</div>
162+
<div class="text-4xl font-bold text-primary">106</div>
161163
<div class="text-sm text-gray-600 dark:text-gray-400 uppercase tracking-wide">Total Releases</div>
162164
</div>
163165
<div class="space-y-2">

0 commit comments

Comments
 (0)