WIP v6
Fixes #106
Closes #126
Fixes #226 (SE)
Closes #520 (SE)
Fixes #987
Fixes #1420
Closes #1641 (SE)
Fixes #1987
Fixes #2082
Fixes #2086
Fixes #2168
Fixes #2194
Fixes #2361
Fixes #2495
Is there already a time horizon for completion :) ?
I wish. :')
I have a PR here to create a small blog: https://github.com/LycheeOrg/LycheeOrg.github.io/pull/132
waiting for reviews. :) The blog aims to provide some highlight of the work in progress on V6.
The site looks nice. The main menu item "Docs" has no content yet. If I understand correctly, this project will also replace the current project website?
No, just an update/refresher of the LycheeOrg website, nothing much there.
The make command build the full thing in dist (including the docs ;) ).
Is there already a time horizon for completion :) ? Or rather, what is still missing?
Is there already a time horizon for completion :) ? Or rather, what is still missing?
Time horizon... As you already know, I released the Beta. This indicates that I believe the version is pretty much production ready.
I think in term of what is missing... I would say only the headers when you select one or multiple photos. The actions are already available in the right click, but a duplication would be possibly nice to the user. That is pretty much it in term of functionalities.
Once that header thingy is done, can we release directly? Well, that is why I released a Beta. I hope to get some feedback and be able to fix bugs before going 6.0.0 and avoid thus having to release immediately after 6.0.1, 6.0.2, 6.0.3, 6.0.4, ... :sweat_smile:
What is really missing is user feedback and code reviews. Combined with #2498, this is a monster of a PR: +39,933 −26,373 @d7415 said that he would participate in the review, but alone, I fear it is going to take him months. :sweat_smile: (Took me 3 months to completely rewrite the front-end, that is going to take some time to be digested.
I would really like to avoid having this merged without a decent review. :)
To give you an idea of how much I think the Beta is ready, I am already running the docker alpha tag on my personal production environment. :)
I found bug in latest relase.
The problem is that in docker image the tmp directory is owned by root
root@ce9332e449e5:/var/www/html/Lychee# ls -la storage/tmp
lrwxrwxrwx 1 root root 11 Oct 9 13:54 storage/tmp -> /lychee-tmp
root@ce9332e449e5:/var/www/html/Lychee# ls -la /
total 2234532
drwxr-xr-x 1 root root 12 Oct 9 13:54 .
drwxr-xr-x 1 root root 12 Oct 9 13:54 ..
-rwxr-xr-x 1 root root 0 Oct 9 13:54 .dockerenv
lrwxrwxrwx 1 root root 7 Sep 26 00:00 bin -> usr/bin
drwxr-xr-x 2 root root 2 Aug 14 16:10 boot
drwxr-xr-x 2 root root 6 Oct 9 13:54 conf
drwxr-xr-x 5 root root 340 Oct 9 13:54 dev
-rwxr-xr-x 1 root root 6742 Oct 8 20:48 entrypoint.sh
drwxr-xr-x 1 root root 10 Oct 9 13:54 etc
drwxr-xr-x 2 root root 2 Aug 14 16:10 home
-rwxr-xr-x 1 root root 11132 Oct 8 20:48 inject.sh
lrwxrwxrwx 1 root root 7 Sep 26 00:00 lib -> usr/lib
lrwxrwxrwx 1 root root 9 Sep 26 00:00 lib64 -> usr/lib64
drwxrwsr-x 2 lychee lychee 8 Oct 9 13:56 logs
drwxr-xr-x 5 root root 6 Oct 9 13:54 lychee-tmp
drwxr-xr-x 2 root root 2 Sep 26 00:00 media
drwxr-xr-x 2 root root 2 Sep 26 00:00 mnt
drwxr-xr-x 2 root root 2 Sep 26 00:00 opt
dr-xr-xr-x 19428 nobody nogroup 0 Oct 9 13:54 proc
drwx------ 1 root root 3 Oct 9 14:00 root
drwxr-xr-x 1 root root 6 Oct 9 13:54 run
lrwxrwxrwx 1 root root 8 Sep 26 00:00 sbin -> usr/sbin
drwxr-xr-x 2 root root 2 Sep 26 00:00 srv
drwxrwsr-x 2 lychee lychee 4352300 Oct 9 14:02 sym
dr-xr-xr-x 12 nobody nogroup 0 Jun 14 19:05 sys
drwxrwxrwt 1 root root 2 Oct 9 14:06 tmp
drwxrwsr-x 14 lychee lychee 15 Sep 5 19:54 uploads
drwxr-xr-x 1 root root 8 Sep 26 00:00 usr
drwxr-xr-x 1 root root 5 Oct 8 20:49 var
App\Exceptions\MediaFileOperationException in /var/www/html/Lychee/app/Image/Files/NativeLocalFile.php:129
fopen(/var/www/html/Lychee/storage/tmp/uploads/bqcf1Ql46pFkdwnx.jpg): Failed to open stream: Permission denied
/var/www/html/Lychee/app/Http/Controllers/Gallery/PhotoController.php:54 — append
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54 — upload
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43 — callAction
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Routing/Route.php:262 — dispatch
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Routing/Route.php:208 — runController
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Routing/Router.php:808 — run
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:144 — Illuminate\Routing\{closure}
/var/www/html/Lychee/app/Http/Middleware/ContentType.php:49 — Illuminate\Pipeline\{closure}
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:183 — handle
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php:51 — Illuminate\Pipeline\{closure}
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:183 — handle
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php:88 — Illuminate\Pipeline\{closure}
/var/www/html/Lychee/app/Http/Middleware/VerifyCsrfToken.php:44 — handle
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:183 — handle
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Session/Middleware/AuthenticateSession.php:67 — Illuminate\Pipeline\{closure}
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:183 — handle
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php:49 — Illuminate\Pipeline\{closure}
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:183 — handle
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:121 — Illuminate\Pipeline\{closure}
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:64 — handleStatefulRequest
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:183 — handle
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php:37 — Illuminate\Pipeline\{closure}
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:183 — handle
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php:75 — Illuminate\Pipeline\{closure}
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:183 — handle
/var/www/html/Lychee/app/Http/Middleware/AcceptContentType.php:74 — Illuminate\Pipeline\{closure}
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:183 — handle
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:119 — Illuminate\Pipeline\{closure}
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Routing/Router.php:807 — then
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Routing/Router.php:786 — runRouteWithinStack
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Routing/Router.php:750 — runRoute
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Routing/Router.php:739 — dispatchToRoute
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:201 — dispatch
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:144 — Illuminate\Foundation\Http\{closure}
/var/www/html/Lychee/vendor/bepsvpt/secure-headers/src/SecureHeadersMiddleware.php:18 — Illuminate\Pipeline\{closure}
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:183 — handle
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:21 — Illuminate\Pipeline\{closure}
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php:31 — handle
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:183 — handle
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:21 — Illuminate\Pipeline\{closure}
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php:51 — handle
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:183 — handle
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php:27 — Illuminate\Pipeline\{closure}
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:183 — handle
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php:110 — Illuminate\Pipeline\{closure}
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:183 — handle
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php:58 — Illuminate\Pipeline\{closure}
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:183 — handle
/var/www/html/Lychee/app/Http/Middleware/FixStatusCode.php:30 — Illuminate\Pipeline\{closure}
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:183 — handle
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:119 — Illuminate\Pipeline\{closure}
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:176 — then
/var/www/html/Lychee/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:145 — sendRequestThroughRouter
/var/www/html/Lychee/public/index.php:73 — handle
Miss Czech Republic 2025
Miss Czech Republic 2025
Vytvořeno Sep 27, 2024, 8:16:39 PM CEST2 Subalba
240915
Photo thumbnailPhoto thumbnailPhoto thumbnail
Casting 15.9.2024
Sep 2024
Photo thumbnailPhoto thumbnailPhoto thumbnail
Casting 14.9.2024
Sep 2024
Diagnostic
Errors
Loading...
Info
Lychee Version (git): alpha (283c74d) -- Could not compare.
DB Version: 6.0.0
composer install: --no-dev
APP_ENV: production
APP_DEBUG: true
APP_URL: set
APP_DIR: default
LOG_VIEWER_ENABLED: false
VUEJS_ENABLED: true
System: Linux
PHP Version: 8.2.24
PHP User agent: Lychee/4 (https://lycheeorg.github.io/)
Timezone: Europe/Prague
Max uploaded file size: 100M
Max post size: 100M
Chunk size: 25.60 MB
Max execution time: 3600
PostgreSQL Version: PostgreSQL 16.4 (Debian 16.4-1.pgdg120+2) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
exec() Available: yes
Imagick Available: 1
Imagick Enabled: 1
Imagick Version: 1691
GD Version: 2.3.3
Number of foreign key: 12 found.
Space
Lychee total space: 207.66 MB
Upload folder space: 8.00 B
System total space: 240.00 GB
System free space: 129.46 GB (53%)
Configuration
version: 060000
check_for_updates: 0
sorting_photos_col: title
sorting_photos_order: ASC
sorting_albums_col: description
sorting_albums_order: DESC
imagick: 1
skip_duplicates: 0
small_max_width: 0
small_max_height: 360
medium_max_width: 1920
medium_max_height: 1080
lang: cz
image_overlay_type: desc
default_license: reserved
compression_quality: 90
grants_full_photo_access: 1
delete_imported: 0
mod_frame_enabled: 1
mod_frame_refresh: 30
thumb_2x: 1
small_2x: 1
medium_2x: 1
landing_page_enable: 1
force_migration_in_production: 0
search_public: 0
hide_version_number: 0
SL_enable: 1
SL_for_admin: 1
recent_age: 1
grants_download: 0
photos_wraparound: 1
map_display: 1
zip64: 1
map_display_public: 1
map_provider: Wikimedia
force_32bit_ids: 0
map_include_subalbums: 1
update_check_every_days: 3
has_exiftool: 1
share_button_visible: 1
has_ffmpeg: 1
import_via_symlink: 0
location_decoding: 1
location_decoding_timeout: 30
location_show: 1
location_show_public: 1
rss_enable: 0
rss_recent_days: 7
rss_max_items: 100
prefer_available_xmp_metadata: 0
editor_enabled: 1
lossless_optimization: 0
swipe_tolerance_x: 150
swipe_tolerance_y: 250
local_takestamp_video_formats: .avi|.mov
log_max_num_line: 1000
unlock_password_photos_with_url_param: 0
nsfw_visible: 1
nsfw_blur: 0
nsfw_warning: 0
nsfw_warning_admin: 0
nsfw_banner_override:
map_display_direction: 1
album_subtitle_type: oldstyle
upload_processing_limit: 4
new_photos_notification: 0
legacy_id_redirection: 1
zip_deflate_level: 6
default_album_protection: 1
album_decoration: layers
album_decoration_orientation: row
allow_username_change: 1
auto_fix_orientation: 1
use_job_queues: 0
random_album_id: starred
use_last_modified_date_when_no_exif_date: 0
layout: square
date_format_photo_thumb: M j, Y, g:i:s A e
date_format_photo_overlay: M j, Y, g:i:s A e
date_format_sidebar_uploaded: M j, Y, g:i:s A e
date_format_sidebar_taken_at: M j, Y, g:i:s A e
date_format_hero_min_max: F Y
date_format_hero_created_at: M j, Y, g:i:s A T
date_format_album_thumb: M Y
upload_chunk_size: 0
nsfw_banner_blur_backdrop: 0
search_pagination_limit: 1000
search_minimum_length_required: 4
photo_layout_justified_row_height: 320
photo_layout_masonry_column_width: 300
photo_layout_grid_column_width: 250
photo_layout_square_column_width: 200
photo_layout_gap: 12
display_thumb_album_overlay: always
display_thumb_photo_overlay: hover
default_album_thumb_aspect_ratio: 1/1
use_album_compact_header: 0
login_button_position: left
back_button_enabled: 0
back_button_text: Return to Home
current_job_processing_visible: 1
SA_random_thumbs: 0
job_processing_queue_visible: 1
login_required: 0
enable_unsorted: 1
enable_starred: 1
enable_recent: 1
enable_on_this_day: 1
login_required_root_only: 1
dark_mode_enabled: 1
show_keybinding_help_popup: 1
show_keybinding_help_button: 1
disable_se_call_for_actions: 0
enable_se_preview: 1
slideshow_timeout: 5
Thanks @opravil-jan .
I feel that something is going wrong here: https://github.com/LycheeOrg/Lychee-Docker/blob/master/entrypoint.sh#L150
Import from Link
Add a simple validation check for the link
Remove Menu Link Dropbox when it is not configured
Instead of this warning
Remove Import from server
Add this info to the help page
New Album Dialog
Only "Title" is clearer for me
Yeah I need to redo a lot of the translations. :(
After create the album
Add a button Upload picture
After create the album
Add a button Upload picture
Good idea ! :open_mouth:
"Upload track"
what should the button say at first glance I do not recognize what exactly the meaning of this button is
On my docker test with chrome on windows 10 i can not drag a image to this area
"Upload track"
what should the button say at first glance I do not recognize what exactly the meaning of this button is
If you have gps data, you can upload a track xml data and that one will be displayed on the map in addition to the pictures.
"Upload track"
what should the button say at first glance I do not recognize what exactly the meaning of this button is
If you have gps data, you can upload a track xml data and that one will be displayed on the map in addition to the pictures.
this is probably not a likely function for a standard user. I would direct this to a separate dialog where it is better described.
The upload dialog should also have a global process display if many photos are uploaded you lose track of how much has already been processed. After uploading and closing the dialog, the page is not updated. The button could also change with please wait or cancel upload.
If only one album available the move button hangs
Add a title after 3s on the icon to describe the function of the button. The circle arrow do nothing on my tests
On diashow the top buttons are visible but not usable
The upload dialog should also have a global process display if many photos are uploaded you lose track of how much has already been processed. After uploading and closing the dialog, the page is not updated. The button could also change with please wait or cancel upload.
Already have an updated version.
On diashow the top buttons are visible but not usable
Interesting, they are not supposed to be visible :')
The edit Photo dialog has no consistent design, some inputs have a frame, others do not. some are round, others square
Show the red area only if not public. The different colors do not clearly indicate that I cannot change anything now
Move albums hang on only one album available
I would find it clearer if the tab logic comes to the bottom and there are 2 buttons that then open a dialog



The upload dialog should also have a global process display if many photos are uploaded you lose track of how much has already been processed. After uploading and closing the dialog, the page is not updated. The button could also change with please wait or cancel upload.
On diashow the top buttons are visible but not usable