Lychee 7.8.3: гайд от гика, самостоятельная фотогалерея для своего сервера
Lychee — свободная self-hosted система управления фотографиями от сообщества LycheeOrg. Она устанавливается на собственный сервер, NAS или веб-хостинг и превращает браузер в интерфейс для загрузки, каталогизации, просмотра и публикации фотоальбомов. В отличие от облачной фототеки с чужим хранилищем, здесь владелец сам выбирает сервер, базу данных, домен и правила доступа. На 4 сентября 2026 года актуальный стабильный релиз проекта — 7.8.3, выпущенный 1 сентября. Этот обзор относится именно к LycheeOrg/Lychee и не имеет отношения к Lychee Slicer — одноимённой программе для подготовки моделей к 3D-печати.
Что такое Lychee и для каких задач он нужен
Lychee относится к классу серверных фотогалерей и менеджеров медиатеки. Приложение хранит библиотеку на инфраструктуре владельца и отдаёт веб-интерфейс через обычный браузер. Основной сценарий — собрать фотографии и поддерживаемые видеоролики в альбомы, добавить метаданные и теги, настроить доступ, а затем открыть галерею с компьютера, телефона или планшета без установки отдельного настольного клиента.
Проект поддерживается организацией LycheeOrg. История современной ветки связана с исходным Lychee Тобиаса Райха: в 2018 году разработка была передана организации, а нынешний репозиторий и документация выпускаются уже под LycheeOrg. Код основной редакции распространяется по лицензии MIT. Бесплатная версия не ограничивает число пользователей, альбомов, тегов или загружаемых фотографий искусственными тарифными квотами; фактический предел задают дисковое пространство, база данных, настройки PHP, веб-сервера и ресурсы машины.
По назначению Lychee ближе к персональному фотоархиву, семейной галерее, портфолио и закрытому медиакаталогу, чем к графическому редактору. Приложение умеет сохранять оригиналы, создавать варианты изображений для просмотра, читать EXIF, использовать GPS-координаты, сортировать и оценивать снимки, но не заменяет редактор с ретушью, слоями и локальной коррекцией. Для такой обработки на GeekHow есть отдельный материал про фоторедакторы для компьютера; Lychee логичнее ставить после этапа обработки, когда требуется долговременная организация и публикация готовой медиатеки.
Основные параметры
| Параметр | Состояние в актуальной стабильной ветке |
|---|---|
| Официальное название | Lychee |
| Разработчик и поддержка | LycheeOrg, открытая разработка на GitHub |
| Актуальный стабильный релиз | 7.8.3 от 1 сентября 2026 года |
| Тип | Self-hosted веб-приложение для управления фотографиями и видео |
| Лицензия Free | MIT, исходный код открыт |
| Способ работы | Серверная установка; пользователь работает через современный браузер |
| Рекомендуемая установка | Docker Compose с официальным образом ghcr.io/lycheeorg/lychee |
| Ручная установка | PHP 8.4 или новее, веб-сервер и поддерживаемая база данных |
| Базы данных | MySQL/MariaDB, PostgreSQL или SQLite; Microsoft SQL официально не поддерживается |
| Изображения | JPG/JPEG, PNG, GIF, WebP |
| Видео | OGV, MP4, MPG, WebM, MOV, M4V, AVI, WMV |
| Импорт | Загрузка из браузера, перетаскивание, папки, серверный импорт через CLI; также предусмотрены импорт по URL и Dropbox |
| Экспорт и выдача | Скачивание оригиналов, выбранных файлов и ZIP-архива альбома; публичные и приватные ссылки |
| Многопользовательский режим | Да, с правами на альбомы, регистрацией/приглашениями, WebAuthn и OAuth |
| Интерфейс | Многоязычный; базовый язык — английский, переводы ведутся сообществом |
| Бесплатная редакция | Без искусственного лимита на пользователей, альбомы, теги и фотографии |
| Supporter Edition | 5 евро в месяц; добавляет административные, публикационные и оформительские возможности |
| Пробный период Supporter Edition | Не предусмотрен; перед оплатой предлагается использовать Free |
| Интернет | Для локальной работы ядру достаточно собственной сети; удалённый доступ и внешние интеграции требуют сетевого соединения |
Lychee не является SaaS-сервисом с обязательной регистрацией у поставщика для базовой работы. Администратор разворачивает собственный экземпляр и при первом открытии создаёт учётную запись администратора. Эта архитектура даёт контроль над местом хранения, но одновременно переносит на владельца ответственность за HTTPS, обновления, резервирование, права файловой системы и доступность сервера.
Платформы, установка и текущий статус
Пользовательская часть Lychee работает в браузере, поэтому галерея открывается на Windows, macOS, Linux, Android и iOS при наличии совместимого веб-браузера. Сам сервер чаще разворачивают на Linux, NAS или другой системе, где доступен Docker. Docker Compose — основной рекомендуемый путь установки. Начиная с ветки 7 официальный Docker-образ использует FrankenPHP и Laravel Octane вместо прежней связки nginx с PHP-FPM; legacy-вариант помечен устаревшим.
Ручная установка остаётся поддерживаемым вариантом. Для неё требуется PHP 8.4 или новее и база MySQL новее 5.7.8, MariaDB новее 10.2, PostgreSQL новее 9.2 либо SQLite 3. Среди обязательных PHP-расширений перечислены bcmath, ctype, DOM, EXIF, fileinfo, GD, mbstring, OpenSSL, PDO, SimpleXML, tokenizer, XML и XMLWriter. ImageMagick подключается дополнительно для более качественной генерации миниатюр, ExifTool расширяет извлечение метаданных, а FFmpeg нужен для создания превью видео. 64-битная операционная система настоятельно рекомендуется.
При ручном размещении критичны права записи для storage, bootstrap/cache, public/uploads и public/sym. Файл .env содержит параметры базы и секреты приложения; веб-сервер должен публиковать каталог public, а не корень проекта. Для экземпляра, доступного через интернет, нужен TLS. Эти требования важнее внешнего оформления галереи: ошибка в корне сайта или правах может открыть чувствительный конфигурационный файл либо лишить приложение возможности сохранять медиа.
Проект активен. В релизе 7.8.3 появились исправления, связанные с повторной отправкой чанков при загрузке, защитой регистрации от утечки сведений об адресах и запретом редактирования ещё не валидированных изображений. После выпуска 7.8.3 ветка master продолжила получать изменения. В конфигурации уже присутствует переключатель V8_ENABLED для функций следующего поколения, но этот режим остаётся экспериментальным и не предназначен для обычной эксплуатации. Поэтому распознавание лиц и другие пункты, отмеченные как будущие для v8, в данном обзоре не считаются возможностями стабильной 7.8.3.
Как устроен интерфейс
Главный объект интерфейса — библиотека альбомов. Альбомы допускают вложенность, поэтому каталог можно строить по годам, поездкам, людям, событиям или проектам. Для больших коллекций важна именно иерархия: один снимок можно переносить и копировать между альбомами, а отдельные Tag Albums формируются динамически по тегам и обновляются вместе с изменением разметки.
На верхней панели собраны действия создания и загрузки. В текущем рабочем интерфейсе кнопка с символом + и команда New Album создают альбом, а Upload в верхней панели и перетаскивание файлов отвечают за загрузку. При включённом folder_upload_enabled папку можно перетащить на страницу Albums: Lychee создаёт альбом и повторяет структуру подпапок вложенными альбомами в пределах настроенной глубины.
Внутри альбома медиаматериалы показываются сеткой. Для альбомов доступны раскладки Justified, Masonry и Square, собственная обложка, заголовочная область, сортировка и настройка миниатюр. Timeline группирует содержимое по времени, а полноэкранный просмотр и Slideshow ориентированы уже на последовательное потребление библиотеки, а не на её администрирование.
Карточка фотографии связывает файл с метаданными: названием, описанием, датой, тегами, оценкой и данными EXIF. GPS-координаты могут отображаться на карте. Оригинал при загрузке сохраняется; отдельно создаются оптимизированные варианты для интерфейса. Это принципиальное отличие от сервисов, где загруженный файл безвозвратно заменяется уменьшенной копией.
Административная часть управляет пользователями, регистрацией, языком, поведением альбомов, параметрами загрузки и серверными возможностями. Значительная часть системной конфигурации живёт в .env, а не только в браузере. Для Docker-установки изменения переменных окружения требуют перезапуска контейнера, потому что параметры кэшируются при старте.
Альбомы, организация библиотеки и поиск
Lychee позволяет создавать неограниченное число альбомов и вкладывать их друг в друга. У каждого альбома есть собственные параметры отображения и доступа. Такой подход подходит и для простой схемы «год → событие», и для более длинного дерева, где верхний уровень используется как раздел, а нижние уровни — как конкретные съёмки.
Теги работают поперёк структуры альбомов. Их можно переименовывать, объединять и удалять через отдельное управление тегами; массовое редактирование позволяет добавлять теги к выборке или заменять существующий набор. Tag Album использует логическое сочетание тегов AND или OR и автоматически отражает изменения библиотеки. Это полезно, когда физическая структура альбомов строится по событиям, а дополнительная витрина должна собирать, например, все кадры определённой темы вне зависимости от исходной папки.
Поиск охватывает доступную текущему пользователю библиотеку и учитывает названия и описания фотографий, имена альбомов и теги. Публичный поиск включается администратором отдельно. Разграничение важно для закрытых архивов: публичной части сайта не нужно раскрывать возможность искать по внутренней библиотеке только потому, что сама функция поиска включена для авторизованных пользователей.
Оценка фотографий по шкале от одной до пяти звёзд помогает отделить отбор от структуры хранения. Альбом отвечает на вопрос, где лежит материал, теги — что на нём и к какой теме он относится, а рейтинг — насколько кадр важен в рамках отбора. Эти механизмы дополняют друг друга и уменьшают потребность плодить множество почти одинаковых альбомов.
Загрузка, импорт и работа с исходниками
Для обычной загрузки Lychee принимает фотографии через браузер: файлы можно выбрать через Upload или перетащить в окно. Поддерживается chunk upload, то есть крупный файл передаётся частями. Это снижает зависимость процесса от единственного большого HTTP-обращения и помогает работать в пределах серверных ограничений, хотя максимальный размер всё равно определяется конфигурацией PHP, веб-сервера и приложения.
Папочная загрузка строит альбомную структуру из каталогов. Для переноса уже существующей медиатеки на сервере есть консольная синхронизация php artisan lychee:sync /path/to/import. Она полезна для массивов, которые уже лежат на диске сервера и не должны повторно проходить через браузер. Такой сценарий тесно связан с правами Linux: процесс веб-приложения и консольный пользователь должны иметь корректный доступ к нужным каталогам. Базовые принципы подробно разобраны в материале GeekHow про права на файлы и каталоги Linux.
Кроме локального компьютера и серверной файловой системы, Lychee предусматривает импорт по URL и интеграцию с Dropbox. Импорт по URL можно отключить настройкой безопасности, а Dropbox требует собственных API-учётных данных. Для закрытого экземпляра эти каналы не обязательно держать включёнными: минимальный набор внешних входов уменьшает поверхность, которую приходится администрировать.
После приёма изображения Lychee сохраняет оригинал и генерирует варианты для показа. Автоматическая ориентация использует EXIF, метаданные декодируются, GPS можно показать на карте. Для видео воспроизведение зависит не только от расширения, но и от кодеков, поддерживаемых браузером; FFmpeg на сервере используется для превью. Поэтому расширение MP4 само по себе не гарантирует одинаковое воспроизведение на каждом клиентском устройстве.
Публикация, доступ и многопользовательская работа
У альбома есть несколько уровней доступности. Он остаётся приватным, открывается выбранным зарегистрированным пользователям или публикуется по ссылке. Для публичного альбома можно задать пароль, разрешить либо запретить скачивание и решить, показывать ли его в общей публичной галерее. Отдельный режим скрытой публикации позволяет передать ссылку, не выставляя альбом в публичный каталог.
Для зарегистрированных пользователей права задаются точнее: альбом можно передать только на чтение либо дать полный доступ. Это отделяет просмотр от совместного наполнения. При работе с несколькими авторами полезно заранее определить, кто создаёт структуру, кто загружает материал и кто только просматривает отбор, иначе общая библиотека быстро теряет единообразие.
Lychee поддерживает собственные учётные записи, WebAuthn и OAuth. Саморегистрация по умолчанию отключена, но администратор может её включить; также предусмотрены пригласительные ссылки. Для пользователей настраиваются уровни доверия, влияющие на возможности загрузки и взаимодействия с библиотекой. Supporter Edition расширяет административную часть группами пользователей, квотами хранения, несколькими администраторами и заметками администратора.
Публичные альбомы можно встраивать на другие страницы. Для чувствительного содержимого предусмотрена отметка sensitive: она добавляет дополнительное подтверждение перед просмотром и исключает такой материал из некоторых публичных представлений и превью. Это не заменяет закрытый доступ. Когда изображение вообще не предназначено для посторонних, надёжнее оставить альбом приватным и выдать права конкретным аккаунтам.
Supporter Edition добавляет защищённые ссылки на изображения, водяные знаки и анонимную загрузку. Эти функции нужны не каждому домашнему архиву: обычная Free уже умеет публиковать альбомы, ставить пароль, ограничивать скачивание и раздавать права зарегистрированным пользователям. Платная редакция скорее расширяет контроль администратора и оформление публичной выдачи, чем открывает базовую работу с фототекой.
Метаданные, карта, слайд-шоу и автоматизация
Lychee читает EXIF и использует эти сведения не только как справочный блок. Ориентация снимка учитывается автоматически, дата помогает хронологической организации, GPS-координаты связываются с картой. ExifTool не обязателен для запуска, но рекомендуется для более полного извлечения метаданных. Когда исходный файл уже очищен от EXIF другим приложением, Lychee не восстанавливает удалённые данные из ничего: в библиотеке останутся только сведения, которые действительно присутствуют в файле или введены пользователем.
Карта строится на координатах фотографий. Для обратного геокодирования может использоваться внешний Nominatim, у которого есть ограничения частоты обращений. Это пример функции, где self-hosted архитектура не означает полную изоляцию от внешней инфраструктуры: сами файлы остаются на сервере владельца, но включённая геокодировка обращается к отдельному сетевому сервису. В закрытом контуре такой компонент следует учитывать при проектировании приватности.
Timeline даёт альтернативный взгляд на медиатеку через время съёмки. Slideshow последовательно показывает фотографии с настраиваемым интервалом. Полноэкранный режим скрывает лишние элементы управления и подходит для демонстрации подборки. Эти режимы используют уже организованные данные и не меняют структуру хранения.
Серверные очереди и worker-процессы отделяют тяжёлые фоновые операции от ответа браузеру. Полная Docker Compose-конфигурация использует workers, чтобы фоновые операции меньше конкурировали с интерактивными ответами. Это не пакетный фоторедактор и не система автоматической ретуши: автоматизация Lychee относится к приёму файлов, генерации вариантов, извлечению метаданных, синхронизации и обслуживанию медиатеки.
В стабильной 7.8.3 не следует рассчитывать на распознавание лиц как на готовую штатную возможность. Распознавание лиц относится к будущей v8, а экспериментальный переключатель V8_ENABLED не предназначен для обычной эксплуатации стабильной ветки. Для библиотеки, где поиск по людям и автоматическая семантическая классификация являются центральным требованием уже сейчас, практичнее рассматривать альтернативы с завершённой реализацией этих функций.
Задача → инструмент → результат → что проверить
| Задача | Инструмент Lychee | Результат | Контроль |
|---|---|---|---|
| Разложить архив по событиям | Вложенные Albums | Иерархия разделов и съёмок | Нет ли дублирующих веток и слишком глубокой структуры |
| Собрать фотографии одной темы из разных съёмок | Tags и Tag Albums | Динамическая подборка без физического перемещения файлов | Правильно ли выбрана логика AND/OR |
| Загрузить большой набор с диска сервера | php artisan lychee:sync | Импорт существующей файловой структуры | Права каталогов, число импортированных элементов и метаданные |
| Передать подборку без аккаунта | Публичный альбом | Ссылка на веб-галерею | Пароль, разрешение скачивания и видимость в публичном каталоге |
| Дать коллегам доступ к закрытому материалу | Пользователи и права альбома | Чтение или совместное редактирование по аккаунтам | У каждого пользователя только необходимые права |
| Показать снимки на карте | GPS и Map | Географическое представление медиатеки | В исходниках действительно есть координаты и они корректны |
| Отделить лучшие кадры | Рейтинг 1–5 | Оценка внутри библиотеки без создания новых копий | Единая шкала оценки для всех участников |
| Передать исходники архивом | Download и ZIP альбома | Оригиналы вне веб-интерфейса | Архив открывается и содержит ожидаемый набор файлов |
Эта карта показывает границу продукта: Lychee хорошо работает там, где действие заканчивается организацией, доступом или выдачей файла. Коррекция экспозиции, сложное кадрирование, удаление объектов и работа со слоями должны выполняться до помещения финального материала в библиотеку либо в отдельном редакторе.
Карта форматов и совместимости
| Тип | Поддержка | Редактируемость внутри Lychee | Что сохраняется | Практическое ограничение |
|---|---|---|---|---|
| JPG/JPEG | Да | Метаданные библиотеки, теги, рейтинг, описание; не пиксельная ретушь | Оригинал и производные варианты для показа | Качество исходника определяется файлом до загрузки |
| PNG | Да | Организация и описание | Оригинал | Большие PNG занимают заметно больше места, чем типичные JPEG |
| GIF | Да | Организация | Оригинальный файл | Поведение анимации зависит от клиентского отображения |
| WebP | Да | Организация | Оригинальный файл | Для старых внешних клиентов совместимость следует оценивать отдельно |
| MP4, MOV, M4V, OGV, MPG, WebM, AVI, WMV | Да как видеоформаты | Каталогизация и просмотр при поддержке браузером | Видео в библиотеке | Контейнер не гарантирует поддержку конкретного внутреннего кодека браузером |
| RAW | Не входит в штатный список поддерживаемых форматов 7.8.3 | Нет штатного RAW-проявления | Для рабочего процесса нужен предварительно подготовленный поддерживаемый формат | Фотографам с RAW-архивом нужен отдельный конвертер или иной DAM |
| HEIC/HEIF | Не входит в текущий список поддерживаемых форматов Photos | Нет штатного проявления | Практичный путь — заранее экспортировать совместимую копию | Особенно важно для архивов с современных смартфонов |
Штатный список форматов Lychee уже, чем у некоторых систем цифрового архива. Это снижает двусмысленность: для стабильной 7.8.3 можно опираться на явно перечисленные JPG/JPEG, PNG, GIF и WebP, а не считать любой файл, который однажды удалось положить на сервер, официально поддерживаемым. Для фотографий с iPhone, где исходный рабочий процесс часто связан с HEIC, полезно заранее определить формат долговременной библиотеки; общие приёмы мобильной съёмки собраны в материале GeekHow о том, как лучше фотографировать на iPhone.
Матрица сохранности результата
| Действие | Что сохраняется | Что меняется или теряется | Обратимость | Открытие вне Lychee |
|---|---|---|---|---|
| Загрузка поддерживаемого изображения | Оригинальный файл | Дополнительно создаются производные варианты | Да, оригинал доступен для скачивания | Оригинал открывается обычными совместимыми программами |
| Добавление тегов и рейтинга | Файл и его запись в библиотеке | Меняются данные каталога Lychee | Да, метки и оценку можно изменить | Каталожные данные не следует считать заменой внешнему универсальному архивному формату |
| Перемещение между альбомами | Сам медиаматериал | Меняется его положение в логической структуре | Да, объект можно перенести снова | Скачанный оригинал не несёт структуру альбомов Lychee |
| Публичная публикация альбома | Файлы остаются на сервере | Меняется доступность через веб | Да, альбом можно вернуть в приватный режим | Ссылка зависит от работающего экземпляра Lychee и его домена |
| Скачивание оригинала | Полная копия исходного файла | Внешняя копия не получает всю структуру прав и альбомов | Да, исходник остаётся в библиотеке до отдельного удаления | Да, при наличии программы для соответствующего формата |
| ZIP-скачивание альбома | Набор оригиналов альбома | Веб-оформление, пользователи и часть каталожной логики не переносятся | Архив создаёт переносимую копию, но не клон экземпляра | Да, после распаковки |
| Удаление фотографии | Не является способом архивирования | Объект удаляется из библиотеки | Не следует рассчитывать на удаление как на обратимую операцию | Сохранится только заранее сделанная внешняя копия |
Матрица подчёркивает важное различие между сохранностью файла и сохранностью каталога. Оригиналы удобно выгружать наружу, но иерархия альбомов, права пользователей, Tag Albums и серверная конфигурация являются частью самого экземпляра. Поэтому независимая копия медиаданных защищает фотографии, а полноценная стратегия сохранности сервиса дополнительно учитывает базу данных, конфигурацию и постоянные Docker-тома.
При случайной потере единственной копии на внешнем носителе уже требуется отдельный класс инструментов. На GeekHow разобраны способы восстановления фото и видео с флешки. Для Lychee правильнее не доводить ситуацию до восстановления: self-hosted размещение не создаёт резервную копию автоматически только потому, что файлы доступны через красивую веб-галерею.
Цена, редакции и ограничения бесплатного режима
Lychee Free стоит 0 евро и остаётся открытым приложением под MIT. В бесплатной редакции доступны неограниченные пользователи, альбомы, теги и загрузка фотографий, базовая организация, публикация, права доступа, поиск, карта, рейтинг, загрузка оригиналов и другие основные функции галереи. Сервер, домен, хранилище и администрирование оплачиваются владельцем отдельно, когда для них используется коммерческая инфраструктура.
Supporter Edition стоит 5 евро в месяц. Она сохраняет открытую лицензию и добавляет статистику библиотеки, группы и квоты пользователей, анонимную загрузку, защищённые ссылки на изображения, водяные знаки и расширенное оформление. Персональный лицензионный код Supporter Edition разрешено применять на неограниченном числе собственных экземпляров Lychee.
Отдельного пробного периода для Supporter Edition нет, возврат платежа для неё не предусмотрен. Логика выбора поэтому простая: функциональность основного продукта оценивается на Free, а подписка имеет смысл только после появления конкретной потребности в функциях платной редакции.
Lychee Pro строится поверх Supporter Edition и ориентирован на профессиональные сценарии с продажей фотографий через веб-магазин. У него нет универсальной публичной фиксированной цены в сравнительной таблице; условия зависят от внедрения. Для домашнего архива этот уровень не является необходимой ступенью.
Стоимость владения Free не равна нулю в инфраструктурном смысле. Дисковое пространство растёт вместе с оригиналами и производными вариантами, внешнему домену нужен HTTPS, сервер требует обновлений, а резервные копии занимают отдельное место. На домашнем NAS эти расходы выражаются ресурсами уже купленного оборудования; на VPS — тарифом провайдера и объёмом диска. Lychee не скрывает эти расходы внутри подписки, потому что сам не продаёт пользователю хостинг базовой Free.
Как пользоваться программой — советы гика
Ниже собраны рабочие последовательности для стабильной Lychee 7.8.3. Все действия с публикацией лучше начинать на приватном тестовом альбоме: так параметры доступа, скачивания и отображения проверяются до того, как ссылка уйдёт другим людям. Для серверных настроек отдельно сохраняйте рабочие значения .env и конфигурации контейнеров перед изменением.
Настройки после установки
Цель. Привести новый экземпляр к предсказуемому состоянию до импорта основной библиотеки.
Подготовка. Нужны административная учётная запись, корректный APP_URL, HTTPS для внешнего экземпляра и доступ к серверной конфигурации. При Docker настройки окружения меняются в compose/.env, а не только в веб-интерфейсе.
- Откройте Lychee после установки и создайте первую учётную запись администратора.
- Перейдите в Settings и задайте язык интерфейса через параметр lang. Базовое значение — en; для переведённого интерфейса выберите доступную локализацию и оцените полноту нужных разделов.
- Проверьте default_album_protection. Для личного архива безопасная исходная позиция — приватные новые альбомы, чтобы публикация оставалась осознанным отдельным действием.
- Решите, нужен ли folder upload. Параметр folder_upload_enabled управляет загрузкой каталогов с автоматическим созданием вложенных альбомов.
- Оставьте саморегистрацию выключенной, когда новые аккаунты создаёт только администратор. Включайте её только для сценария, где она действительно нужна.
- На сервере убедитесь, что APP_ENV установлен в production, APP_DEBUG выключен, APP_URL соответствует внешнему адресу, а HTTPS и trusted proxies настроены в соответствии с вашей схемой обратного прокси.
- Для Docker после изменения переменных окружения перезапустите контейнер Lychee, чтобы кэшированная конфигурация перечиталась.
Важные параметры. APP_URL влияет на формирование адресов, APP_FORCE_HTTPS принудительно использует HTTPS, default_album_protection задаёт исходную видимость новых альбомов, folder_upload_enabled разрешает папочную загрузку. Экспериментальный V8_ENABLED для обычного экземпляра стабильной ветки оставляют выключенным.
Проверка. Создайте пустой тестовый альбом и убедитесь, что его видимость соответствует заданной политике, интерфейс открывается по правильному HTTPS-адресу, а после перезапуска Docker настройки не возвращаются к прежним значениям.
Типичная ошибка. Изменить .env работающего контейнера и ожидать немедленного эффекта. Переменные читаются при старте и кэшируются.
Безопасный откат. Верните сохранённые рабочие значения .env или compose-файла и перезапустите контейнер. Не включайте APP_DEBUG на публичном экземпляре как постоянный способ диагностики.
Создание структуры альбомов
Цель. Построить иерархию, в которой дальнейшая загрузка не потребует постоянного перемещения файлов.
Подготовка. Определите один устойчивый принцип верхнего уровня: годы, проекты, клиенты или крупные события. Для тематических пересечений оставьте теги, а не вторую параллельную структуру каталогов.
- На странице Albums нажмите + в верхней панели.
- Выберите New Album.
- Введите название, которое однозначно отличает альбом от соседних.
- Для вложенной структуры создайте дочерние альбомы внутри выбранного родительского раздела.
- Откройте параметры конкретного альбома и задайте нужную раскладку: Justified, Masonry или Square.
- При необходимости назначьте обложку, порядок сортировки и отображение заголовочной части.
Важные параметры. Структура альбомов отвечает за навигацию, а Tag Albums — за динамические тематические выборки. Не используйте два механизма для одной и той же задачи.
Проверка. Вернитесь на уровень выше и пройдите дерево от корневого раздела до целевой съёмки. Пользователь должен понимать путь без открытия каждого альбома.
Типичная ошибка. Создавать отдельный альбом для каждой характеристики кадра — например, одновременно по поездке, человеку и цветовой теме. Это порождает дублирование структуры.
Безопасный откат. Перенесите фотографии в более устойчивую иерархию, а дополнительные признаки вынесите в теги; исходные файлы при логической реорганизации не нужно пересохранять.
Загрузка файлов и папок через браузер
Цель. Добавить готовые изображения и видео в выбранный альбом, сохранив оригиналы.
Подготовка. Для фотографий используйте JPG/JPEG, PNG, GIF или WebP; для видео — один из штатно поддерживаемых контейнеров. Перед большой передачей проверьте свободное место и серверные лимиты размера.
- Откройте альбом, куда должен попасть материал.
- Нажмите Upload в верхней панели и выберите файлы либо перетащите их в окно браузера.
- Не закрывайте страницу до завершения передачи. Для крупных файлов Lychee использует chunk upload.
- Для переноса готовой папочной структуры откройте Albums и перетащите каталог на страницу. Этот способ работает при включённом folder_upload_enabled.
- После импорта откройте несколько файлов из начала, середины и конца партии и сравните названия, даты, ориентацию и наличие ожидаемых метаданных.
Важные параметры. Папочная загрузка повторяет подкаталоги вложенными альбомами до настроенного предела глубины. Ограничения PHP и прокси продолжают влиять на передачу, даже когда файл делится на части.
Проверка. Число элементов в альбоме соответствует исходной партии, фотографии открываются, а оригинал доступен для скачивания. Для видео отдельно проверьте воспроизведение в тех браузерах, которыми будет пользоваться аудитория.
Типичная ошибка. Перетаскивать HEIC или RAW и считать отсутствие такого расширения в стабильном списке форматов случайной проблемой браузера.
Безопасный откат. Удалите только неудачно импортированную тестовую партию после того, как убедились в сохранности внешних исходников; затем подготовьте совместимые копии и повторите загрузку.
Серверный импорт существующей медиатеки
Цель. Подключить большой набор файлов, который уже находится на сервере, без повторной передачи через браузер.
Подготовка. Путь к каталогу должен быть доступен процессу Lychee, а поддерживаемые файлы — читаемы. На Linux заранее проверьте владельца и права каталогов.
- Откройте терминал в окружении, где доступен artisan текущей установки Lychee.
- Запустите синхронизацию командой php artisan lychee:sync /path/to/import, заменив путь на реальный каталог импорта.
- Дождитесь завершения команды и изучите сообщения о пропущенных или ошибочных файлах.
- Откройте веб-интерфейс и проверьте созданные или обновлённые элементы библиотеки.
- Сопоставьте несколько файлов с исходным каталогом по имени, дате и метаданным.
Важные параметры. Консольная синхронизация не отменяет требований к файловой системе. Пользователь, от которого выполняется команда, и процесс веб-приложения не должны создавать взаимно недоступные файлы.
Проверка. Импортированный материал виден из браузера и открывается после завершения консольной команды, а дальнейшее редактирование метаданных не вызывает ошибки записи.
Типичная ошибка. Выполнить импорт от root и получить файлы или каталоги, с которыми веб-процесс затем не может работать.
Безопасный откат. Исправьте владельца и права на каталогах до повторного импорта. Не выдавайте всему дереву максимальные права только ради устранения ошибки доступа.
Теги, рейтинг, описание и поиск
Цель. Сделать библиотеку находящейся по смыслу, а не только по расположению в альбомах.
Подготовка. Сформируйте короткий словарь тегов: имена, места, тип съёмки или темы. Договоритесь об одной форме написания, чтобы не появлялись пары вроде «Москва» и «москва» как разные обозначения.
- Откройте нужную фотографию или выделите группу снимков для массового изменения.
- Добавьте название и описание там, где одного имени файла недостаточно для понимания содержимого.
- Добавьте теги. Для группы используйте массовое добавление либо полную замену набора только тогда, когда это соответствует цели.
- Поставьте рейтинг от одной до пяти звёзд по заранее выбранной шкале отбора.
- Для динамической подборки создайте Tag Album и задайте сочетание тегов через AND либо OR.
- Откройте Search и найдите контрольный снимок по названию, описанию или тегу.
Важные параметры. AND требует одновременного наличия выбранных тегов, OR включает элементы с любым из них. Публичный поиск управляется администратором отдельно от внутреннего.
Проверка. Контрольный снимок находится по ожидаемому признаку, а Tag Album автоматически показывает нужный набор после изменения тегов.
Типичная ошибка. Использовать массовую замену тегов вместо добавления и стереть полезную разметку у выбранной группы.
Безопасный откат. Не применяйте массовую замену к большой партии без теста на нескольких элементах. При ошибке восстановите набор тегов из принятого словаря и вновь проверьте Tag Albums.
Публикация альбома и права доступа
Цель. Передать галерею нужной аудитории, не открывая больше данных, чем требуется.
Подготовка. Решите, нужен публичный URL без аккаунта или доступ конкретным зарегистрированным пользователям. Отдельно определите право скачивания.
- Откройте параметры доступа нужного альбома.
- Для закрытой совместной работы добавьте зарегистрированных пользователей и назначьте им чтение либо полный доступ.
- Для публикации по ссылке сделайте альбом публичным.
- При необходимости задайте пароль публичного альбома.
- Установите разрешение на скачивание в соответствии со сценарием передачи.
- Определите, должен ли альбом появляться в публичной галерее. Для передачи только по известной ссылке используйте скрытую публикацию.
- Откройте полученный адрес в приватном окне браузера без административной сессии и проверьте фактический уровень доступа.
Важные параметры. Публичность, пароль, видимость в общей галерее и право скачивания — разные свойства. Пароль не делает публично перечисляемый альбом приватным в том же смысле, что права конкретным аккаунтам.
Проверка. Неавторизованный посетитель видит ровно то, что предусмотрено: либо форму пароля, либо опубликованную галерею, либо отказ в доступе. Кнопка скачивания присутствует только при соответствующем разрешении.
Типичная ошибка. Проверять ссылку в браузере, где администратор уже вошёл в систему, и принять административный доступ за публичный.
Безопасный откат. Верните альбом в приватное состояние и повторите проверку в отдельной анонимной сессии до повторной передачи ссылки.
Работа с пользователями и приглашениями
Цель. Организовать постоянный закрытый доступ для семьи, команды или авторов съёмки.
Подготовка. Определите, кому требуется только просмотр, кому загрузка и редактирование, а кому административные полномочия. Не выдавайте более высокий уровень только ради удобства.
- Создайте пользователя административным способом либо сформируйте пригласительную ссылку.
- Оставьте открытую саморегистрацию выключенной, когда она не является частью выбранного сценария.
- Назначьте пользователю необходимый trust level.
- Откройте нужный альбом и выдайте чтение или полный доступ.
- Для усиления входа настройте поддерживаемый WebAuthn либо OAuth в соответствии с серверной конфигурацией.
- Войдите под тестовой неадминистративной учётной записью и проверьте доступ к разрешённым и запрещённым альбомам.
Важные параметры. Доступ к альбому и общий уровень доверия пользователя решают разные задачи. Supporter Edition добавляет группы и квоты, но базовое разграничение альбомов присутствует в Free.
Проверка. Пользователь открывает разрешённый альбом и не получает возможности изменить материал при режиме только чтения.
Типичная ошибка. Проверять права только административной учётной записью.
Безопасный откат. Снимите лишнее право с тестового аккаунта, повторно войдите под ним и убедитесь, что доступ действительно изменился.
Скачивание оригиналов и архива альбома
Цель. Получить переносимую копию файлов вне веб-галереи.
Подготовка. Убедитесь, что у текущего пользователя разрешено скачивание и на клиентском диске достаточно места.
- Для одного кадра откройте фотографию и используйте скачивание оригинального файла.
- Для нескольких элементов выделите нужную выборку и скачайте её доступным групповым действием.
- Для всего альбома используйте ZIP-скачивание оригиналов.
- После завершения откройте скачанный файл или распакуйте ZIP в отдельный каталог.
- Сравните количество файлов и выборочно проверьте размер, расширение и открытие оригиналов.
Важные параметры. ZIP передаёт файлы, а не полноценную копию серверной базы, пользователей, прав и всей логики каталога. Для миграции экземпляра одного ZIP недостаточно.
Проверка. Архив распаковывается без ошибок, а контрольные оригиналы открываются вне Lychee.
Типичная ошибка. Считать ZIP альбома полной резервной копией сервиса.
Безопасный откат. Скачивание не изменяет библиотеку, поэтому специальный откат не требуется. Ошибочный локальный архив удаляется после повторной проверки корректной копии.
Сквозной сценарий: от новой галереи до закрытой публикации
Цель. Пройти полный путь на небольшой контрольной подборке и только после этого переносить основную медиатеку.
Подготовка. Возьмите 10–20 поддерживаемых JPEG или WebP с корректными датами и один файл с GPS, если требуется проверить карту. Не используйте единственные экземпляры фотографий как тестовый материал.
- В Settings проверьте язык, исходную приватность новых альбомов и отключённую ненужную саморегистрацию.
- На странице Albums нажмите +, выберите New Album и создайте тестовый альбом с понятным названием.
- Откройте альбом, нажмите Upload и загрузите подготовленные файлы.
- Откройте несколько фотографий, проверьте ориентацию и EXIF, затем добавьте двум-трём кадрам описание, общий тег и разный рейтинг.
- Используйте Search, чтобы найти один из размеченных снимков по тегу или описанию.
- При наличии GPS откройте географическое представление и убедитесь, что точка соответствует месту съёмки.
- Настройте доступ альбома: сначала оставьте его приватным и выдайте чтение тестовому пользователю.
- Проверьте вход под тестовым пользователем. После этого переключите альбом в публичный режим с паролем, когда сценарий требует внешней ссылки.
- Откройте публичный адрес в приватном окне браузера и проверьте пароль, видимость и право скачивания.
- Скачайте оригинал одного кадра и ZIP всего тестового альбома, распакуйте архив и сравните файлы.
Проверка. В конце цикла известны четыре вещи: выбранные форматы принимаются, метаданные читаются, схема прав работает без административной сессии, оригиналы выгружаются наружу. После такой контрольной партии перенос большого архива становится управляемой операцией, а не единственной попыткой сразу загрузить годы съёмок.
Типичная ошибка. Начать с полной медиатеки и одновременно менять структуру, права, форматы и серверные лимиты. Тогда причина любой ошибки теряется среди нескольких переменных.
Безопасный откат. Оставьте исходную медиатеку вне Lychee неизменной до завершения проверки. Тестовый альбом можно удалить после того, как подтверждён внешний комплект оригиналов и выбрана окончательная схема каталогизации.
Безопасность, приватность и зависимость от инфраструктуры
Главное преимущество self-hosted модели одновременно является её главным условием: фотографии не обязаны уходить в хранилище поставщика Lychee, но безопасность сервера становится задачей владельца. Приложение хранит в .env параметры подключения к базе и секреты; этот файл не должен раздаваться веб-сервером. Корнем публичного сайта служит каталог public, а не директория проекта целиком.
Для внешнего доступа нужен HTTPS. Особенно это важно при входе, работе с WebAuthn, публичными паролями и административной частью. За обратным прокси должны быть согласованы APP_URL, схема HTTPS и trusted proxies. Некорректная конфигурация приводит не только к неправильным ссылкам: она может ломать аутентификацию, редиректы и определение безопасного соединения.
Self-hosted не означает полностью автономный набор функций. Проверка обновлений и уязвимостей требует сетевого доступа к внешним ресурсам, импорт по URL обращается к удалённым адресам, Dropbox использует API Dropbox, а обратное геокодирование может работать через Nominatim. S3-совместимое хранилище включается отдельно. В изолированной локальной сети базовая библиотека, альбомы и просмотр продолжают зависеть прежде всего от собственного сервера, но внешние интеграции без сети не выполняются.
Регистрацию разумно оставлять выключенной, пока нет задачи принимать новых пользователей самостоятельно. Для публичных альбомов важно раздельно контролировать три вещи: присутствие в публичной галерее, наличие пароля и разрешение скачивания. Эти параметры не взаимозаменяемы. Закрытые материалы лучше выдавать конкретным аккаунтам, а не полагаться только на трудно угадываемый адрес.
Горячие ссылки на изображения можно ограничивать, а Supporter Edition добавляет защищённые ссылки. Но любой материал, который разрешено показать браузеру, в конечном счёте передаётся на клиентское устройство. Водяной знак и запрет штатного скачивания помогают управлять обычным распространением, но не превращают веб-показ в криптографический запрет на получение изображения пользователем, который уже имеет право его видеть.
Производительность и требования к ресурсам
Lychee не публикует универсальные минимальные значения оперативной памяти и процессора для всех размеров библиотек, поэтому оценивать сервер лучше по составу нагрузки. При первом импорте система одновременно принимает оригиналы, извлекает метаданные, создаёт производные изображения и обновляет базу. Большая библиотека требует больше диска не только под исходники, но и под сгенерированные варианты.
Для обычного просмотра браузеру не приходится каждый раз передавать многомегабайтный оригинал: интерфейс использует подготовленные размеры. Наличие ImageMagick улучшает обработку миниатюр, а FFmpeg позволяет создавать превью видеороликов. ExifTool добавляет более полное извлечение метаданных. Эти компоненты необязательны для самого факта запуска, но их отсутствие заметно именно на соответствующих типах задач.
В Docker-ветке v7 используются FrankenPHP и Laravel Octane. Полная рекомендуемая конфигурация поддерживает workers, чтобы фоновые задания не конкурировали с интерактивными ответами браузеру в одном потоке. При росте медиатеки это полезнее, чем пытаться оценить Lychee одной цифрой скорости: узким местом бывает процессор при генерации вариантов, диск при массовой загрузке, база при большом каталоге или сеть при удалённой выдаче оригиналов.
SQLite упрощает небольшую установку, поскольку не требует отдельного сервера базы. MySQL/MariaDB и PostgreSQL лучше соответствуют типичной серверной схеме с отдельным СУБД-компонентом. Выбор базы следует сделать до серьёзного наполнения и включить её в резервирование вместе с медиаданными. Microsoft SQL упоминается как технически возможный вариант через Laravel, но официальной поддержки Lychee для него нет.
Плюсы и минусы
Плюсы
- Free распространяется по MIT и не вводит искусственных лимитов на число пользователей, альбомов, тегов и фотографий.
- Оригинальные изображения сохраняются, а для веб-просмотра создаются отдельные варианты.
- Есть вложенные альбомы, теги, динамические Tag Albums, поиск, рейтинг, карта и полноэкранный просмотр.
- Поддерживаются приватные альбомы, публичные ссылки, пароли, ограничения скачивания и права для конкретных пользователей.
- Docker Compose является рекомендуемым способом развёртывания, при этом ручная установка тоже поддерживается.
- Данные размещаются на инфраструктуре владельца; базовая работа не требует хранить библиотеку у поставщика Lychee.
- Импорт возможен из браузера, папками и напрямую с серверной файловой системы через artisan-команду.
- Supporter Edition расширяет административные и публикационные функции, не отнимая базовую фотогалерею у бесплатной редакции.
Минусы
- Владелец самостоятельно отвечает за сервер, HTTPS, обновления, базу данных, права каталогов и резервные копии.
- Стабильный список изображений не включает RAW и HEIC/HEIF, что требует предварительного преобразования части современных фотоархивов.
- Готового стабильного распознавания лиц в 7.8.3 нет; соответствующая функция относится к будущей v8.
- Lychee не заменяет фоторедактор: организация, метаданные и публикация не дают ретуши, слоёв и полноценной цветокоррекции.
- Для качественных превью видео и расширенного чтения метаданных нужны дополнительные серверные инструменты FFmpeg и ExifTool.
- Supporter Edition оплачивается ежемесячно, отдельного пробного периода и возврата платежа для неё нет.
- Мобильный сценарий построен вокруг веб-интерфейса; автоматическое резервное копирование фотоплёнки со смартфона не является центральной штатной моделью продукта, как у Immich.
Кому подойдёт
- Владельцам домашнего сервера или NAS. Lychee добавляет к файловому хранилищу удобную веб-структуру альбомов и управляемый внешний доступ.
- Семье или небольшой группе. Несколько пользователей получают разные права на альбомы без переноса всей коллекции в сторонний облачный аккаунт.
- Фотографу с подготовленными JPEG/WebP. Галерея подходит для отбора, портфолио, закрытой выдачи клиенту и скачивания оригиналов поддерживаемых форматов.
- Администратору, которому важна прозрачная серверная схема. Docker, .env, поддерживаемые СУБД и открытый код позволяют встроить продукт в существующую инфраструктуру.
- Пользователю, которому нужна именно галерея. Когда основной цикл состоит из загрузки, каталогизации, поиска, просмотра и публикации, функции Lychee соответствуют задаче без лишнего слоя редактора.
Кому не подойдёт
- Тем, кто не хочет администрировать сервер. Обновления, домен, HTTPS и резервирование не исчезают после установки приложения.
- Фотографам, хранящим RAW как основной рабочий формат. RAW не входит в штатный список изображений стабильной Lychee 7.8.3.
- Пользователям с большой HEIC/HEIF-библиотекой без этапа конвертации. Для такого архива удобнее система с прямой поддержкой этих форматов.
- Тем, кому требуется автоматическая синхронизация фотоплёнки через нативное мобильное приложение. Immich строит продукт вокруг этого сценария заметно сильнее.
- Тем, кому уже сейчас нужны распознавание лиц и семантический поиск. В стабильной 7.8.3 Lychee не следует считать эти функции готовой основой медиатеки.
- Тем, кому нужен редактор изображений. Lychee организует и публикует готовые медиа, а не заменяет Lightroom, Photoshop, darktable или аналогичный инструмент обработки.
Сравнение с другими аналогами
Сопоставлять self-hosted фотосистемы корректно по одному набору критериев: основная задача, платформенная модель, порог освоения, форматы, автоматизация, модель оплаты, ограничения и лучший сценарий. Ниже Lychee сравнивается с Piwigo, PhotoPrism и Immich — все три проекта решают задачу личной или коллективной медиатеки, но делают акцент на разных этапах работы.
| Критерий | Lychee | Piwigo | PhotoPrism | Immich |
|---|---|---|---|---|
| Основная задача | Self-hosted галерея, альбомы, права и публикация | Веб-фотогалерея с глубокой каталогизацией и экосистемой расширений | Self-hosted фотоархив с сильным поиском, картой и широкой поддержкой форматов | Self-hosted замена мобильной облачной фототеке с автоматическим бэкапом телефона |
| Платформа | Сервер + браузер; Docker рекомендован | Self-hosted веб-приложение либо официальный облачный сервис | Серверное приложение, Docker; веб/PWA на компьютере и мобильных устройствах | Сервер + официальные приложения Android/iOS + веб-интерфейс |
| Порог освоения | Средний: понятная галерея после настройки сервера | Средний: ядро просто, но плагины и темы расширяют число решений | Средне-высокий: больше функций индексации и медиакаталога | Средний для пользователя, выше для администратора из-за серверной и ML-части |
| Форматы | JPG/JPEG, PNG, GIF, WebP; перечисленные видеоформаты | JPG/JPEG, PNG, GIF, WebP и HEIC; дополнительные типы расширяются конфигурацией и плагинами | Широкий набор фото, видео и RAW, включая HEIF/HEIC | Широкий набор изображений и видео, включая HEIC/HEIF, AVIF и RAW |
| Автоматизация | Варианты изображений, метаданные, server sync, теги и фоновые workers | Пакетное управление, загрузка через веб и внешние инструменты, плагины | Индексирование, распознавание и классификация, поиск по метаданным и содержимому | Автозагрузка с телефона, дедупликация, распознавание лиц, интеллектуальный поиск |
| Оплата | Free MIT; Supporter Edition 5 евро/месяц; отдельный Pro | Self-hosted версия свободная и open source; официальный Piwigo Cloud платный с пробным периодом | Community Edition бесплатна; есть платные уровни поддержки и хостинговые варианты | Все функции остаются бесплатными; покупка Single за 25 долларов или Family за 100 долларов является добровольной пожизненной поддержкой проекта и не открывает скрытые функции |
| Главное ограничение | Узкий стабильный список изображений, нет готового face recognition в v7 | Для современного поведения часто требуется подобрать плагины и тему | Более тяжёлая и насыщенная система, чем простая веб-галерея | Выше требования к серверу и больше компонентов, чем у лёгкой галереи |
| Подходящий сценарий | Контролируемая галерея и публикация подготовленных фото | Большой фотокаталог, где ценится расширяемость и зрелая галерейная экосистема | Архив разных форматов с поиском и автоматической классификацией | Семейная фототека с постоянной загрузкой со смартфонов |
Piwigo разумнее выбирать, когда важны плагины, темы и длинная история именно веб-галереи. Проект доступен как self-hosted open-source решение и как платный Piwigo Cloud, поэтому пользователь может отказаться от собственного администрирования, не меняя базовую продуктовую модель.
PhotoPrism сильнее там, где архив неоднороден: RAW, HEIC/HEIF, видео, география и автоматическая классификация должны работать в одной системе. За это приходится принимать более сложную настройку и более насыщенную модель индексации. Для готовых JPEG-альбомов Lychee проще концептуально: его центральная сущность — галерея и управляемый доступ.
Immich отличается мобильным приоритетом. Официальные приложения Android и iOS автоматически резервируют выбранные альбомы смартфона, сервер выполняет дедупликацию, распознавание лиц и интеллектуальный поиск. В 2026 году проект сохраняет все функции бесплатными; покупаемые Single и Family product keys служат поддержкой разработки и не включают отдельный платный набор возможностей. Для сценария «снимать телефоном и автоматически складывать на свой сервер» Immich ближе к задаче, чем Lychee.
Типичные проблемы и их диагностика
После ручной установки открывается ошибка 500 или пустая страница
Симптом. Веб-интерфейс не загружается сразу после развёртывания либо сервер возвращает внутреннюю ошибку.
Причина. Наиболее характерные причины такой ситуации — неподходящая версия PHP, отсутствующее обязательное PHP-расширение, неверные права storage/bootstrap/cache или ошибка конфигурации приложения.
Диагностика. Сверьте PHP с требованием 8.4 или новее и перечень модулей с Manual Installation. Затем изучите серверный журнал и журнал приложения. Для понимания общей логики работы журналов в Linux подходит материал GeekHow о log-файлах Linux.
Исправление. Установите недостающие расширения, приведите PHP к поддерживаемой версии и восстановите права записи на служебные каталоги Lychee. APP_DEBUG на публичном сервере держите выключенным.
Проверка результата. Главная страница и вход открываются без HTTP 500, а создание тестового альбома не вызывает серверной ошибки.
Lychee не соединяется с базой данных
Симптом. Установка или запуск прерываются ошибкой соединения с СУБД.
Причина. Неверные DB_HOST, имя базы, пользователь, пароль или выбран неподдерживаемый драйвер. Lychee официально работает с MySQL/MariaDB, PostgreSQL и SQLite.
Диагностика. Проверьте значения базы в .env и доступность СУБД из того же контейнера или хоста, где работает приложение. Для Docker имя сервиса базы и сетевой адрес должны соответствовать compose-конфигурации.
Исправление. Верните корректные реквизиты и используйте поддерживаемый драйвер. Не переносите конфигурацию Microsoft SQL из другого Laravel-проекта как официально поддерживаемую схему Lychee.
Проверка результата. Приложение проходит стартовую инициализацию, создаёт административную учётную запись и сохраняет новый альбом.
Загрузка начинается, но файл не сохраняется
Симптом. Браузер показывает передачу, после чего появляется ошибка записи либо файл отсутствует в альбоме.
Причина. Веб-процесс не имеет записи в storage, bootstrap/cache, public/uploads или public/sym; также может быть недоступен временный каталог.
Диагностика. Сопоставьте владельца каталогов с пользователем процесса приложения и проверьте права без расширения их до глобальной записи для всех.
Исправление. Назначьте корректного владельца и минимально необходимые разрешения рабочим каталогам. Для систем, где временный каталог контейнера вызывает проблему, предусмотрена отдельная настройка использования системного temp-каталога.
Проверка результата. Небольшой JPEG загружается, появляется в альбоме и открывается, а оригинал скачивается обратно.
Крупные файлы обрываются при загрузке
Симптом. Маленькие фотографии проходят, а большой файл не доходит до конца или получает ошибку ограничения размера.
Причина. Chunk upload делит передачу на части, но ограничения PHP, reverse proxy и веб-сервера продолжают действовать.
Диагностика. Сравните размер проблемного файла с upload_max_filesize, post_max_size и лимитами прокси. Проверьте, что временный каталог доступен на запись.
Исправление. Согласуйте лимиты на всех уровнях цепочки и перезапустите компоненты, для которых конфигурация читается только при старте.
Проверка результата. Повторная передача того же файла завершается без обрыва, а оригинал доступен в библиотеке.
Перетаскивание папки не создаёт структуру альбомов
Симптом. Пользователь переносит каталог на страницу Albums, но ожидаемое дерево подальбомов не формируется.
Причина. Папочная загрузка управляется параметром folder_upload_enabled, а глубина рекурсии имеет отдельное ограничение.
Диагностика. Откройте Settings и убедитесь, что folder upload разрешён; сопоставьте глубину исходной папки с настроенным пределом.
Исправление. Включите папочную загрузку там, где она действительно нужна и приведите структуру к допустимой глубине либо импортируйте её частями.
Проверка результата. Небольшая тестовая папка с одной подпапкой создаёт родительский и дочерний альбомы с ожидаемыми файлами.
После server sync файлы видны, но не редактируются
Симптом. Импорт через artisan проходит, однако веб-интерфейс получает отказ записи при изменении или дальнейшей обработке.
Причина. Консольная команда и веб-процесс работали от разных пользователей, а созданные файлы получили несовместимые владельца или права.
Диагностика. Сравните владельца импортированных каталогов с пользователем, от которого работает контейнер или веб-сервис.
Исправление. Нормализуйте владельца и права согласно схеме установки. Саму установку программ и сервисов в Linux полезно рассматривать вместе с базовыми правилами из руководства GeekHow по установке приложений в Linux.
Проверка результата. Импортированный снимок открывается, его описание изменяется и сохраняется без ошибки файловой системы.
EXIF, GPS или превью видео отсутствуют
Симптом. Фотография открывается, но часть метаданных не отображается, на карте нет точки или видео не получает ожидаемую миниатюру.
Причина. Исходник не содержит соответствующих данных либо на сервере отсутствуют дополнительные инструменты ExifTool/FFmpeg. Для карты нужны реальные GPS-координаты в метаданных.
Диагностика. Сначала проверьте исходный файл отдельным инструментом: есть ли в нём EXIF и координаты. Для видео проверьте наличие FFmpeg на сервере.
Исправление. Установите рекомендуемый ExifTool для расширенного чтения метаданных и FFmpeg для видеопревью. Удалённые из исходника координаты устанавливайте только на основании известных достоверных данных, а не автоматической догадки.
Проверка результата. Новый тестовый файл с заведомо сохранёнными метаданными показывает ожидаемые поля, GPS отображается на карте, а видео получает превью после обработки.
Публичный альбом видит не та аудитория
Симптом. Альбом появился в общей публичной галерее либо, наоборот, ссылка не работает для гостя.
Причина. Перепутаны приватность, публичность, скрытая публикация, пароль и права конкретных пользователей. default_album_protection также влияет на исходное состояние новых альбомов.
Диагностика. Проверьте альбом в приватном окне без входа администратора и отдельно под обычной учётной записью.
Исправление. Выставьте требуемый режим: приватный доступ конкретным пользователям или публичную/скрытую публикацию с нужным паролем и правом скачивания.
Проверка результата. Анонимный посетитель, обычный пользователь и администратор получают разные уровни доступа ровно по заданной схеме.
После reverse proxy появляются неправильные адреса или сбои входа
Симптом. Lychee генерирует ссылки с неправильной схемой или доменом, а вход через внешнюю систему и WebAuthn работают нестабильно.
Причина. APP_URL, HTTPS и trusted proxies не согласованы с фактическим внешним адресом.
Диагностика. Сравните адрес в браузере с APP_URL, проверьте передачу схемы HTTPS от reverse proxy и доверенные прокси.
Исправление. Укажите реальный внешний HTTPS-адрес, настройте доверие к прокси и исключите раздачу корня проекта вместо public.
Проверка результата. Внешние ссылки формируются с правильным доменом и HTTPS, повторный вход проходит после новой сессии браузера.
Изменение переменной Docker не влияет на приложение
Симптом. Значение в .env или compose-файле изменено, но Lychee продолжает вести себя по-старому.
Причина. Docker-окружение и конфигурация приложения читаются и кэшируются при запуске.
Диагностика. Убедитесь, что редактируется файл именно текущего compose-проекта, а контейнер после изменения не продолжает работать со старым окружением.
Исправление. Перезапустите или пересоздайте контейнер Lychee штатным способом Docker Compose.
Проверка результата. После старта новое значение отображается в поведении приложения, а журнал не содержит ошибки чтения конфигурации.
FAQ
Можно ли использовать Lychee только внутри домашней сети?
Да. Сервер может быть доступен только в локальной сети, а браузеры домашних устройств будут обращаться к нему по внутреннему адресу. Для такого режима не требуется публиковать галерею в интернет. Функции, которые обращаются к внешним сервисам — например, обратное геокодирование, проверка обновлений или импорт по удалённому URL, — без внешней сети работать не будут.
Нужна ли отдельная программа на Windows или macOS?
Нет для основной работы с библиотекой. Пользовательская часть Lychee — веб-интерфейс, поэтому альбомы, загрузка, поиск и просмотр доступны в браузере. Отдельные настольные программы могут оставаться в рабочем процессе как редакторы или конвертеры исходников до загрузки.
Подходит ли SQLite для постоянной библиотеки?
SQLite входит в официальный список поддерживаемых баз и упрощает компактное развёртывание. Для серверной установки с отдельной СУБД Lychee также поддерживает MySQL/MariaDB и PostgreSQL. Выбор лучше закрепить до массового импорта и включить файл либо сервер базы в общую схему резервирования.
Можно ли хранить медиа в S3-совместимом хранилище?
Да, в конфигурации есть отдельное включение S3. Это не обязательный компонент: обычная установка работает с локальными постоянными томами. При S3 меняется схема хранения и добавляется зависимость от выбранного S3-сервиса или собственного совместимого хранилища.
Будет ли Lychee автоматически удалять дубликаты фотографий?
Lychee не следует выбирать как систему, ориентированную прежде всего на автоматический мобильный бэкап с дедупликацией. В сравнении такой сценарий сильнее представлен у Immich. Для Lychee разумнее заранее контролировать импортируемую структуру и не загружать несколько одинаковых архивов в разные ветки.
Можно ли сделать альбом публичным, но не показывать его в общем каталоге?
Да. Lychee разделяет публичный доступ по ссылке и присутствие в публичной галерее. Скрытая публикация предназначена именно для передачи адреса ограниченной аудитории без появления альбома в общем списке. Пароль и право скачивания настраиваются отдельно.
Что произойдёт с фотографиями при смене раскладки альбома?
Justified, Masonry и Square меняют представление альбома, а не оригинальные файлы. Такой параметр безопасно использовать как часть оформления: он не является конвертацией исходника и не меняет содержимое фотографии.
Можно ли держать несколько пользователей без Supporter Edition?
Да. Неограниченные пользователи входят в Free. Бесплатная редакция поддерживает учётные записи и доступ к альбомам. Supporter Edition добавляет поверх этого группы, квоты, несколько администраторов и дополнительные административные возможности.
Нужно ли устанавливать ImageMagick, ExifTool и FFmpeg одновременно?
Нет. Они решают разные дополнительные задачи. ImageMagick улучшает генерацию миниатюр, ExifTool расширяет работу с метаданными, FFmpeg нужен для видеопревью. Минимальная установка определяется обязательными PHP-расширениями; дополнительные компоненты ставят в соответствии с содержимым медиатеки.
Стоит ли включать V8_ENABLED ради распознавания лиц?
Для рабочего экземпляра стабильной 7.8.3 — нет. V8_ENABLED относится к экспериментам следующей основной версии и не предназначен для рабочего экземпляра. Продакшен-галерею разумно строить на функциях текущей стабильной ветки, а экспериментальные возможности проверять отдельно от основной библиотеки.
Вывод
Lychee 7.8.3 хорошо соответствует сценарию, где уже есть собственный сервер и подготовленные фотографии в поддерживаемых форматах, а основная задача — превратить файловый архив в управляемую браузерную галерею. В этом случае Free закрывает базовый цикл без искусственных тарифных лимитов: альбомы, теги, поиск, метаданные, пользователи, приватность, публикация и скачивание оригиналов.
Для семейной галереи сильная сторона Lychee — простое разделение личной библиотеки и внешней выдачи. Альбом остаётся приватным, открывается выбранным пользователям или публикуется по ссылке с отдельными настройками пароля и скачивания. При этом цена удобства не скрыта: сервер всё равно требует администрирования, HTTPS и независимого сохранения данных.
Фотографу Lychee полезен как последний этап после отбора и обработки, особенно когда клиенту или аудитории нужно показать готовые JPEG/WebP и дать контролируемое скачивание. Для RAW-проявления, HEIC-архива без конвертации и сложной ретуши нужен другой инструмент до Lychee либо более широкий медиаменеджер.
При приоритете мобильного автоматического бэкапа практичнее Immich; при необходимости широких форматов, автоматической классификации и насыщенного поиска — PhotoPrism; при ставке на плагины и зрелую экосистему веб-галереи — Piwigo. Lychee выигрывает не универсальностью, а чёткой ролью: собственная фотогалерея с понятной альбомной организацией, открытым кодом и контролем над местом хранения.





















