SSD Nodes Learn 8GB RAM — $66/год
Руководства Matt ConnorАвтор: Matt Connor · Обновлено 2026-08-01

PhotoPrism или Immich: какой фотосервер выбрать

Сравните PhotoPrism и Immich: минимальный объём RAM, приложения для телефона, карты, резервное копирование и точные команды Docker для VPS.

PhotoPrism и Immich: краткий ответ

PhotoPrism и Immich решают разные задачи, а не являются двумя версиями одного продукта. Immich заменяет Google Photos: приложение на телефоне автоматически создаёт резервные копии фотографий с камеры, а получаемая временная шкала знакома всем, кто отказывается от галереи на телефоне. PhotoPrism организует уже существующую библиотеку фотографий: он индексирует папки с файлами на диске, считывает их метаданные, размещает фотографии на карте и оставляет файлы там, где они находились.

Выбирайте Immich, если проблема сформулирована так: «На телефоне не хватает места, и я хочу отказаться от Google Photos». Выбирайте PhotoPrism, если проблема сформулирована так: «У меня на диске 400 GB фотографий, и я не могу найти среди них нужные». Оба продукта имеют открытый исходный код, работают в виде контейнеров Docker на обычном VPS, а также индексируют и ищут файлы в вашей библиотеке, не отправляя их сторонним компаниям.

Различие в принципах работы и почему оно определяет всё

Immich управляет файлами. Вы указываете ему каталог для загрузки, приложение на телефоне или веб-загрузчик передаёт оригиналы, а Immich сохраняет их в собственном пути и присваивает им собственные имена. В базе данных хранятся сведения об альбомах, лицах и поиске. Именно такая архитектура обеспечивает удобную работу на телефоне: сервер всегда знает полное состояние каждого объекта.

PhotoPrism читает файлы. Вы подключаете каталог originals, которым уже управляете, а PhotoPrism создаёт по нему индекс. Структура каталогов остаётся под вашим контролем. Если завтра вы удалите PhotoPrism, фотографии останутся в тех же каталогах с теми же именами, а PhotoPrism будет записывать рядом с ними сопутствующие YAML-файлы с описанием полученных данных.

Это единственное различие объясняет большую часть остальных отличий. Immich хорошо поддерживает мобильные устройства, потому что управляет приёмом файлов. PhotoPrism хорошо подходит для упорядочивания библиотеки, потому что не изменяет существующую структуру. Immich лучше подходит семье, чьи фотографии хранятся на телефонах. PhotoPrism лучше подходит для архива, который хранится на диске.

Требования к ресурсам: Immich требует больше

Задокументированные минимальные требования к памяти сильно различаются. Для небольшого VPS это обычно решающий фактор.

ChartDocumented memory requirement, as of July 2026
The data behind this chart
[
  {
    "label": "Immich",
    "min_ram_gb": 6,
    "recommended_ram_gb": 8
  },
  {
    "label": "PhotoPrism",
    "min_ram_gb": 3,
    "recommended_ram_gb": 4
  }
]

В документации Immich указано 6 ГБ RAM как минимальное требование и 8 ГБ как рекомендуемое. Также отмечается, что на машине с 4 ГБ приложение может работать только при отключённом машинном обучении. В документации PhotoPrism указано 3 ГБ физической памяти и 2 ядра CPU. При этом количество RAM должно соответствовать числу ядер.

Разница существенна. Она связана с контейнером машинного обучения. Immich запускает модели в отдельном сервисе immich-machine-learning, который загружает в память модели CLIP (contrastive language image pretraining) и распознавания лиц. На машине с 2 ГБ ядро завершает работу этого контейнера. В Docker это отображается как завершение с кодом 137, что означает завершение из-за нехватки памяти. Модели TensorFlow в PhotoPrism меньше, поэтому приложение работает в ограниченном режиме, а не завершается. На машинах с 1 ГБ или менее оно отключает преобразование RAW и TensorFlow, вместо того чтобы аварийно завершаться.

Оба проекта требуют swap. В документации PhotoPrism прямо указано, что на сервере должно быть не менее 4 ГБ swap. Добавьте swap до установки любого из этих приложений.

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
free -h

free -h теперь должна вывести строку Swap: со значением 4.0Gi. Если выводится 0B, значит, swapon завершилась с ошибкой. Обычно это происходит потому, что файловая система не поддерживает fallocate. В таком случае используется sudo dd if=/dev/zero of=/swapfile bs=1M count=4096. Ограничения памяти контейнеров также важны. Настройка ограничений памяти в Docker Compose не позволяет одному сервису с высоким потреблением памяти остановить работу всей машины.

Есть ещё одно требование, которое часто упускают. База данных Postgres в Immich должна находиться на обычной файловой системе Unix с реальными владельцами и разрешениями, на локальном хранилище, а не на сетевом ресурсе. PhotoPrism предъявляет такое же требование к файлам базы данных. Ни одно из приложений нельзя безопасно запускать, если его база данных находится на подключённом объектном хранилище.

Как установить каждый вариант

В обоих случаях используется compose-файл от разработчика и одна команда. Сначала установите Docker Engine и плагин Compose, как описано в нашем руководстве по Docker Compose на VPS.

Immich публикует compose-файл и пример файла окружения с каждым выпуском.

sudo mkdir -p /opt/immich && cd /opt/immich
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env

Перед запуском измените .env. В UPLOAD_LOCATION будут храниться исходные файлы, а DB_PASSWORD необходимо изменить со значения по умолчанию, используя только символы A-Za-z0-9, поскольку специальные символы нарушают строку подключения. Затем запустите приложение.

docker compose up -d
docker compose ps

Веб-интерфейс доступен на порту 2283. Первая учетная запись, зарегистрированная через эту страницу, получает права администратора. Поэтому сразу откройте страницу и зарегистрируйтесь, не оставляя работающий экземпляр доступным из интернета.

PhotoPrism поставляется с одним compose-файлом, который уже включает MariaDB.

sudo mkdir -p /opt/photoprism && cd /opt/photoprism
wget https://dl.photoprism.app/docker/compose.yaml

Откройте compose.yaml и измените PHOTOPRISM_ADMIN_PASSWORD до первого запуска. В документации это указано прямо: приложение запускается с исходным паролем из этого файла, минимальная длина пароля составляет 8 символов, а значение по умолчанию нельзя использовать на публичном сервере. Одновременно укажите для тома originals папку с фотографиями.

docker compose up -d
docker compose logs -f photoprism

PhotoPrism доступен на порту 2342 с пользователем admin. Ни одно из приложений не следует напрямую выставлять в интернет. Разместите перед ним обратный прокси с TLS (защита транспортного уровня), используя ту же схему, что и в руководстве по самостоятельному развертыванию Nextcloud с Docker, TLS и резервным копированием.

Какое приложение для телефона лучше

Именно здесь различия между двумя проектами наиболее существенны. Поэтому большинство пользователей в итоге выбирают Immich.

Immich выпускает официальные приложения для Android и iOS. Они выполняют фоновое резервное копирование фотографий с камеры. Новые фотографии покидают телефон без необходимости открывать приложение. Приложению требуется конечная точка HTTPS, поэтому обратный прокси необходим, если вы планируете пользоваться им вне дома.

У PhotoPrism нет официального нативного приложения. Проект предоставляет прогрессивное веб-приложение. Его можно добавить на главный экран из браузера. Для синхронизации с телефона проект рекомендует использовать WebDAV (web distributed authoring and versioning). Для этого рекомендуется стороннее приложение PhotoSync, настроенное на каталог /import/ или /originals/ через WebDAV. Решение работает, но эту задачу выполняет платное стороннее приложение, тогда как Immich выполняет ее в собственном клиенте.

Если требуется автоматическое резервное копирование фотографий с телефонов нескольких членов семьи, выбор очевиден: Immich.

Что на самом деле дает машинное обучение

Immich выполняет семантический поиск по вашей библиотеке с помощью CLIP. Поэтому запрос вроде «красный велосипед в снегу» находит фотографии, которым никто не присваивал метки. Кроме того, Immich обнаруживает лица, группирует их и находит дубликаты. Индексация большого импорта на CPU выполняется в фоновом режиме несколько часов. Это нормально. GPU (графический процессор) не требуется.

PhotoPrism классифицирует изображения с помощью TensorFlow и присваивает им метки, обнаруживает лица и объединяет их в группы людей. Также PhotoPrism считывает метаданные о местоположении и создает карту мест. Именно ради карты многие продолжают пользоваться PhotoPrism: библиотека, организованная по местам съемки, дает принципиально иной способ просмотра фотографий за двадцать лет. Распознавание лиц входит в бесплатную редакцию Community. Платные подписки Essentials и Plus добавляют такие возможности, как более подробные слои карты, дополнительные роли пользователей и интерфейс управления пользователями. По состоянию на июль 2026 года стоимость начинается с нескольких евро в месяц.

Immich полностью бесплатен и не имеет платного тарифа. Основные функции PhotoPrism бесплатны, а дополнительные возможности доступны за отдельную плату.

Резервное копирование определяет, сохраните ли вы данные

Фотосервер без резервной копии может потерять все семейные данные при отказе одного диска. Для обоих приложений нужны две резервные копии: базы данных и файлов.

Для Immich выгрузите базу данных из контейнера Postgres и скопируйте каталог загрузок.

docker exec -t immich_postgres pg_dump --clean --if-exists --dbname=immich --username=postgres | gzip > /backup/immich-db.sql.gz

Затем создайте резервную копию UPLOAD_LOCATION. Папки с данными, которые нельзя восстановить, — это upload, library и profile. Папки thumbs и encoded-video можно создать заново, но для этого потребуются часы процессорного времени. Одна только выгрузка базы данных ничего не восстанавливает, поскольку в ней хранятся только метаданные.

Для PhotoPrism у индекса есть отдельная команда.

docker compose exec photoprism photoprism backup -i -f

Она записывает дамп SQL в storage/backup/. Затем скопируйте папку originals и папку storage. PhotoPrism также записывает сопутствующие YAML-файлы с описанием каждой фотографии. Поэтому потерянный индекс можно восстановить только по файлам. Это важное преимущество для архива, который планируется хранить десятилетиями.

Какое бы приложение вы ни выбрали, регулярно отправляйте эти резервные копии за пределы сервера с помощью зашифрованных дедуплицируемых резервных копий restic в удаленное хранилище. Резервная копия, хранящаяся на том же диске, что и библиотека, резервной копией не является.

Какой вариант выбрать

Используйте Immich, если фотографии хранятся на телефонах, если резервную копию фотоплёнки нужно делать более чем одному человеку и если серверу можно выделить 6 GB RAM или больше. Это наиболее близкий к Google Photos вариант, который можно разместить на собственном сервере. Главное преимущество — мобильное приложение. В нашем пошаговом руководстве по установке Immich подробно разобраны аварийное завершение из-за нехватки памяти и проблемы при обновлении.

Используйте PhotoPrism, если на диске уже есть архив фотографий, если для вас важны карты и метаданные, а также сохранение собственной структуры каталогов, или если VPS располагает 4 GB RAM и вам нужна работающая библиотека, а не библиотека, постоянно использующая swap. PhotoPrism лучше подходит для упорядочивания коллекции и меньше нагружает маломощное оборудование.

Использовать оба решения также допустимо. Immich будет обрабатывать ежедневную загрузку фотографий с телефонов, а раз в год вы будете отбирать нужные фотографии в архив и поручать PhotoPrism индексировать его. Они не конфликтуют: PhotoPrism читает каталоги, а Immich использует собственное хранилище.

FAQ

Могут ли PhotoPrism и Immich совместно использовать одну папку с фотографиями?

Безопасно использовать ее в обоих направлениях нельзя. PhotoPrism читает папку originals и записывает рядом с изображениями сопутствующие YAML-файлы, а Immich предполагает, что содержимым каталога загрузки управляет только он. Вы можете указать PhotoPrism доступную только для чтения копию папки library Immich, чтобы просматривать ее содержимое, но не позволяйте обоим приложениям управлять одними и теми же файлами. Во время индексации шаблон хранения Immich может переместить или переименовать файлы, которые использует PhotoPrism.

Достаточно ли стабилен Immich, чтобы хранить единственную копию фотографий?

Ни одно приложение с самостоятельным размещением не должно хранить единственную копию каких-либо данных. Immich часто выпускает версии с несовместимыми изменениями, а неосторожный docker compose pull может привести к тому, что база данных не запустится. Поэтому зафиксируйте версию и прочитайте примечания к выпуску перед обновлением. Храните исходные файлы в резервной копии вне сервера, и риск останется небольшим.

Почему контейнер машинного обучения Immich постоянно перезапускается?

Его завершает система из-за чрезмерного потребления памяти. Выполните docker compose ps и найдите сообщения о завершении службы машинного обучения с кодом 137. Это означает, что ядро запустило механизм завершения процессов при нехватке памяти. Добавьте swap или задайте контейнеру ограничение памяти, чтобы его работа замедлялась вместо принудительного завершения. На машине с 4 GB можно полностью отключить машинное обучение. Без него перестает работать поиск, но остальные функции Immich работают нормально.

Нужна ли PhotoPrism MariaDB или достаточно SQLite?

SQLite работает и подходит для личной библиотеки, но при его использовании PhotoPrism ограничивает себя четырьмя рабочими процессами. В документации рекомендуется перейти на MariaDB, поскольку она лучше обрабатывает высокую параллельную нагрузку. Файл compose, который поставляется с проектом, уже включает MariaDB, поэтому рекомендуемый вариант является также вариантом по умолчанию.

Сколько места на диске нужно заложить сверх размера библиотеки?

Для любого из приложений добавьте к размеру исходных файлов от 10 до 20 процентов. Этого достаточно для созданных миниатюр и транскодированных предварительных просмотров видео. Для коллекции размером 200 GB потребуется примерно том на 300 GB с учетом места для базы данных, локальной резервной копии и дальнейшего роста.