Immich
Self-hosted бэкап фото и видео - приватная замена Google Photos: мобильное приложение само заливает снимки с телефона на ваш сервер, а веб дает галерею, альбомы, поиск по лицам и объектам и карту. Развернули v3.0.2 на Fatmetal Cloud Server, замерили аппетиты машинного обучения и честно разобрали главный вопрос - куда складывать всю фототеку, чтобы не упереться в диск.
Коротко: брать или нет
- Большая растущая фототека, и надоело платить за облако помесячно и навсегда
- Данные фото должны остаться в РФ, без зарубежных подписок и их оплаты (152-ФЗ)
- Нужен авто-бэкап с телефона, поиск по лицам и объектам, альбомы и карта - как в Google Photos, но у себя
- Пара альбомов на телефоне: проще внешний диск, чем держать сервер
- Нет 6-8 ГБ RAM под ML: без него теряется поиск по лицам и объектам
- Не готовы обслуживать: обновления частые, бэкап БД и библиотеки на вас
Проверено на Immich v3.0.2, Ubuntu, docker compose, июль 2026. Immich развивается быстро (несколько релизов в месяц) - на новых версиях детали могут отличаться.
Что это и какую задачу решает
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 и файл с доступами.
Рекомендуемая конфигурация: CPU4-RAM8-DISK100
Как развернуть на Fatmetal Cloud Server
Заказали Fatmetal Cloud Server на тарифе CPU4-RAM8-DISK100 (4 vCPU / 8 ГБ / 100 ГБ) с чистой Ubuntu - это попадает в рекомендации вендора (от 6 ГБ RAM, лучше 8, чтобы работал ML). Ставится официальным способом - docker compose.
Поставить Docker и compose-плагин
На чистой ОС ставим Docker Engine и плагин
docker compose(именно plugin-вариант, старыйdocker-composeустарел).Взять docker-compose.yml и .env
Тянем официальный
docker-compose.ymlиз релизов Immich и рядом кладем.env: путь библиотеки (UPLOAD_LOCATION), путь БД, версию образа (IMMICH_VERSION), пароль Postgres, таймзону.Поднять стек
docker compose up -d- поднимутся четыре контейнера. Готовность ловим поGET /api/server/ping(Postgres с vectorchord стартует не мгновенно).Домен и TLS
Вешаем Caddy reverse-proxy на порт 2283 - он сам выпускает Let's Encrypt по HTTP-01. Открываем адрес в браузере.
Мы проверили не только веб-морду: зарегистрировали администратора и через 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-object-storage у Immich как раз дозревает (роадмап конца 2025 - начала 2026); до нее библиотеку выносят на быстрый маунт (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 - «поставил и забыл» не про него.
Когда это НЕ ваш выбор
Если у вас пара альбомов на телефоне и фото немного - 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 - зрелая (v3.0.2, 107 тыс. звезд на GitHub) и бесплатная замена Google Photos, которую реально держать у себя: авто-бэкап с телефона, поиск по лицам и объектам, альбомы, карта, русский интерфейс. Главные оговорки честные: ML требует памяти (оптимум 8 ГБ RAM, 4 ядра), а всю фототеку складывать надо на быстрое S3, а не на раздутый диск VM. Для большой растущей библиотеки и РФ-фокуса (данные в РФ, без зарубежных подписок) - отличный выбор; для пары альбомов проще внешний диск.
Замеры сняты на Fatmetal Cloud Server (CPU4-RAM8-DISK100, Ubuntu) в июле 2026, Immich v3.0.2. Реальные IP, пароли и адреса серверов в публикацию не выносятся.