SSD Nodes Learn Hosting plans →
Руководства Matt ConnorАвтор: Matt Connor · Обновлено 2026-08-27

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. Ни одно приложение не должно быть доступно напрямую. Разместите перед ними reverse proxy с TLS (защищённым протоколом транспортного уровня) по той же схеме, которая используется для self-hosted Nextcloud с Docker, TLS и резервными копиями. Если этот VPS будет использоваться не только для фотографий, применяйте тот же принцип к каждому добавленному сервису: self-hosted relay RustDesk требуется доступ только к его собственным двум портам и ни к каким другим.

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

В этом аспекте проекты максимально различаются, и именно по этой причине большинство пользователей выбирают 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 во внешнее хранилище. Резервная копия на том же диске, что и библиотека, резервной копией не является. Настройте уведомление об ошибке задания: резервное копирование, которое незаметно остановилось в марте, до момента восстановления выглядит так же, как резервное копирование, успешно выполненное прошлой ночью. Собственный сервер ntfy отправит уведомление об этой ошибке на телефон в тот же вечер.

Что выбрать для запуска

Запускайте 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 дискового пространства, чтобы оставить место для базы данных, локальной резервной копии и дальнейшего роста.