LibrePhotos: гайд от гика, как устроена локальная фотобиблиотека с ИИ, альбомами и поиском
LibrePhotos — не настольный фоторедактор и не очередное облако для автоматической выгрузки снимков. Это self-hosted сервис управления медиатекой: сервер индексирует фотографии и видео из указанной папки, строит временную ленту, извлекает EXIF, распознаёт лица и сцены, создаёт поисковые представления и показывает библиотеку через веб-интерфейс. Исходные файлы при этом хранятся на инфраструктуре владельца экземпляра, а не в аккаунте коммерческого фотосервиса. Такой подход особенно интересен тем, кто хочет собрать семейный архив, NAS или домашний сервер в единую фототеку, сохранив контроль над оригиналами и метаданными.
В этом обзоре рассматривается именно проект LibrePhotos из организации LibrePhotos: актуальный серверный продукт с Django-бэкендом, React-веб-клиентом, Docker-развёртыванием и отдельным мобильным направлением. Его не следует путать с обычным просмотрщиком фотографий или редактором изображений: LibrePhotos организует и анализирует уже существующую медиатеку, а редактирование пикселей, слоёв и художественная обработка находятся за пределами его основной роли.
Что такое LibrePhotos и кто его разрабатывает
LibrePhotos — открытый проект управления фотографиями, который развивается в публичной организации LibrePhotos и распространяется по MIT License. Текущий репозиторий объединяет ранее раздельные компоненты в один монорепозиторий: Django 5 API и фоновые задания, React 18 + Vite веб-интерфейс, React Native мобильный клиент, документацию и конфигурации развёртывания. Это важно для идентичности продукта: пользователь устанавливает сервер LibrePhotos и обращается к нему через браузер, а не покупает отдельную настольную программу для Windows или macOS.
Главная модель работы — индексирование собственной файловой библиотеки. LibrePhotos читает снимки и видео из назначенного каталога, извлекает метаданные, создаёт миниатюры и производные данные, а затем связывает их с представлениями Timeline, Folders, People, Places, Things, Albums и результатами поиска. Машинное обучение используется не как внешний сервис подписки, а как часть серверного конвейера: в проекте задействованы InsightFace для лиц, модели для описаний и тегов, CLIP-подобный семантический поиск, а также FFmpeg, ImageMagick, libvips и ExifTool для обработки медиа.
| Параметр | LibrePhotos |
|---|---|
| Тип | Self-hosted веб-сервис управления фото- и видеобиблиотекой |
| Разработка | Открытый проект организации LibrePhotos |
| Лицензия | MIT License |
| Серверная платформа | Docker-совместимая ОС; Linux рекомендован |
| Архитектуры | Зависят от выбранного Docker-развёртывания; проект ориентирован на обычные серверы и домашние NAS |
| Доступ пользователя | Веб-интерфейс в браузере; отдельное мобильное направление для Android |
| Минимум памяти | 4 ГБ RAM |
| Рекомендуемая память | 8 ГБ RAM и больше, особенно для функций машинного обучения |
| Процессор | Минимум 2 ядра, рекомендовано 4 и больше |
| Место для приложения | От 10 ГБ плюс объём самой фототеки; SSD рекомендован для служебных данных |
| Основной импорт | Сканирование файловой папки и загрузка через веб-интерфейс |
| Медиа | Фотографии, RAW, видео, Live Photos и связанные варианты RAW+JPEG; загрузчик принимает файлы с image/video MIME |
| Метаданные | EXIF, XMP и IPTC, включая XMP sidecar в поддерживаемых сценариях |
| ИИ-функции | Лица, классификация сцен и объектов, подписи, семантический поиск, похожие изображения |
| Оплата | Сам LibrePhotos распространяется как открытый код; отдельной обязательной подписки на программу нет |
| Хранение | На инфраструктуре владельца экземпляра |
Текущий статус, платформы и способы установки
LibrePhotos остаётся действующим self-hosted проектом: сервер, веб-клиент, мобильный код, документация и развёртывание собраны в текущем монорепозитории. Для конечного пользователя это означает, что актуальная форма продукта — серверное приложение с веб-интерфейсом, а не старый набор разрозненных репозиториев. Разработка ведётся публично, локализация встроена в веб-клиент через i18next, а язык пользователя меняется в Profile. Документация не публикует процент готовности каждой локализации, поэтому полноту конкретного русского перевода нельзя сводить к обещанию «полностью переведено».
Поэтому LibrePhotos рациональнее рассматривать как домашний или небольшой серверный сервис. Если Docker и Linux пока незнакомы, полезно сначала разобраться, как устанавливаются приложения в Linux. На этапе подключения фотопапок не менее важны права файловой системы: отдельная инструкция GeekHow по правам доступа к файлам и каталогам Linux помогает понять, почему контейнер видит каталог, но не способен читать или записывать его.
Требования к ресурсам не стоит оценивать только по размеру веб-интерфейса. Репозиторий задаёт 4 ГБ RAM как минимум и рекомендует 8 ГБ и больше, потому что распознавание лиц, классификация сцен и создание подписей требуют заметно больше памяти, чем обычная выдача миниатюр. Минимум по CPU — два ядра, рекомендовано четыре и больше. Отдельные 10 ГБ нужны для приложения, базы, моделей и производных данных сверх объёма исходной медиатеки.
Мобильная часть не является отдельным облачным сервисом: в текущем монорепозитории есть React Native клиент для Android, а основной интерфейс LibrePhotos остаётся веб-клиентом собственного сервера. Поэтому библиотека, права и фоновые вычисления принадлежат серверному экземпляру; телефон выступает клиентом той же медиатеки, а не создаёт вторую независимую базу.
Как устроен интерфейс
Веб-интерфейс построен вокруг медиатеки, а не вокруг «проекта» как в редакторе. Слева располагаются разделы навигации, сверху — поиск и действия, в центре — сетка или временная лента. Главная Timeline группирует снимки по дате от новых к старым и добавляет вертикальный скраббер для быстрого перехода к периоду. Есть отдельные представления Favorites, Hidden, Recently Added, Photos Only, Videos Only, Without Timestamp, My Public Photos и Folders. Последнее сохраняет связь с реальной иерархией файловой системы: пользователь видит проиндексированные папки и вложенные каталоги вместо искусственной структуры внутри приложения.

Щелчок по снимку открывает lightbox. В нём доступны переходы стрелками или свайпом, нижняя полоса соседних кадров и панель действий. Для авторизованного пользователя она включает slideshow, масштабирование, полноэкранный режим, скрытие, избранное, публичность, перемещение в корзину, поворот на 90 градусов и боковую информационную панель. Важная деталь: скачивание и обмен с другими пользователями выполняются не из lightbox, а после выделения объектов в сетке через меню действий.
Боковая панель фотографии объединяет то, ради чего серверная индексация имеет смысл: время съёмки, имя файла, размер и разрешение, EXIF камеры и объектива, путь, варианты файла, географию, людей, подпись, автоматические и ручные теги, XMP/IPTC keywords, принадлежность к альбомам и похожие снимки. Это не просто «информация о файле»: часть полей редактируется, а способ сохранения изменений зависит от настройки Synchronize metadata to disk.
Разделы Albums, People, Places и Things — разные представления одних и тех же проиндексированных объектов. Пользовательские альбомы создаются вручную, People строится по распознанным лицам, географические представления используют координаты и обратное геокодирование, а Things опирается на выбранную модель тегирования. Событийные альбомы объединяют близкие по времени серии, но их генерация запускается отдельно и не равна обычному сканированию каталога.
Административная зона вынесена отдельно от пользовательских настроек. В Profile меняются имя, адрес электронной почты, пароль и язык; Settings управляет поведением конкретного пользователя, включая семантический поиск, запись метаданных, интервал слайд-шоу и параметры кластеризации лиц; Admin Area содержит глобальные переключатели регистрации и загрузки, выбор моделей, геокодирование, карты, пользователей и серверные сведения.

LibrePhotos работает в браузере, поэтому качество клиентской части зависит и от самого браузера: актуальный движок нужен для корректной работы сетки, lightbox, клавиатурной навигации и медиа. При выборе клиента для старого компьютера можно свериться с материалом GeekHow про браузеры для Windows, но серверная часть LibrePhotos от этого не меняется.
Основные функции и как они связаны
Сканирование существующей фототеки
Базовый сценарий LibrePhotos начинается не с ручной загрузки каждой фотографии, а с Scan Directory. Администратор назначает пользователю каталог, доступный внутри контейнера, после чего сервер индексирует содержимое. При первом запуске мастер предлагает объединять пары RAW+JPEG; эта опция включена по умолчанию и оставляет оба файла в библиотеке, связывая их как варианты одной фотографии. Благодаря этому архив остаётся файловой системой, а LibrePhotos становится индексом и интерфейсом поверх неё.
Такой подход особенно уместен для NAS и больших домашних архивов: исходная папка уже существует, а приложение добавляет поиск и представления. Обратная сторона — необходимость внимательно настроить bind mount, путь внутри контейнера и права доступа. Если диск физически отключён или каталог смонтирован не туда, проблема проявляется на уровне сервера, а не в интерфейсе альбомов. При выборе носителя для большой библиотеки имеет смысл отдельно оценить внешние жёсткие диски, поскольку LibrePhotos не заменяет сам накопитель и не создаёт за пользователя полноценную стратегию хранения оригиналов.
Загрузка через браузер
Веб-загрузка дополняет сканирование. Кнопка Upload находится в правом верхнем углу и принимает несколько файлов за один выбор. Сервер проверяет сочетание хэша файла и пользователя, передаёт данные частями по 1 МБ, сохраняет их в подпапку uploads/web внутри пользовательского Scan Directory и после завершения ставит в очередь извлечение метаданных, миниатюры, подпись, геолокацию, даты альбомов и лица. Полный скан каталога для каждого такого файла не запускается.
У загрузки два обязательных условия: глобальный переключатель Allow uploads и корректный Scan Directory для конкретного пользователя. Когда каталог не назначен, кнопка отключена; когда путь настроен, но отсутствует в контейнере, передача завершается ошибкой и файл не сохраняется. Это делает поведение предсказуемым и одновременно подчёркивает серверную природу LibrePhotos.
Поиск по тексту, метаданным и смыслу
Spotlight открывается через Ctrl+K в Windows/Linux, Cmd+K в macOS, а также через Ctrl/Cmd+P или клавишу /. Он работает и как поиск, и как навигационная палитра, и как запускатор действий: отсюда доступны страницы библиотеки, Settings, Profile, Library, Admin Area, Scan, Rescan, Train faces и генерация событий.
Обычный поиск сопоставляет текст с подписями, именами людей, географическими названиями, XMP Subject и IPTC Keywords, путями, камерой, объективом, типом файла и фрагментами даты в ISO-формате. Семантический режим добавляет поиск по смысловому содержанию изображения. В пользовательских Settings он по умолчанию выключен; доступны Top 10, Top 50 и Top 100. Документация отдельно предупреждает, что первый семантический поиск после включения требует заметно больше времени, чем последующие.
Распознавание лиц
Современный конвейер лиц основан на InsightFace: SCRFD находит области лиц, ArcFace формирует 512-мерные представления, а кластеризация и классификация связывают их с людьми. Если исходный файл или sidecar уже содержит XMP RegionInfo с размеченными лицами, LibrePhotos использует эти области вместо повторного детектирования. Это полезно при миграции из Lightroom, digiKam или XnView, где сведения о лицах уже записаны в XMP.
Face Dashboard разделён на Inferred, Unknown и Labeled. Сначала пользователь подписывает несколько лиц, затем Train faces группирует и сопоставляет неизвестные области с известными людьми. Ошибочно найденное «лицо» удаляется из интерфейса необратимо: последующий Re-scan faces не возвращает удалённую область. Это редкий пример функции, где осторожность важнее скорости очистки.
Автоматические подписи, теги и похожие фотографии
LibrePhotos хранит машинно созданные подписи и результаты тегирования отдельно от пользовательских тегов. В Admin Area выбирается Captioning Model, а Tagging Model переключается между Places365 и SigLIP 2. При смене модели ранее созданные теги не удаляются; интерфейс показывает результаты активной модели. Похожие фотографии строятся на векторных представлениях и помогают перейти от отдельного кадра к визуально близким объектам.
Для подписей предусмотрено дополнительное улучшение через локально выбираемый Large Language Model. В пользовательских настройках можно отдельно разрешить добавление распознанных имён людей и географических данных в контекст подписи. Эти переключатели выключены по умолчанию, поэтому обычная установка не начинает автоматически включать личные имена и местоположение в текстовые описания.
Альбомы и публичные ссылки
Ручной User Album — основной способ собрать произвольную подборку без перемещения файлов на диске. Отдельно существуют альбомы людей, мест, вещей и событий. Для пользовательского альбома доступен общий доступ другим аккаунтам экземпляра и публичная ссылка без входа. Публичная ссылка получает slug, а в расширенных настройках задаётся срок действия 7, 30 или 90 дней либо бессрочный режим.
Приватность публичного альбома настраивается по пяти типам сведений: местоположение, камера, время, подписи и распознанные лица. Эти параметры важнее декоративной настройки ссылки: фотография семейного события без EXIF выглядит безобидно, а тот же кадр с координатами и именами людей раскрывает существенно больше данных.
Дубликаты
LibrePhotos различает точные и визуальные дубликаты. Для точных копий используется MD5, для визуальной близости — 64-битный perceptual hash. Визуальный режим имеет чувствительность Strict, Normal и Loose; чем свободнее порог, тем больше похожих, но не обязательно одинаковых кадров попадает в группы. Поэтому серия из нескольких ракурсов требует ручного просмотра, даже когда автоматический детектор считает их близкими.
Разрешённую группу можно вернуть командой Revert & Restore Photos: файлы восстанавливаются из корзины, а группа снова становится Pending. Действие Not a Duplicate устроено иначе: оно отвязывает объекты, и обратной команды в интерфейсе нет. Эта асимметрия — одна из причин начинать очистку с точных копий и строгого режима.
Метаданные и неразрушающие изменения
По умолчанию Synchronize metadata to disk установлен в Off. В таком режиме, например, поворот кадра меняет запись в базе LibrePhotos и миниатюры, а оригинальный файл остаётся байт-в-байт прежним. Режим Save to media file записывает итоговое значение в исходный медиафайл, а Save to sidecar переносит его в XMP sidecar. Эта настройка меняет характер сервиса: из чистого индекса LibrePhotos превращается в инструмент, который способен сохранять часть правок обратно в библиотеку.
Отдельная опция Write face tags to image files записывает разметку лиц как XMP MWG-RS. Она выключена по умолчанию. Для переносимости между каталогизаторами это сильная функция, но включать её стоит только после выбора политики метаданных: перенос в sidecar проще откатить и сравнить, чем изменение исходного файла.
Видео
Видео входят в медиатеку и имеют отдельное представление Videos Only. Для несовместимых браузерных кодеков существует экспериментальная опция Always transcode videos: сервер по требованию создаёт H.264-копию. При первом воспроизведении такой ролик ещё не имеет готовой продолжительности для браузера, поэтому перемотка недоступна; после завершения и сохранения транскодированной копии последующие просмотры получают обычную шкалу времени. Производные файлы занимают дополнительное дисковое пространство, а их кэш ограничивается серверной настройкой.
Задача → инструмент → результат → что проверить
| Задача | Инструмент LibrePhotos | Результат | Что проверить |
|---|---|---|---|
| Подключить старый архив без ручной загрузки | Scan Directory + Scan | Проиндексированная лента и папки | Путь контейнера, количество найденных файлов, даты |
| Добавить новые файлы из браузера | Upload | Файлы в uploads/web и фоновые задания обработки | Файл появился в Recently Added и сохранился на постоянном диске |
| Найти снимок по человеку, камере или папке | Spotlight и текстовый поиск | Отфильтрованная выдача | Сопоставление с EXIF, именем или путём |
| Найти изображение по смыслу | Semantic Search | Векторные совпадения | Режим включён в Settings и выдача соответствует содержанию |
| Собрать семейную подборку | User Album | Логическая коллекция без переноса оригиналов | Количество объектов и обложка альбома |
| Показать альбом человеку без аккаунта | Public sharing | Публичная ссылка | Срок действия и видимость координат, камеры, дат, подписей, лиц |
| Организовать библиотеку по людям | Face Dashboard + Train faces | People albums и предложения совпадений | Ошибочные совпадения до подтверждения |
| Сократить точные копии | Duplicate Detection: Exact | Группы идентичных файлов | Какой вариант выбран для сохранения |
| Найти похожие кадры серии | Duplicate Detection: Visual | Группы визуально близких файлов | Ложные совпадения на сериях и разных ракурсах |
| Сделать метаданные переносимыми | Save to sidecar и XMP face tags | Изменения вне базы LibrePhotos | Появление sidecar и корректное чтение другим каталогизатором |
Карта форматов и совместимости
LibrePhotos не публикует короткий перечень из нескольких расширений, потому что загрузчик ориентирован на типы image и video, а серверная обработка опирается на специализированные библиотеки для обычных изображений, RAW и видео. Практически важнее не расширение само по себе, а роль файла в библиотеке: основной медиафайл, вариант, sidecar или производная копия.
| Тип данных | Импорт | Как отображается | Сохранение/выгрузка | Переносимость |
|---|---|---|---|---|
| Обычная фотография | Scan Directory или Upload | Timeline, Folders, Albums, Search | Скачивается как оригинальный вариант; часть метаданных может записываться обратно | Высокая, оригинал остаётся обычным файлом |
| RAW | Сканирование поддерживается | Как фото; при связке RAW+JPEG показывается как вариант | Варианты включаются в архив скачивания | Исходный RAW сохраняется |
| RAW+JPEG | Может объединяться при сканировании; настройка включена по умолчанию | Одна логическая фотография с несколькими форматами | Скачивание включает варианты | Оба исходных файла остаются отдельными объектами на диске |
| Live Photo и связанные варианты | Поддерживаются как file variants | Связанный набор медиа | Скачивание включает варианты | Структура сохраняется лучше, чем при экспорте только JPEG |
| Видео | Scan или Upload | В общей ленте и Videos Only | Оригинал остаётся источником; для просмотра может создаваться H.264-копия | Оригинальный видеофайл не заменяется кэшем просмотра |
| XMP sidecar | Читается в поддерживаемых сценариях метаданных и лиц | Влияет на keywords, лица и другие поля | Save to sidecar записывает изменения отдельно от оригинала | Подходит для обмена метаданными с другими каталогизаторами |
LibrePhotos не является конвертером форматов. Его «экспорт» — это в первую очередь скачивание оригинальных файлов и их вариантов, а также запись части метаданных в медиафайл или sidecar. Когда нужен новый JPEG, TIFF, WebP или художественно обработанный результат, задачу лучше передать редактору или конвертеру. Для выбора такого инструмента пригодится обзор GeekHow с фоторедакторами для ПК.
Матрица сохранности результата
| Действие | Что сохраняется | Что меняется или теряется | Обратимость | Открытие вне LibrePhotos |
|---|---|---|---|---|
| Добавление в User Album | Оригинальный файл и его путь | Только связь в базе альбома | Да, удаление из альбома не удаляет фото | Сам альбом не переносится без отдельной миграции базы |
| Hide | Файл на диске | Видимость в основной Timeline | Да, через Show | Другие приложения по-прежнему видят файл |
| Поворот при Metadata Off | Байты оригинала | Ориентация в базе и миниатюры | Да, последовательными поворотами | Внешнее ПО увидит исходную ориентацию |
| Save to sidecar | Оригинальный медиафайл | Создаётся или меняется XMP sidecar | Практически контролируемо через резервную копию sidecar | Другое ПО получает изменения, если читает соответствующие XMP-поля |
| Save to media file | Содержимое изображения сохраняется, но метаданные файла меняются | EXIF/XMP в оригинальном файле | Требует собственной копии исходных метаданных | Изменения читаются напрямую из файла |
| Keep Selected & Trash Others в группе дубликатов | Выбранные экземпляры | Остальные перемещаются в Trash | Да для Resolved через Revert & Restore Photos | До окончательного удаления файлы остаются в системе LibrePhotos |
| Not a Duplicate | Все фотографии | Связь группы дубликатов разрывается | Нет команды отмены в интерфейсе | На сами файлы действие не влияет |
| Удаление ошибочного лица | Исходная фотография | Область лица скрывается и исключается из обучения | Нет восстановления через интерфейс | Исходный кадр остаётся доступен |
Из таблицы видно принципиальное различие между библиотечными действиями и записью в файлы. Альбомы, Hide и поворот при Metadata Off живут в базе LibrePhotos. Save to media file переносит часть состояния в оригинал. Поэтому перед включением записи метаданных стоит убедиться, что исходный архив имеет независимую копию. Если фотографии уже были потеряны на флешке или съёмном носителе, сначала решается задача восстановления фото и видео, а уже затем индексирование в LibrePhotos.
Что перестанет работать первым при сбоях зависимостей
Недоступен сам сервер. Браузерный клиент не содержит автономную копию всей библиотеки: без связи с backend не открываются Timeline, поиск и API. При этом исходные файлы, размещённые в обычной папке на диске, не превращаются в proprietary-контейнер и остаются доступными средствами файловой системы.
Пропал Scan Directory. Сканирование перестаёт видеть архив, а веб-загрузка блокируется или отклоняется. Это один из первых симптомов неправильного bind mount, смены пути, отключённого диска или недостаточных прав. Структура альбомов в базе не чинит физическую недоступность исходника.
Не работают фоновые задания машинного обучения. Просмотр уже проиндексированных фотографий остаётся отдельной задачей, а новые подписи, лица, теги и другие вычисляемые данные перестают обновляться. В Admin Area есть Worker Logs, по которым видно прогресс серверных заданий.
Недоступен внешний картографический провайдер. Фотографии и их GPS остаются в библиотеке, но карта и обратное геокодирование не дают полноценного результата. Map Tiles можно переключить на другой источник или None. По умолчанию фон карты загружается со стороннего источника, поэтому открытие карты раскрывает выбранному провайдеру приблизительную географию показываемой области.
Нет внешнего интернета, но локальная сеть и сервер работают. Основная локальная библиотека остаётся доступной через адрес собственного экземпляра. Функции, которым нужны удалённые карты либо первоначальная загрузка выбранной модели, зависят от внешней связи. Это отличается от SaaS-фотосервиса: потеря доступа к чужому облаку не лишает владельца файловой папки с оригиналами.
Приватность, безопасность и зависимость от интернета
Главное приватностное свойство LibrePhotos следует из архитектуры self-hosted: фотографии и служебные метаданные хранятся на сервере владельца, а не на центральном облаке LibrePhotos. Но «self-hosted» не означает автоматическую изоляцию каждого внешнего компонента. Карты загружаются от выбранного Map Tiles провайдера; интерфейс прямо предупреждает, что открытие карты сообщает этому провайдеру приблизительное местоположение отображаемых фотографий. Для максимального ограничения внешних обращений карту разрешается отключить выбором None.
Публичные альбомы требуют отдельного внимания. Ссылка работает без аккаунта, поэтому её следует считать доступом к выбранной подборке, а не просто удобным способом навигации. В Sharing настраиваются срок действия и пять категорий данных: location, camera info, timestamps, captions и recognized faces. Для семейных архивов координаты и лица часто чувствительнее самого кадра, поэтому эти переключатели нужно оценивать для каждого публичного альбома.
Управление пользователями локальное. Администратор может разрешить или запретить публичную регистрацию; почтовое восстановление пароля работает только после настройки исходящей почты и наличия e-mail у аккаунта. Администратор также назначает Scan Directory. Это означает, что защита медиатеки зависит не только от LibrePhotos, но и от паролей, прав каталогов, Docker-конфигурации и того, как сервер опубликован в сети.
Если экземпляр доступен только дома, браузеру достаточно связи с локальным сервером. Публикация его в интернет добавляет обычные обязанности владельца self-hosted приложения: своевременное обновление контейнеров, ограничение административного доступа, корректная настройка обратного прокси и шифрования транспорта. LibrePhotos предоставляет приложение и серверные компоненты, но не продаёт управляемый хостинг, который берёт эти обязанности на себя.
Производительность и требования без вымышленных замеров
Числа «столько-то фотографий в минуту» для LibrePhotos нельзя корректно назвать универсальными: время сканирования зависит от CPU, числа файлов, RAW, видео и выбранных моделей. Подтверждённые ориентиры проекта относятся к ресурсам: минимум 4 ГБ RAM и 2 ядра, рекомендация 8 ГБ+ и 4+ ядра, SSD для служебных данных. Машинное обучение прямо обозначено как памятьёмкое.
Самая тяжёлая часть запуска большой библиотеки — не отрисовка веб-страницы, а фоновые конвейеры: метаданные, миниатюры, лица, подписи, геолокация и векторные данные. Поэтому после первого Scan разумно оценивать не только появление фотографий в Timeline, но и Worker Logs. Если сервер продолжает обработку, отсутствие готовых People или смысловой выдачи ещё не означает потерю файлов.
Семантический поиск по умолчанию выключен. После включения первый поиск способен занять около минуты по документации, затем последующие ответы формируются быстрее. Это хороший пример функции, у которой вычислительная цена проявляется при подготовке индекса и модели, а не в каждом переходе по Timeline.
Стоимость, лицензирование и инфраструктурные расходы
LibrePhotos распространяется по MIT License и не делится на платную Pro-редакцию и урезанную бесплатную версию. Отдельного пробного периода тоже не требуется: пользователь устанавливает открытый серверный код. Денежная стоимость появляется вокруг приложения — накопители, резервные копии, электричество, доменное имя, сервер или NAS, а при публикации наружу ещё и обслуживание инфраструктуры.
Вторая составляющая цены — время администратора. Docker сам по себе не отменяет проверку каталогов, обновления, доступ к дискам и диагностику фоновых сервисов. Для пользователя, которому нужен сервис «войти и сразу увидеть все фото», управляемое облако может оказаться дешевле по времени, даже если ежемесячно стоит денег. LibrePhotos выигрывает там, где контроль данных и self-hosting уже являются сознательными требованиями.
Как пользоваться программой — советы гика
1. Подключить существующую библиотеку и выполнить первый Scan
Цель. Проиндексировать уже существующую папку без ручной загрузки каждой фотографии. Подготовка. До входа в мастер контейнер должен видеть каталог с фотографиями, а пользователь — иметь назначенный Scan Directory.
- При первом входе создайте административный аккаунт в мастере.
- На этапе Site Settings установите нужные значения Allow Upload и Allow Registration и нажмите Continue.
- На этапе Configure Your Scan Directory оставьте Stack RAW+JPEG pairs включённым, если RAW и JPEG одного кадра должны отображаться как связанные варианты.
- В Scan Directory выберите каталог из дерева либо введите путь, видимый внутри контейнера.
- Нажмите Save. Сохранение параметров запускает первоначальное сканирование.
- После перехода в основной интерфейс откройте Timeline и Folders и сверяйте появившиеся даты и папки с исходным архивом.
Проверка результата. В Timeline появляются медиа, а Folders показывает проиндексированные каталоги. Типичная ошибка. Путь хоста путают с путём внутри контейнера, из-за чего файловое дерево не соответствует ожидаемому. Безопасный откат. Измените Scan Directory через Library и повторите Scan; исходные фотографии от одного только сканирования не перемещаются.
2. Загрузить новые файлы через веб-интерфейс
Цель. Добавить несколько фотографий или видео без копирования в папку вручную. Подготовка. Администратор должен включить Allow uploads и назначить вашему аккаунту существующий Scan Directory.
- В правом верхнем углу основной галереи нажмите кнопку Upload.
- В системном диалоге выберите один или несколько файлов изображений или видео.
- Дождитесь завершения передачи. LibrePhotos отправляет файлы частями, проверяет дубликат по хэшу и регистрирует каждый успешно загруженный объект.
- Откройте Recently Added и найдите новый файл.
- При необходимости откройте фото и информационную панель, чтобы убедиться, что извлечены дата, камера и другие доступные поля.
Проверка результата. Файл находится в uploads/web внутри Scan Directory и появляется в медиатеке после фоновой обработки. Типичная ошибка. Серая кнопка Upload означает, что Scan Directory для аккаунта не настроен; отсутствие кнопки обычно связано с выключенным Allow uploads. Безопасный откат. Переместите ошибочно добавленный объект в Trash, не меняя остальные файлы библиотеки.
3. Просматривать, помечать и поворачивать фотографии
Цель. Разобрать отдельные кадры без изменения структуры папок. Подготовка. Дождитесь появления фотографий в Timeline.
- Откройте фотографию из Timeline — она появится в lightbox.
- Используйте стрелки клавиатуры или свайп для перехода между соседними кадрами.
- Нажмите звезду, чтобы добавить кадр в Favorites, либо глаз, чтобы скрыть его из основной Timeline.
- Для неправильной ориентации нажимайте Rotate clockwise или Rotate counter-clockwise; каждый шаг равен 90 градусам.
- Откройте Toggle info panel и проверьте, что имя файла и EXIF соответствуют выбранному кадру.
Проверка результата. Favorite появляется в соответствующем представлении, Hidden исчезает из основной ленты, поворот виден на миниатюрах и в lightbox. Типичная ошибка. Пользователь ожидает, что поворот всегда изменит оригинал; при стандартном Metadata Off он хранится только в базе и миниатюрах. Безопасный откат. Снимите Favorite/Hidden повторным действием, а ориентацию верните последовательными поворотами до исходного положения.
4. Найти фотографию через Spotlight и семантический поиск
Цель. Перейти к фотографии по человеку, месту, метаданным или смыслу изображения. Подготовка. Для смысловой выдачи предварительно откройте Settings и измените Semantic Search с Disabled на Top 10, Top 50 или Top 100.
- Нажмите Ctrl+K в Windows/Linux или Cmd+K в macOS; альтернативно используйте /.
- Начните вводить имя человека, альбом, место или другую поисковую фразу.
- Для полной выдачи выберите Search for ….
- При поиске по дате используйте ISO-фрагмент: год, год-месяц либо полную дату.
- Если включён Semantic Search, сравните смысловые совпадения с обычными совпадениями по тексту и метаданным.
Проверка результата. Найденный объект открывается из выдачи и показывает совпадающие данные в боковой панели. Типичная ошибка. Ожидать смысловые результаты при Disabled: тогда поиск опирается на текстовые поля и метаданные. Безопасный откат. Верните Semantic Search в Disabled — обычный поиск останется доступен.
5. Создать альбом и открыть публичный доступ
Цель. Собрать подборку и, при необходимости, поделиться ею без создания аккаунта получателю. Подготовка. Сначала определите, какие данные допустимо раскрывать вместе с фотографиями.
- В сетке выделите нужные фотографии и через действие добавления выберите Album.
- Введите имя нового User Album и подтвердите создание либо выберите существующий альбом.
- Откройте созданный User Album.
- Нажмите меню с тремя точками, затем в Album Actions выберите Sharing.
- Включите Public sharing.
- Откройте Show settings и задайте slug длиной 3–64 символа, срок действия 7, 30 или 90 дней либо never.
- Отдельно разрешите только те данные, которые получателю действительно нужны: Location, Camera information, Timestamps, Captions, Recognized faces.
- Скопируйте ссылку из Sharing → Links и откройте её в приватном окне браузера для контроля.
Проверка результата. Альбом доступен без авторизации, а скрытые категории метаданных не видны на публичной странице. Типичная ошибка. Открыть ссылку из своей авторизованной сессии и не заметить разницу в правах. Безопасный откат. Выключите Public sharing или уменьшите срок действия и набор отображаемых сведений.
6. Подписать лица и выполнить Train faces
Цель. Получить альбомы людей и автоматические предложения совпадений. Подготовка. Завершите первоначальное сканирование и убедитесь, что лица уже обнаружены.
- Откройте Face Dashboard.
- На неизвестном лице нажмите зелёный плюс и выберите существующего человека либо создайте новое имя.
- Подпишите несколько хорошо различимых лиц каждого человека.
- Нажмите синюю кнопку с иконкой штанги либо откройте Library и нажмите Train в блоке Faces & People.
- Перейдите во вкладку Inferred и проверяйте вероятность каждого предложенного совпадения.
- Подтвердите корректные варианты и отклоните неправильные.
- После добавления новых подтверждённых примеров снова запустите Train faces.
Проверка результата. People album содержит подтверждённые и подходящие выведенные совпадения. Типичная ошибка. Удалить область, которая на самом деле является корректным лицом: Delete face необратим в интерфейсе и Re-scan faces её не возвращает. Безопасный откат. Для сомнительного совпадения используйте отклонение или смену подписи, а Delete оставляйте для явно ложного детектирования.
7. Исправить дату, подпись, теги и географию
Цель. Сделать каталог точнее без перехода в отдельный редактор EXIF. Подготовка. Откройте фотографию и Toggle info panel.
- В Timestamp используйте кнопку редактирования и задайте корректные дату и время.
- В Caption введите собственное описание либо используйте доступное машинное предложение и затем отредактируйте текст.
- В Tags нажмите карандаш, добавьте пользовательские теги через разделитель и подтвердите галочкой.
- Для Keywords отредактируйте XMP/IPTC значения в соответствующем блоке.
- Для Location нажмите карандаш рядом с названием места и выберите корректную точку в Pick location.
- После каждого изменения закройте и снова откройте панель, чтобы убедиться, что значение сохранилось.
Проверка результата. Исправленные поля видны в карточке и участвуют в соответствующем поиске. Типичная ошибка. Считать ручные Tags и автоматические model tags одним и тем же набором: они хранятся раздельно. Безопасный откат. Верните прежнее значение поля; для записи на диск заранее используйте выбранную политику Metadata, описанную ниже.
8. Найти и разобрать дубликаты
Цель. Выявить точные копии или визуально близкие кадры без массового удаления вслепую. Подготовка. Для старой медиатеки после обновления один раз выполните Rescan, чтобы недостающие perceptual hashes были рассчитаны.
- Откройте Organizing → Duplicate Photos.
- В Detection Options сначала выберите Exact и запустите Detect Duplicates.
- В каждой группе оставьте выделенным вариант, который требуется сохранить.
- Для подтверждённой группы примените Keep Selected & Trash Others.
- После точных копий переключитесь на Visual и начните со Strict.
- Просматривайте серии вручную: разные ракурсы и соседние кадры не следует удалять только из-за визуального сходства.
- При ошибочном разрешении группы используйте Revert & Restore Photos.
Проверка результата. В Resolved остаётся выбранный экземпляр, а отправленные в корзину файлы восстановимы через Revert. Типичная ошибка. Нажать Not a Duplicate для группы, которую позже хотелось бы оценить заново; такое отклонение не имеет команды отмены в интерфейсе. Безопасный откат. Для сомнительных групп не меняйте статус до ручного сравнения.
9. Скачать оригиналы и связанные варианты
Цель. Получить файлы из LibrePhotos без преобразования в новый формат. Подготовка. Вернитесь из lightbox в сетку, поскольку отдельной кнопки Download внутри просмотрщика нет.
- Выделите одну или несколько фотографий в галерее.
- Откройте меню действий выделения и выберите Download.
- При необходимости включите Include all photos from stacks, чтобы добавить другие фотографии из связанных стеков.
- Запустите скачивание и дождитесь формирования архива.
- Распакуйте архив и сверяйте имена и варианты файлов с информационной панелью LibrePhotos.
Проверка результата. Для выбранной фотографии в архив попадают её file variants, включая связанные форматы; опция stacks управляет добавлением соседних фотографий стека, а не вариантами самого файла. Типичная ошибка. Искать Download в lightbox и считать его отсутствие запретом на выгрузку. Безопасный откат. Скачивание не меняет серверную библиотеку, поэтому отмена не требуется.
10. Настроить запись метаданных на диск
Цель. Определить, останутся ли изменения только в базе LibrePhotos или станут видимы другим приложениям. Подготовка. Перед изменением режима убедитесь, что критичные оригиналы имеют независимую копию.
- Откройте Settings → Metadata.
- Оставьте Synchronize metadata to disk в Off, если LibrePhotos должен быть максимально неразрушающим каталогом.
- Выберите Save to sidecar, если изменения должны храниться отдельно в XMP.
- Выберите Save to media file только тогда, когда допустима запись метаданных в исходный файл.
- Если требуется перенос разметки лиц, отдельно включите Write face tags to image files.
- Измените тестовое поле на одном некритичном файле и затем откройте его метаданные во втором приложении.
Проверка результата. При Off оригинал не меняется, при Save to sidecar появляется или обновляется XMP, при Save to media file данные записываются в медиафайл. Типичная ошибка. Включить запись лиц и одновременно не проверить выбранный способ синхронизации. Безопасный откат. Верните Off; уже записанные изменения восстанавливаются только из собственной копии исходных метаданных или файла.
11. Использовать LibrePhotos с телефона
Цель. Получить доступ к собственной медиатеке со смартфона. Подготовка. Телефон должен иметь сетевой доступ к вашему экземпляру LibrePhotos.
- Откройте адрес своего LibrePhotos в современном мобильном браузере и войдите под обычным аккаунтом.
- Для Android при необходимости используйте React Native клиент из мобильного компонента проекта.
- После подключения откройте Timeline, затем один альбом и отдельную фотографию.
- Проверьте, что видны те же объекты и действуют те же права аккаунта, что и в настольном браузере.
Проверка результата. Телефон обращается к библиотеке вашего сервера, а не к отдельной независимой облачной коллекции. Типичная ошибка. Считать мобильный клиент отдельным хранилищем и искать в нём фотографии, которые сервер ещё не проиндексировал. Безопасный откат. Удаление клиентского приложения не удаляет серверную библиотеку; доступ сохраняется через веб-интерфейс.
12. Сквозной сценарий: от подключения архива до безопасной публикации альбома
Цель. Получить законченный результат без смешивания сканирования, организации и публикации. Подготовка. Выберите отдельную тестовую папку с несколькими фотографиями, включая один RAW+JPEG, и заранее определите, какие метаданные допустимы в публичной ссылке.
- Назначьте тестовую папку как Scan Directory и оставьте Stack RAW+JPEG pairs включённым.
- Запустите Scan и дождитесь появления кадров в Timeline.
- Откройте RAW+JPEG-кадр и через +N formats убедитесь, что варианты связаны.
- Через Spotlight найдите снимок по году или доступному EXIF-полю.
- Выделите два-три кадра в сетке и создайте User Album.
- Откройте Sharing, включите Public sharing и в Show settings задайте срок действия.
- Отключите отображение тех категорий данных, которые не предназначены получателю.
- Откройте публичную ссылку без авторизации и проверьте фотографии, подписи и информационную панель.
- Вернитесь в обычную библиотеку и скачайте один выбранный кадр через Download, чтобы убедиться, что оригинал и его варианты доступны независимо от публичной страницы.
Проверка результата. Один и тот же исходный архив остаётся на диске, LibrePhotos даёт индекс и альбом, а получатель видит только опубликованную подборку и разрешённые метаданные. Типичная ошибка. Считать публичный альбом заменой резервной копии или экспортом библиотеки. Безопасный откат. Выключите Public sharing и удалите тестовый User Album; исходные фотографии при удалении самого альбома остаются в медиатеке.
Плюсы
- Self-hosted архитектура сохраняет фотографии и основную служебную базу на инфраструктуре владельца, а не в обязательном облачном аккаунте LibrePhotos.
- Сканирование существующей файловой структуры позволяет подключить уже собранный архив без ручного повторного импорта каждого кадра.
- Функции машинного обучения закрывают несколько задач сразу: лица, сцены и объекты, подписи, похожие фотографии и смысловой поиск.
- RAW+JPEG, Live Photos и другие file variants учитываются как связанные представления исходного кадра, а не теряются при просмотре.
- Публичные альбомы имеют срок действия и раздельные переключатели для координат, камеры, дат, подписей и распознанных лиц.
- По умолчанию метаданные не записываются обратно на диск, а при необходимости доступен sidecar-режим.
- Дубликаты разделены на точные и визуальные, а разрешённые группы можно вернуть из корзины.
- MIT License и открытый код не привязывают основную функциональность к коммерческой подписке.
Минусы
- LibrePhotos требует собственного сервера или NAS, Docker и администрирования; это существенно сложнее регистрации в готовом облачном фотосервисе.
- Минимум 4 ГБ RAM и рекомендация 8 ГБ+ делают полноценные ИИ-функции тяжёлыми для слабых одноплатных компьютеров и старых NAS.
- Нативный мобильный клиент в текущем монорепозитории ориентирован на Android, поэтому веб-интерфейс остаётся важной частью мобильного доступа.
- Некоторые действия необратимы из интерфейса: удалённое распознанное лицо не возвращается Re-scan faces, а статус Not a Duplicate не имеет обычной отмены.
- Экспериментальное транскодирование видео создаёт дополнительный кэш и при первом просмотре не даёт полноценной перемотки.
- Self-hosted модель переносит ответственность за обновления, сетевую публикацию, доступ к дискам и резервные копии на владельца экземпляра.
Кому подойдёт
- Владельцу NAS или домашнего сервера, который уже хранит большую фототеку в обычных каталогах и хочет добавить веб-галерею поверх файлов.
- Пользователю, для которого принципиально локальное хранение оригиналов и отсутствие обязательной выгрузки всей медиатеки в сторонний фотосервис.
- Семье или небольшой группе, которой нужны отдельные аккаунты, общие альбомы и публичные ссылки с контролем метаданных.
- Фотографу-энтузиасту с RAW+JPEG и XMP, которому важна совместимость с существующими файлами, а не импорт в закрытую библиотеку.
- Технически подготовленному пользователю, готовому обслуживать Docker, диски и сеть ради контроля над данными.
Кому не подойдёт
- Пользователю, которому нужен фоторедактор со слоями, локальной ретушью, цветокоррекцией и экспортом обработанных изображений в новые форматы.
- Тому, кто не хочет администрировать сервер и ожидает полностью управляемый сервис с готовыми резервными копиями и публичным адресом.
- Владельцу очень слабого NAS с небольшим объёмом RAM, который рассчитывает активно использовать распознавание лиц, подписи и семантический поиск.
- Пользователю, для которого главным сценарием является готовый автоматический мобильный backup с одинаково проработанными Android- и iOS-клиентами.
- Организации, которой требуется готовая коммерческая поддержка с формальными SLA: LibrePhotos — общественный открытый проект, а не пакет управляемого корпоративного сервиса.
Сравнение с другими аналогами
Сравнивать LibrePhotos полезно не с Photoshop, а с self-hosted фотобиблиотеками. Ниже используются одинаковые критерии: задача, платформа, порог освоения, работа с медиа, автоматизация, модель оплаты, ограничения и типичный сценарий.
| Решение | Задача и платформа | Порог освоения | Медиа и автоматизация | Модель оплаты | Ограничения и подходящий сценарий |
|---|---|---|---|---|---|
| LibrePhotos | Self-hosted сервер + браузер; Android-направление | Средний/высокий: Docker, каталог, права | RAW, видео, variants; лица, подписи, теги, семантический поиск, дубликаты | MIT, обязательной подписки на код нет | Подходит для локальной библиотеки поверх существующей файловой структуры |
| Immich | Self-hosted фото- и видеосервис с Android/iOS-клиентами и сервером | Средний: нужен собственный сервер, но мобильный сценарий является центральной частью продукта | Фото, видео, RAW и Motion/Live Photo; backup, лица, Smart Search, дубликаты и внешние библиотеки | Все функции остаются бесплатными; отдельная покупка для пользователя или сервера служит поддержкой проекта и не создаёт paywall | Сильнее там, где приоритет — автоматический телефонный backup и нативные мобильные приложения |
| PhotoPrism | Self-hosted веб-фотокаталог | Средний: Docker и серверная настройка | JPEG, PNG, HEIC, JPEG XL, RAW, видео и Live Photos; лица, подписи, дубликаты, scheduled indexing и поиск | Community — бесплатно; Personal Essentials стоит €2 в месяц, Plus — от €6 в месяц, есть управляемый вариант | Подходит пользователю, которому нужна близкая по классу фотогалерея с бесплатной редакцией и официальными платными уровнями |
| Nextcloud Memories | Self-hosted фотоприложение внутри Nextcloud | Средний, если Nextcloud уже есть; высокий, если его нужно разворачивать с нуля | Фото и видео; Timeline, альбомы, карта, лица через интеграции, редактирование EXIF и автоматическая мобильная загрузка Nextcloud | Бесплатное открытое приложение для собственной инсталляции Nextcloud | Рационально, когда фотографии должны жить в одной системе вместе с остальными файлами Nextcloud |
LibrePhotos выигрывает у этих вариантов не универсально, а в конкретной логике: существующая файловая фототека остаётся главным источником, а веб-приложение добавляет анализ и представления. Immich разумнее при мобильном backup как главном сценарии. Nextcloud Memories естественнее для уже развернутого Nextcloud. PhotoPrism интересен тем, кому нужна близкая по назначению галерея с формализованными платными уровнями и управляемым вариантом.
Типичные проблемы и диагностика
1. Кнопка Upload серая
Симптом: Upload видна, но недоступна. Причина: аккаунту не назначен Scan Directory. Диагностика: наведите курсор на кнопку и проверьте сообщение о ненастроенном каталоге. Исправление: администратор назначает существующий Scan Directory пользователю. Проверка: кнопка становится активной, а тестовый файл успешно появляется в Recently Added.
2. Кнопки Upload нет вообще
Симптом: в правом верхнем углу отсутствует действие загрузки. Причина: глобальный Allow uploads выключен. Диагностика: администратор открывает Admin Area и проверяет переключатель. Исправление: включить Allow uploads в самой административной зоне; сохранённое в базе значение имеет приоритет над стартовой переменной окружения. Проверка: после обновления интерфейса Upload появляется.
3. Upload заканчивается ошибкой Scan directory does not exist
Симптом: передача начинается, но финал возвращает ошибку каталога. Причина: записанный путь не существует внутри backend-контейнера. Диагностика: сравните пользовательский Scan Directory с фактическим bind mount и существованием каталога на хосте. Исправление: скорректировать mount или путь, не создавая случайную пустую папку в неправильном месте. Проверка: повторная загрузка сохраняет файл в постоянный каталог.
4. Загруженные файлы исчезают после пересоздания контейнера
Симптом: Upload был успешным, после пересоздания контейнера новые файлы пропали. Причина: data root не был привязан к постоянному каталогу хоста. Диагностика: проверьте, что серверный /data действительно является bind mount, а не временной файловой системой контейнера. Исправление: подключить постоянный каталог хоста к /data и использовать его как основу Scan Directory. Проверка: тестовая загрузка остаётся после штатного пересоздания контейнера.
5. Контейнер видит папку, но не может читать или записывать файлы
Симптом: каталог отображается, но Scan пропускает данные либо Upload получает permission error. Причина: права владельца и группы не дают процессу контейнера требуемого доступа. Диагностика: проверьте права на хосте и фактического пользователя процесса. Исправление: предоставить минимально необходимый доступ к целевому каталогу. Проверка: сервер читает существующий файл и записывает отдельный тестовый объект без ошибки.
6. В старой библиотеке не находятся визуальные дубликаты
Симптом: Visual Duplicate Detection почти ничего не показывает после обновления старого экземпляра. Причина: у ранее индексированных объектов отсутствует perceptual hash. Диагностика: проблема характерна именно для старой проиндексированной библиотеки после появления соответствующего поля. Исправление: один раз выполнить Rescan, чтобы заполнить pHash. Проверка: новый запуск Visual формирует группы по выбранной чувствительности.
7. Семантический поиск даёт только обычные текстовые совпадения
Симптом: смысловая фраза не находит визуально подходящие кадры, хотя EXIF-поиск работает. Причина: Semantic Search оставлен в Disabled. Диагностика: откройте Settings → Semantic Search. Исправление: выбрать Top 10, Top 50 или Top 100 и дождаться подготовки первого ответа. Проверка: в выдаче появляются результаты, основанные не только на буквальных текстовых полях.
8. Faces не улучшается после нескольких подписанных кадров
Симптом: новые лица подписаны, но Inferred почти не меняется. Причина: после разметки не запускался Train faces либо примеров для человека слишком мало. Диагностика: проверьте вкладки Face Dashboard и состояние задания обучения. Исправление: подписать несколько характерных лиц каждого человека и выполнить Train faces, затем подтвердить верные предложения и повторить обучение. Проверка: Inferred показывает новые сопоставления с вероятностями.
9. Удалённое лицо не возвращается после Re-scan faces
Симптом: область была удалена как ложная, но позже понадобилась обратно. Причина: Delete face помечает запись удалённой и исключает область из повторного детектирования; отмены в интерфейсе нет. Диагностика: вспомните, применялось ли именно удаление, а не отклонение совпадения. Исправление: штатного пользовательского восстановления этой области нет; избегайте Delete для сомнительных случаев. Проверка: Re-scan корректно находит новые области, но удалённую не создаёт повторно.
10. Видео воспроизводится, но при первом запуске не перематывается
Симптом: у первого воспроизведения отсутствует рабочая шкала длительности. Причина: включён экспериментальный Always transcode videos, а H.264-копия ещё формируется. Диагностика: проверьте настройку транскодирования и состояние фоновой обработки. Исправление: дождаться завершения создания производной копии либо отключить Always transcode videos, если браузер и так поддерживает исходный файл. Проверка: последующий запуск готовой транскодированной версии имеет длительность и перемотку.
При серверных сбоях полезно смотреть не только на сообщение браузера, но и на журналы сервисов. Базовые принципы чтения журналов разобраны в материале GeekHow про log-файлы Linux: сначала фиксируется время ошибки и конкретный сервис, затем сопоставляются события контейнера, диска и сети.
FAQ
LibrePhotos редактирует фотографии как Lightroom или Photoshop?
Нет. Его основная задача — каталогизация, поиск, альбомы, лица, метаданные и просмотр. Поворот и редактирование отдельных полей не превращают LibrePhotos в растровый редактор с локальными коррекциями и слоями.
Нужно ли переносить весь архив в специальную библиотеку LibrePhotos?
Нет. Основной режим строится вокруг Scan Directory: сервер индексирует обычную папку, видимую внутри контейнера. Веб-загрузка складывает новые объекты в подпапку uploads/web внутри этого же пользовательского каталога.
LibrePhotos хранит фотографии в облаке разработчиков?
Нет. Архитектура self-hosted хранит фотографии и метаданные на вашем экземпляре. Отдельные внешние функции, например картографическая подложка, обращаются к выбранному провайдеру, поэтому полной сетевой изоляцией self-hosting сам по себе не является.
Можно ли использовать LibrePhotos только в домашней сети?
Да. Веб-клиенту нужен доступ к собственному серверу, а не к центральному аккаунту LibrePhotos. Карты и получение отсутствующих моделей относятся к отдельным внешним зависимостям.
Что происходит с RAW+JPEG?
В первом мастере Stack RAW+JPEG pairs включён по умолчанию. Пара отображается как связанная фотография с несколькими вариантами, при этом оба исходных файла остаются в библиотеке.
Можно ли скачать именно оригиналы?
Да. Download вызывается для выделенных объектов в сетке, а file variants выбранной фотографии включаются в архив. LibrePhotos не обязан сначала преобразовывать их в единый новый формат.
Есть ли автоматическое распознавание людей?
Да. Сервер обнаруживает лица, формирует векторные представления, группирует неизвестные лица и сопоставляет их с уже подписанными людьми. Для качественной организации требуется ручное подтверждение и Train faces.
Можно ли полностью отключить запись в оригинальные файлы?
Да. Synchronize metadata to disk по умолчанию установлен в Off. В этом режиме изменения, подобные повороту, остаются в базе и миниатюрах LibrePhotos. Для переноса метаданных отдельно выбираются Save to sidecar или Save to media file.
Можно ли пользоваться LibrePhotos с телефона без отдельного облака?
Да. Телефон подключается к вашему серверному экземпляру через веб-интерфейс, а в текущем монорепозитории также есть React Native мобильный клиент для Android. Фототека и фоновые вычисления остаются на серверной стороне.
Нужна ли платная подписка для распознавания лиц и семантического поиска?
Отдельной платной редакции LibrePhotos для этих функций нет: проект распространяется по MIT License и выполняет серверные вычисления на инфраструктуре владельца. Фактические расходы связаны с сервером, дисками и обслуживанием.
Удаление альбома удаляет фотографии?
Нет. Удаление User Album удаляет саму логическую подборку, а фотографии остаются в библиотеке. Это отличается от перемещения фотографии в Trash.
Итог
LibrePhotos имеет смысл выбирать как серверный слой над уже существующим фотоархивом. Для владельца NAS или Linux-сервера его сильная сторона — сочетание обычной файловой структуры с Timeline, People, Albums, поиском и локальными моделями машинного обучения. В этом сценарии приложение добавляет возможности каталога, не требуя превращать исходники в закрытое облачное хранилище.
Для семейной библиотеки особенно полезны User Albums, публичные ссылки с отдельным контролем метаданных и распознавание лиц. При этом публичность нужно настраивать осознанно: координаты, даты и имена людей раскрывают больше, чем сама сетка превью. Для архива с RAW+JPEG и XMP ценность даёт поддержка file variants и sidecar, поскольку LibrePhotos может сосуществовать с другими каталогизаторами.
Если главная цель — автоматический мобильный backup с одинаково зрелыми Android- и iOS-клиентами, Immich выглядит естественнее. Если вся домашняя инфраструктура уже построена на Nextcloud, Memories сокращает число отдельных сервисов. Если нужен именно редактор фотографий, LibrePhotos относится к другой категории и не должен подменять инструмент обработки.
Главный компромисс LibrePhotos — контроль в обмен на администрирование. Код бесплатен, но владелец отвечает за Docker, диски, права, обновления и сетевую доступность. Для пользователя, который уже готов к этой модели, LibrePhotos даёт предметный набор функций фотокаталога без обязательного переноса личного архива на сервер коммерческого провайдера.





















