SSD Nodes Learn 🎉 VPS от $4.99/мес
Руководства Matt ConnorАвтор: Matt Connor · Обновлено 2026-08-07

PhotoPrism или Immich: что выбрать для фотоархива?

Сравнение систем PhotoPrism и Immich для хранения фото. Узнайте различия в работе с Docker, требования к RAM, особенности мобильных приложений и методы резервного копирования данных.

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 ГБ ОЗУ как минимум и 8 ГБ как рекомендуемый объем, отмечая, что на машине с 4 ГБ памяти приложение запустится только при отключенном машинном обучении. PhotoPrism требует 3 ГБ физической памяти и два ядра CPU, указывая, что объем ОЗУ должен соответствовать количеству ядер.

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

Оба проекта требуют наличия swap. Документация PhotoPrism прямо рекомендует иметь на сервере не менее 4 ГБ 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 (transport layer security) — это та же схема настройки, что используется для самостоятельно размещенного Nextcloud с Docker, TLS и резервными копиями.

Какое мобильное приложение лучше

В этом аспекте проекты максимально различаются, и именно по этой причине большинство пользователей выбирают Immich.

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

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

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

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

Immich выполняет семантический поиск по вашей библиотеке с помощью CLIP, поэтому запрос вроде "red bicycle in snow" находит фотографии, которые никто никогда не помечал тегами. Он также выполняет распознавание и кластеризацию лиц, а также поиск дубликатов. Индексация большого объема импортируемых данных на CPU выполняется в фоновом режиме в течение нескольких часов, что является нормальным процессом и не требует наличия GPU (graphics processing unit).

PhotoPrism классифицирует изображения с помощью TensorFlow по меткам, распознает лица и группирует их по людям, а также считывает метаданные о местоположении для построения карты мест. Карта — это та функция, ради которой пользователи остаются в системе: библиотека, проиндексированная по местам событий, — это принципиально иной способ просмотра фотографий за двадцать лет. Распознавание лиц включено в бесплатную версию 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 оперативной памяти или больше. Это максимально близкий к Google Photos аналог, который можно разместить на собственном сервере, а мобильное приложение является его ключевой особенностью. Наше пошаговое руководство по установке Immich подробно описывает проблемы с нехваткой памяти и нюансы при обновлении.

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

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

FAQ

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

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

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

Ни одно self-hosted приложение не должно быть единственным местом хранения данных. В Immich часто выходят обновления с критическими изменениями, и неосторожный docker compose pull может привести к тому, что база данных не запустится. Фиксируйте версию и читайте примечания к выпуску перед обновлением. Храните резервные копии оригинальных файлов вне сервера, тогда риск будет минимальным.

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

Он завершается принудительно из-за нехватки оперативной памяти. Выполните docker compose ps и проверьте, не завершается ли сервис машинного обучения с кодом 137 — это признак работы механизма OOM Killer (Out of Memory) ядра Linux. Добавьте swap, установите лимит памяти для контейнера, чтобы его работа замедлялась вместо завершения, или полностью отключите машинное обучение, если на сервере всего 4 GB оперативной памяти. Без него поиск перестанет работать, но остальная часть Immich будет функционировать нормально.

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

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

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

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