Immich
Self-hosted бэкап фото и видео - приватная замена Google Photos: мобильное приложение само заливает снимки с телефона на ваш сервер, а веб дает галерею, альбомы, поиск по лицам и объектам и карту. В облаке это подписка навсегда: Google One - от ~2 USD/мес за 100 ГБ, фототека на 1-2 ТБ - это 800-1200 руб/мес, и оплатить это картой российского банка нельзя. Развернули на Fatmetal Cloud Server, замерили аппетиты машинного обучения и разобрали главный вопрос - куда складывать всю фототеку.
Коротко: брать или нет
- Большая растущая фототека, и надоело платить за облако помесячно и навсегда: Google One - от ~2 USD/мес за 100 ГБ, а фототека на 1-2 ТБ - это 800-1200 руб/мес
- Данные фото должны остаться в РФ, а подписку Google One не оплатить картой российского банка (152-ФЗ)
- Нужен авто-бэкап с телефона, поиск по лицам и объектам, альбомы и карта - как в Google Photos, но у себя
- Пара альбомов на телефоне: проще внешний диск, чем держать сервер
- Нет 6-8 ГБ RAM под ML: без него теряется поиск по лицам и объектам
- Не готовы обслуживать: обновления частые, бэкап БД и библиотеки на вас
Проверено на Immich v3.3.1, Ubuntu, docker compose, октябрь 2026. Замеры ресурсов сняты на стенде с v3.0.2 - дефолтный стек с тех пор не менялся. Immich развивается быстро - детали интерфейса на новых сборках могут отличаться.
Что изменилось с прошлого разбора
Прошлый разбор вышел в июле на Immich v3.0.2. С тех пор вышло восемь релизов, последний - v3.3.1 от 8 октября 2026.
| Что | Было, v3.0.2 | Стало, v3.3.1 |
|---|---|---|
| Поиск | прежний модал | переработанный интерфейс и новый Search API v2 |
| Люди и лица | только свой аккаунт | кластер-группы и общий доступ к людям |
| Воспоминания | блок в разделе поиска | отдельная страница Memories |
| Машинное обучение | базовые модели | опция с ускоренными моделями и новым OCR |
| Приложение на iOS | iOS 14 и новее | iOS 15 и новее |
| Известные уязвимости | несколько открытых, включая высокие | все закрыты в свежих версиях - таблица в разделе «Уязвимости прошлых версий» |
Установка не поменялась: тот же docker compose из четырех сервисов, те же переменные окружения, те же требования - минимум 6 ГБ RAM (рекомендуется 8) и 2-4 ядра. Ничего, что ломало бы обновление с v3.0.x, между версиями не вышло.
Поиск по лицам и объектам в v3.3 стал быстрее и точнее, но по умолчанию работает прежний режим, и требования к серверу те же. Как включить ускоренный режим - в разделе установки.
Вывод для тех, кто уже поставил: на v3.0.x обновиться стоит - с тех пор закрыта уязвимость средней серьезности: любой вошедший пользователь видел служебную статистику с чужими данными и скрытыми снимками, а установку оно не ломает (стек и требования те же).
Что это и какую задачу решает
Immich - это ваша личная замена облачной галереи. Ставите мобильное приложение (iOS или Android), включаете авто-бэкап - и все новые фото и видео с телефона улетают не в чужое облако, а на ваш сервер. Веб-интерфейс дает то же, к чему приучил Google Photos: ленту по датам, альбомы, общий доступ по ссылке, поиск по лицам и объектам через машинное обучение, карту со снимками по геометкам и «воспоминания».
По сути Immich заменяет связку Google Photos / Apple iCloud Photos / Amazon Photos - облачные галереи, где вы платите за место помесячно, а данные лежат у чужого вендора. Разница в модели: облако удобно, пока фото мало и подписка дешевая; на семейной фототеке в 1-2 ТБ это уже сотни рублей в месяц бесконечно, плюс риск, что аккаунт заблокируют или поменяют правила. Immich возвращает и файлы, и контроль на вашу сторону.
Что у Immich под капотом
Immich - это не монолит, а набор из четырех контейнеров, которые поднимаются одним docker compose. immich-server - API и веб-интерфейс. immich-machine-learning - отдельный сервис ML: он и отвечает за поиск по лицам и объектам (модели CLIP). Postgres с векторным расширением vectorchord хранит метаданные и векторы для поиска. Redis (valkey) - очереди фоновых задач. Плюс мы поставили Caddy как reverse-proxy, чтобы повесить домен и автоматический TLS.
Практический вывод: тяжелая часть - это ML-сервис. Именно он держит память в простое и требует запаса RAM. Сами фото при этом лежат обычными файлами в каталоге библиотеки, а не в проприетарном формате - уйти с Immich можно, забрав папку с оригиналами.
В маркетплейсе Fatmetal
Не хотите ставить руками?
Этот стек есть в маркетплейсе Fatmetal - можно не повторять установку из этого разбора вручную. Заказываете сервер, за пару минут получаете рабочий домен, валидный TLS и файл с доступами.
Рекомендуемая конфигурация:
4 vCPU · 8 ГБ RAM · 100 ГБ NVMe от 990 ₽/мес
Как развернуть на Fatmetal Cloud Server
Заказали Fatmetal Cloud Server на тарифе CPU4-RAM8-DISK100 (4 vCPU / 8 ГБ / 100 ГБ) с чистой Ubuntu - это попадает в рекомендации вендора (от 6 ГБ RAM, лучше 8, чтобы работал ML). Ставится официальным способом - docker compose.
Поставьте Docker и compose-плагин
На чистой Ubuntu одной командой ставятся Docker Engine и плагин
docker compose. Старыйdocker-composeне подходит - он устарел.curl -fsSL https://get.docker.com | shСкачайте compose-файл релиза и соберите .env
Файл
docker-compose.ymlберем из релиза Immich. Готовыйexample.envс GitHub на части серверов не скачивается: ссылка отдает 302 и виснет. Поэтому.envсобираем сами. Ускоренный режим распознавания из v3.3 включается строкойMACHINE_LEARNING_MODEL_REVISION=v2в этом же.env; по умолчанию работает прежний.mkdir -p /opt/immich/library /opt/immich/postgres cd /opt/immich curl -fsSL -o docker-compose.yml \ https://github.com/immich-app/immich/releases/download/v3.3.1/docker-compose.yml cat > .env <<'EOF' UPLOAD_LOCATION=/opt/immich/library DB_DATA_LOCATION=/opt/immich/postgres IMMICH_VERSION=v3.3.1 DB_PASSWORD=смените-на-свой-пароль DB_USERNAME=postgres DB_DATABASE_NAME=immich TZ=Europe/Moscow EOFПоднимите стек и дождитесь готовности
Compose поднимет четыре контейнера; образы тянутся с ретраями, докачка иногда обрывается. Готовность проверяем по
GET /api/server/ping: Postgres с векторным расширением стартует не мгновенно.docker compose pull docker compose up -d curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:2283/api/server/pingПовесьте домен и TLS
Caddy слушает 443 и сам получает сертификат Let's Encrypt по HTTP-01. Вместо
ваш-доменподставьте свой адрес: по умолчанию на Fatmetal это имя из IP сервера,79-133-178-10.fatmetal.net, либо ваш домен, направленный A-записью на этот сервер.cat > /opt/Caddyfile <<'EOF' ваш-домен { reverse_proxy 127.0.0.1:2283 } EOF docker run -d --name immich-caddy --restart unless-stopped --network host \ -v /opt/Caddyfile:/etc/caddy/Caddyfile -v caddy_data:/data caddy:2
Мы проверили не только веб-морду: зарегистрировали администратора и через API загрузили снимки - они сразу появились в ленте. То есть бэкап работает, а не только открывается форма входа.
Сколько реально ест
В простое, с включенным ML, стек занимает ~3 ГБ RAM из 8. Главный едок - именно ML: контейнер machine-learning держит ~1,2 ГБ даже без активного поиска, потому что модели загружены и ждут. Дальше server (~0,8 ГБ) и Postgres (~0,46 ГБ). Redis и Caddy - копейки. Диск под саму систему и образы - 11 ГБ; данные Immich с парой снимков - 312 МБ.
| RAM в простое (с ML) | ~2977 / 7941 МБ |
| machine-learning | ~1197 МБ |
| immich-server | ~796 МБ |
| Postgres (vectorchord) | ~459 МБ |
| Диск (ОС + образы) | 11 / 96 ГБ |
| Внешний отклик (TTFB) | ~200 мс |
Вывод по ресурсам простой: минимум - 6 ГБ RAM, оптимум - 8 ГБ и 4 ядра. На 4 ГБ Immich поднимется только с выключенным ML, а это ключевая фича - поиск по лицам и объектам. Экономить на CPU/RAM тут - значит терять то, ради чего Immich и ставят.
Куда складывать всю фототеку: диск или S3
Это главный вопрос по Immich, и на нем легко ошибиться с тарифом. По умолчанию библиотека - это каталог на диске VM, и он растет вместе с числом фото плюс 10-20% сверху на превью и транскод. Соблазн - взять тариф с огромным диском. Так делать не нужно.
Диск VM большим не берем. Тариф выбираем по CPU и RAM (4 vCPU / 8 ГБ - оптимум для ML), а под полный бэкап фототеки подключаем отдельное S3-хранилище, желательно быстрое, не на HDD. На медленном S3 или HDD тормозят генерация превью и сканирование библиотеки.
Почему именно так: диск VM конечен и дорог за гигабайт, а фототека растет годами. S3 масштабируется отдельно и дешевле за объем. Важно: нативного S3 как основного хранилища у Immich пока нет - обсуждение тянется не первый год, а апстрим относит S3 к резервному копированию, не к основной библиотеке. На практике библиотеку выносят на быстрый маунт (rclone или JuiceFS) либо держат на локальном быстром диске. Postgres при этом всегда держим на локальном SSD, не по сети, - иначе поиск и лента тормозят.
Итоговая раскладка тарифа: минимум - 6 ГБ RAM, 2 ядра, небольшой диск под ОС и БД; оптимум - 8 ГБ RAM, 4 ядра, а весь объем фото на быстром S3. Так вы платите за производительность, а не за медленный большой диск.
Как войти
Пароль к Immich заранее нигде не лежит - это штатное поведение. Первый, кто откроет адрес сервера и зарегистрируется, становится администратором. Поэтому первый вход надо сделать сразу после установки, пока адрес знаете только вы, и задать себе логин с паролем. Дальше в разделе администрирования заводите остальных пользователей.
После этого ставите мобильное приложение Immich (App Store, Google Play или APK / F-Droid), указываете адрес своего сервера, входите под своим аккаунтом и включаете авто-бэкап. С этого момента фото с телефона льются на ваш сервер сами. Веб-морду и панель администрирования Immich полностью локализует на русский, так что настраивать удобно.
Где может сломаться
ML съедает память в простое
Контейнер machine-learning держит ~1,2 ГБ RAM, даже когда вы не ищете. На тарифе с 4 ГБ его придется выключить - и тогда пропадает поиск по лицам и объектам, одна из главных фич. Закладывайте 6-8 ГБ, если ML вам нужен.
Причина. Фото по умолчанию лежат на диске VM, он конечен. Большая фототека рано или поздно его заполнит.
Решение. Не раздувать диск VM, а вынести библиотеку на быстрое S3 (не HDD). Postgres при этом оставить на локальном SSD - его по сети гонять нельзя.
Обновления и бэкап - на вас
Immich выпускает несколько релизов в месяц и иногда меняет схему БД. Обновляйтесь по инструкции к релизу и держите бэкап: и базы Postgres, и каталога библиотеки. Это self-host - «поставил и забыл» не про него.
Уязвимости прошлых версий
Разбор и карточка Fatmetal ставят Immich v3.3.1 - в ней закрыты все уязвимости из таблицы ниже. Если вы поставили Immich раньше и не обновлялись, найдите свою версию и обновитесь до свежего релиза: смените IMMICH_VERSION в .env и выполните docker compose pull && docker compose up -d.
| Уязвимость | Серьезность | Затронуты | Исправлено в | Что это значит |
|---|---|---|---|---|
| GHSA-q89f-h332-8q2h (CVE-2026-105764) | высокая | v3.2.2 | v3.2.4 | вошедший пользователь мог выполнить свой код на сервере, загрузив SVG: обновитесь, если стоите на v3.2.2 |
| GHSA-9qx4-67jm-cc66 (CVE-2026-35455) | высокая | 2.6.x | 2.7.0 | чужой скрипт выполнялся в браузере через текст, распознанный на панораме: обновитесь, если стоите на 2.6.x |
| GHSA-237r-x578-h5mv (CVE-2026-23896) | высокая | ниже 2.4.1 | 2.5.0 | через API-ключ можно было получить права администратора: обновитесь, если стоите ниже 2.5.0 |
| GHSA-3832-6r8h-9cfm | высокая | ниже 1.132.0 | 1.132.0 | чужой вход в аккаунт через OAuth: обновитесь, если стоите ниже 1.132.0 |
| GHSA-g82p-27g4-864h (CVE-2026-104867) | средняя | 3.0.0 - 3.0.3 | 3.2.0 | служебный эндпоинт статистики был доступен любому вошедшему и показывал чужие данные вместе со скрытыми снимками: обновитесь, если стоите на 3.0.x |
| GHSA-h5w4-vjv4-9r5q | низкая | до 3.1.0 | 3.2.0 | неполная проверка адреса возврата на служебной странице: обновитесь, если стоите на 3.0.x или 3.1.x |
Критических уязвимостей в выпущенных версиях не было: единственная критическая (захват аккаунта через ссылку) затрагивала только сборки из ветки main, а не релизы. Все уязвимости прошлых релизов закрываются обновлением - отдельных действий после него не нужно.
Когда это НЕ ваш выбор
Если у вас пара альбомов на телефоне и фото немного - Immich избыточен. Держать ради этого сервер с ML дороже и хлопотнее, чем купить внешний диск или остаться на бесплатном лимите облака.
Если вам критично сквозное шифрование (E2E), чтобы даже владелец сервера не видел фото, - смотрите Ente Photo: он про шифрование, Immich - про галерею, ML и авто-бэкап без E2E по умолчанию.
Если у вас уже развернут Nextcloud (у Fatmetal есть отдельный гайд) - возможно, хватит модуля Nextcloud Memories, не поднимая отдельный стек. Immich специализированнее и удобнее именно под фото, но это плюс лишний сервис в обслуживании.
Частые вопросы
Это бесплатно?
Да, полностью. Immich - open-source под AGPL-3.0, без платного облака вендора и без подписки. Платите только за свой сервер и хранилище.
Сколько нужно RAM?
Минимум 6 ГБ, оптимум 8 ГБ. На 4 ГБ работает только с выключенным ML - тогда нет поиска по лицам и объектам. В простое с ML стек занимает ~3 ГБ.
Куда складывать всю фототеку?
На быстрое S3-хранилище, не на большой диск VM и не на HDD. Диск VM конечен, S3 масштабируется отдельно и дешевле за объем. Postgres при этом держим на локальном SSD.
Какой пароль на входе?
Заранее его нет. Первый, кто зарегистрируется на адресе сервера, становится администратором. Сделайте первый вход сразу после установки и задайте свой пароль.
Как заливать фото с телефона?
Ставите приложение Immich (App Store, Google Play, APK или F-Droid), указываете адрес сервера, включаете авто-бэкап. Дальше снимки льются сами. Из РФ работает без обходов - сервер ваш.
Чем отличается от Google Photos?
Функции похожи (лента, альбомы, поиск, карта), но данные лежат у вас, а не в чужом облаке, и вы не платите за место помесячно. Взамен - сервер надо обслуживать самому.
Данные точно останутся в РФ?
Да, если сервер в российском ЦОД (Fatmetal). Это снимает вопрос 152-ФЗ и зависимость от зарубежных подписок и их оплаты.
Итог
Immich - зрелая (116 тыс. звезд на GitHub) и бесплатная замена Google Photos, которую реально держать у себя: авто-бэкап с телефона, поиск по лицам и объектам, альбомы, карта, русский интерфейс. Главные ограничения не изменились: ML требует памяти (оптимум 8 ГБ RAM, 4 ядра), а всю фототеку складывать надо на быстрое S3, а не на раздутый диск VM. Для большой растущей библиотеки и РФ-фокуса (данные в РФ, без зарубежных подписок) - отличный выбор; для пары альбомов проще внешний диск.
Рекомендуемая конфигурация для установки:
4 vCPU · 8 ГБ RAM · 100 ГБ NVMe
Не хотите устанавливать вручную?
Запустите Immich на этой конфигурации автоматически - от 990 ₽/мес.
Замеры сняты на Fatmetal Cloud Server (CPU4-RAM8-DISK100, Ubuntu) в июле 2026 на Immich v3.0.2; разбор обновлен под актуальный релиз v3.3.1. Реальные IP, пароли и адреса серверов в публикацию не выносятся.