LycheeOrg / Lychee

A great looking and easy-to-use photo-management-system you can run on your server, to manage and share photos.
https://lycheeorg.github.io/
MIT License
3.35k stars 299 forks source link

[Enhancement] Re-introduce the ability to host lychee in a subfolder of a domain #2137

Closed Gendra13 closed 9 months ago

Gendra13 commented 9 months ago

Hello I have been hosting v4 of Lychee on a subfolder of my domain (e.g. https://mydomin.org/lychee/).

However, after upgrading to Lychee v5 and enabling the new frontend, this is not longer working correctly and the subfolder seems to be ignored in some paths (mydomin.org/livewire/ instead of mydomin.org/lychee/livewire/). After digging through other bug reports like #2120 I found that this type of configuration is not supported any more by the new front-end.

Therefore, I wanted to make a request to reintroduce the possibility to host Lychee v5 in a subfolder.

Also, I think it would be nice to mention this new behavoir somewhere in the changelog, because for anyone using a setup like me, this is results in a breaking change.

Gendra13 commented 9 months ago

Hello

I followed the linked PR and I have been testing it on my own setup.

However, currently I am experiencing some weird problems with some albums loading while others are not when accessing the images via sym-links (= without beeing logged in). I will try to investigate it a little bit further with the Lychee.zip uploaded in https://github.com/LycheeOrg/Lychee/pull/2150#issuecomment-1879660173 and will report back.

Gendra13 commented 9 months ago

Hmm, the problem still exists with the latest version posted in #2150, however I was not able to reproduce it on newly created albums or with newly uploaded images into a "broken album", so this may only affect (some of the) images uploaded before the changes between v5.0.2 and #2150 .

Nevertheless, I thought I still add a report, maybe this rings a bell where the problem could be otherwise it's up to you, if you want to invest the time of troubleshooting. (I personally would be ok with re-uploading the "broken" images.)


While testing the changes in #2150 some of the images are not loading when accessing them without being logged in. Note that I tested both with Lychee hosted on a subdomain (lychee.mydomain.de) as well as on a subpath (www.mydomain.de/lychee/) and the problem is the same in both variants (otherwise the new subpath option is working fine btw)

Detailed description of the problem [REQUIRED]

When I am logged in, everything is working fine and I can see all the images and albums. However when I am accessing a public albums without being logged in, some of the albums are working fine while others are not. (Here I am showing a sub-album thats broken, but the same happens for top-level albums)

Example When I'm logged in I see:

working1

Without being logged in: notworking1

When I open the "broken" album Test1 all the images are missing: notworking2

However, when I look at the path of the images that are working, they looks similar to those which are not working: An image from album Test2 which is working is located at: https://lychee.mydomain.de/sym/e60dd4aa80980d9a26933e32c0ea602bca10c00d624a150d152153d6cdd5c1f5.jpg and a broken image from album Test1 is located at: https://lychee.mydomain.de/sym/4e54afa753eb88ec0c63b0e6343947d6770884c32a6268c66e0478a8c1b63792.jpg

Even stranger, when I look up the IDs in the MySQL Database both of the seem to be correct (the working one) grafik as well as the broken one grafik

And when I look up the "true" path of the broken image grafik and try it manually, it works!

As stated above, when I created a few new albums and uploaded new images, the bug didn't showed up. Even when I add new images to the "broken" album Test1 then the new images are working fine.

So maybe there has been a change on how the symbolic urls are created (maybe during #2169)? Or is there a possibility to delete all symbolic urls and recreate new ones?

Output of the diagnostics [REQUIRED]

Diagnostics
-----------
    Warning: /var/www/html/lychee/public/sym/ has permissions 0755, but should have 2775
    Warning: Dropbox import not working. dropbox_key is empty.
    Info: Latest version of PHP is 8.3
    Warning: Default timezone not properly set; you might experience strange results when importing photos without explicit EXIF timezone

System Information
------------------
    Lychee Version (release):                5.0.2
    DB Version:                              5.0.2

    composer install:                        --no-dev
    APP_ENV:                                 production
    APP_DEBUG:                               false
    APP_URL:                                 set
    APP_DIR:                                 default
    LOG_VIEWER_ENABLED:                      true
    LIVEWIRE_ENABLED:                        true

    System:                                  Linux
    PHP Version:                             8.2.14
    PHP User agent:                          Lychee/4 (https://lycheeorg.github.io/)
    Timezone:                                UTC
    Max uploaded file size:                  1024M
    Max post size:                           1024M
    Livewire chunk size:                     12.00 MB
    Max execution time:                      300
    MySQL Version:                           10.6.12-MariaDB-0ubuntu0.22.04.1

    exec() Available:                        yes
    Imagick Available:                       1
    Imagick Enabled:                         1
    Imagick Version:                         1691
    GD Version:                              2.3.3
    Number of foreign key:                   11 found.

Config Information
------------------
    version:                                 050002
    check_for_updates:                       1
    sorting_photos_col:                      taken_at
    sorting_photos_order:                    ASC
    sorting_albums_col:                      max_taken_at
    sorting_albums_order:                    ASC
    imagick:                                 1
    skip_duplicates:                         1
    small_max_width:                         0
    small_max_height:                        360
    medium_max_width:                        1920
    medium_max_height:                       1080
    lang:                                    en
    image_overlay_type:                      none
    default_license:                         reserved
    compression_quality:                     90
    grants_full_photo_access:                1
    delete_imported:                         0
    mod_frame_enabled:                       0
    mod_frame_refresh:                       30
    thumb_2x:                                1
    small_2x:                                1
    medium_2x:                               1
    landing_page_enable:                     0
    site_owner:                              John Smith
    landing_title:                           John Smith
    landing_subtitle:                        Cats, Dogs & Humans Photography
    sm_facebook_url:                         https://www.facebook.com/JohnSmith
    sm_flickr_url:                           https://www.flickr.com/JohnSmith
    sm_twitter_url:                          https://www.twitter.com/JohnSmith
    sm_instagram_url:                        https://instagram.com/JohnSmith
    sm_youtube_url:                          https://www.youtube.com/JohnSmith
    landing_background:                      dist/cat.webp
    site_title:                              Lychee v5
    footer_show_copyright:                   1
    site_copyright_begin:                    2019
    site_copyright_end:                      2019
    footer_additional_text:                  
    footer_show_social_media:                0
    search_public:                           0
    SL_enable:                               1
    SL_for_admin:                            0
    recent_age:                              1
    grants_download:                         0
    photos_wraparound:                       1
    map_display:                             1
    zip64:                                   1
    map_display_public:                      1
    map_provider:                            OpenStreetMap.de
    force_32bit_ids:                         0
    map_include_subalbums:                   1
    update_check_every_days:                 3
    has_exiftool:                            0
    share_button_visible:                    0
    import_via_symlink:                      0
    has_ffmpeg:                              0
    location_decoding:                       1
    location_decoding_timeout:               30
    location_show:                           1
    location_show_public:                    0
    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
    SA_enabled:                              1
    default_album_protection:                1
    album_decoration:                        none
    album_decoration_orientation:            row
    allow_username_change:                   1
    auto_fix_orientation:                    1
    use_job_queues:                          1
    random_album_id:                         starred
    use_last_modified_date_when_no_exif_date: 0
    ffmpeg_path:                             
    ffprobe_path:                            
    layout:                                  justified
    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 Y
    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

Browser and system

Ubuntu 22.04 LTS and Firefox