Immich: своё хранилище фотографий вместо Google Фото
Immich — самостоятельная замена Google Фото на своём сервере: автозагрузка с телефона, распознавание лиц, поиск по содержимому. Требования к железу, установка в Docker и в контейнере Proxmox, перенос библиотеки из Google Takeout, бэкапы и обновление без потери данных.
Google Фото удобны ровно до того момента, когда бесплатные 15 гигабайт заканчиваются, а подписка становится ежемесячной строкой расходов навсегда. Immich решает ту же задачу на вашем железе: телефон сам отправляет снимки на домашний сервер, лица распознаются, поиск понимает «красная машина у моря», а места столько, сколько на диске.
Ниже — что Immich умеет, какое железо ему нужно, два способа установки, перенос библиотеки из Google Takeout вместе с альбомами и датами, и главное: как всё это не потерять. Конструктор ниже соберёт команды под ваши пути.
Конструктор команд: Immich
Выберите задачу и подставьте свои пути — получите команды для установки, переезда из Google Фото, бэкапа и обновления.
Что это такое
Immich — открытый сервер для фотографий и видео, который вы ставите у себя. На телефон ставится приложение, оно в фоне заливает новые снимки, а дальше библиотека живёт на вашем диске и никуда не уходит.
Из того, что реально используется каждый день:
- Автозагрузка с телефонов. Фоновая, с выбором альбомов, по Wi-Fi или по мобильной сети. Освобождать место на телефоне можно прямо из приложения.
- Лица. Сервер сам находит людей и группирует снимки; имена вы проставляете один раз.
- Умный поиск. Ищет по содержимому, а не по подписям: «кот на подоконнике», «горы в снегу». Работает на своей модели, без облаков.
- Карта и хронология. Точки съёмки на карте, лента по годам, «воспоминания» вроде «этот день пять лет назад».
- Общий доступ. Альбомы по ссылке, совместные альбомы с семьёй, отдельные учётные записи домашним.
- Распознавание текста на снимках — чеки, вывески, скриншоты находятся по словам с картинки.
- Редактор прямо в приложении, без порчи оригинала.
Клиенты есть для iOS, Android и в браузере. Оригиналы лежат обычными файлами: даже если Immich однажды надоест, фотографии остаются доступны и без него.
Чего ждать не стоит. Вся ответственность теперь ваша: сервер должен работать, диск может умереть, бэкапы никто за вас не сделает. Это плата за то, что библиотека не зависит от чужой подписки и правил.
Какое железо нужно
| Параметр | Минимум | Комфортно |
|---|---|---|
| Оперативная память | 6 ГБ | 8 ГБ и больше |
| Процессор | 2 ядра | 4 ядра |
| Диск под базу | локальный SSD | локальный SSD |
| Диск под фотографии | любой | HDD большого объёма |
Про память: если отключить машинное обучение, Immich уместится и в 4 ГБ, но тогда не будет ни лиц, ни умного поиска — а это половина смысла.
Три вещи, на которых спотыкаются чаще всего:
База данных только на локальном диске. PostgreSQL нельзя держать на сетевой шаре, на NTFS или в смонтированной папке Windows — это прямой путь к повреждению базы. Сами фотографии на сетевом хранилище лежать могут, база — нет.
Процессор не старше 2012 года. Третья ветка Immich требует набор инструкций x86-64-v2. Для совсем старых машин последней рабочей версией остаётся 2.7.5, но она больше не развивается.
Файловая система должна понимать права Unix. EXT4, XFS, ZFS, APFS — подойдут. FAT32 и exFAT — нет.
Мини-ПК вроде того, что я использую под домашний сервер, тянет библиотеку на десятки тысяч снимков без напряжения. Отдельная видеокарта не нужна: для ускорения хватает встроенного видеоядра Intel.
Два способа установки
Docker Compose — официальный и основной путь. Работает на любом Linux, обновляется двумя командами, все инструкции в интернете написаны про него. Минус один: если сервер уже занят под другое, Docker добавляет свой слой.
Отдельный контейнер LXC на Proxmox — вариант для тех, у кого уже есть гипервизор. Immich ставится напрямую в систему, без Docker, готовым сценарием от сообщества. Плюсы: меньше накладных расходов, снимки контейнера и бэкапы делает сам Proxmox. Минусы: первая установка собирает библиотеки из исходников и занимает от получаса до пары часов, а обновления иногда требуют ручного вмешательства.
Сами команды для обоих путей — в конструкторе выше. Что важно решить до установки:
- Где будут лежать фотографии. Это отдельная папка (
UPLOAD_LOCATION), и лучше сразу отвести под неё большой диск или точку монтирования. Переезжать потом можно, но муторно. - Где будет база. Всегда локальный SSD.
- Как будете заходить. Порт 2283 наружу выставлять нельзя. Подробнее ниже.
После первого запуска интерфейс открывается на http://адрес-сервера:2283, и там создаётся администратор. Первым делом стоит зайти в настройки и включить шаблон хранения — тогда файлы лягут на диск по понятной схеме с датами, а не одной кучей.
Переезд из Google Фото
Забрать библиотеку из Google можно через Google Takeout: выбираете «Google Фото», формат ZIP по 50 ГБ, и через несколько часов получаете ссылки на архивы.
Главная ловушка: не заливайте распакованные фотографии обычной загрузкой через браузер. Google хранит даты съёмки, геометки и альбомы не в самих файлах, а в отдельных JSON рядом. При простой загрузке вся библиотека получит сегодняшнюю дату, а альбомы исчезнут.
Правильный инструмент — immich-go. Он читает архивы Takeout как есть, восстанавливает даты, геометки, альбомы и даже имена людей, которые вы проставляли в Google. Команды — в конструкторе, в задаче «Переехать из Google Фото». Порядок такой:
- Скачать архивы Takeout на компьютер, который подключён к сети проводом.
- Создать ключ API в профиле Immich.
- Прогнать
--dry-run, чтобы увидеть, что будет сделано. - Запустить загрузку и оставить её на ночь.
- Потом запустить в интерфейсе задания «Распознавание лиц» и «Умный поиск», чтобы сервер обработал всю библиотеку.
На нескольких десятках тысяч снимков обработка займёт часы и хорошо нагрузит процессор — это нормально и делается один раз.
Ускорение: видеоядро вместо процессора
Две задачи в Immich едят процессор: перекодирование видео и машинное обучение.
Перекодирование. Поддерживаются Quick Sync (Intel), NVENC (NVIDIA), VAAPI (AMD и Intel), RKMPP (Rockchip). Включается подключением файла hwaccel.transcoding.yml к вашему compose и галочкой в настройках администратора. На встроенном видеоядре Intel перекодирование идёт в разы быстрее и почти не греет машину.
Машинное обучение. Тут выбор шире: OpenVINO для встроенной графики Intel, CUDA для NVIDIA, ROCm для AMD, RKNN для Rockchip. По надёжности лучше всего ведёт себя CUDA, но и OpenVINO на современном встроенном видеоядре заметно ускоряет распознавание. Учтите, что OpenVINO ест больше оперативной памяти, чем обработка на процессоре.
Если сервер у вас не круглосуточно занят чем-то ещё, можно вообще не трогать: Immich спокойно работает и на процессоре, просто первичная обработка библиотеки затянется.
Бэкапы: что спасать, а что нет
Самая важная часть статьи. Immich хранит данные в двух местах, и без любого из них библиотека не соберётся обратно.

Обязательно:
- База данных — в ней пути к файлам, альбомы, лица, метки. Без неё фотографии останутся набором файлов без структуры.
upload— оригиналы, загруженные из браузера, с телефонов и через консоль.library— оригиналы, разложенные по шаблону хранения.profile— аватары пользователей.
Можно не бэкапить: thumbs (миниатюры) и encoded-video (перекодированные видео). Они занимают много места и пересоздаются из оригиналов.
Immich умеет делать дампы базы сам: по умолчанию каждую ночь в два часа, хранит 14 последних, складывает их в папку backups внутри библиотеки. Это удобно, но это не бэкап: дампы лежат на том же диске. Настоящая копия — та, что уехала на другой носитель.
Разумный минимум для дома: раз в сутки rsync папок и дампа базы на второй диск, а раз в неделю — на внешний, который лежит отдельно. Команды есть в конструкторе.
И проверьте восстановление хотя бы раз. Бэкап, который ни разу не разворачивали, — это надежда, а не бэкап.
Обновление: где реально больно
Immich развивается быстро, и обновляться приходится регулярно. Правила, которые экономят нервы:
Откат не поддерживается. Вообще, даже внутри одной минорной версии. Единственный способ вернуться — восстановить базу из дампа или откатить снимок виртуальной машины. Поэтому дамп перед обновлением обязателен.
Приложения на телефонах обновляйте первыми. Приложение работает с текущей и предыдущей мажорной версией сервера, а сервер — только со своей. Если обновить сервер раньше, телефоны временно отвалятся.
Мажорные версии читайте. В третьей ветке, например, выкинули поддержку старого векторного расширения pgvecto.rs: если база ещё на нём, сначала нужен переход на VectorChord, и только потом обновление. Проверяется одной командой: \dx в базе должен показывать vchord.
Что бывает при обрыве обновления. Здесь говорю по собственному опыту, обновляя контейнер с версии 2.7.5 на 3.2.2. Сценарий останавливает службы и включает режим обслуживания, а если обрывается на середине — так в нём и остаётся. Внешне это выглядит как «сервер не запускается»: служба падает с ошибкой, в логе непонятное. Лечится командой immich-admin disable-maintenance-mode, после чего всё поднимается.
Вторая ловушка того же случая: при сборке из исходников часть файлов тянется со сторонних серверов, и если один из них не отвечает, обновление падает в произвольном месте. Тогда недостающий файл проще положить руками и запустить сценарий заново — он пропустит уже сделанные шаги.
Третья: после прерванного обновления в приложении могли остаться пути от докер-образа (/build/...), которых в обычной установке нет. Сервер тогда падает с ошибкой вида ENOENT: no such file or directory, open '/build/geodata/...'. Это тоже чинится, но только если знать, где смотреть — в логах, а не в интерфейсе.
Вывод из всего этого простой: снимок или дамп перед обновлением — не перестраховка, а часть процедуры.
Доступ снаружи
Соблазн пробросить порт 2283 на роутере большой, но делать так не надо: сканеры находят открытые сервисы за часы, а внутри — вся ваша семейная библиотека.
Два нормальных варианта:
- VPN до домашней сети. Самый простой и безопасный: в роутерах вроде Keenetic поднимается за пять минут, телефон подключается автоматически. Immich при этом остаётся полностью внутренним.
- Обратный прокси с HTTPS — если хотите делиться альбомами с теми, у кого VPN нет. Нужен свой домен и сертификат, а на стороне Immich имеет смысл ограничить публичный доступ только ссылками на альбомы.
Для публикации отдельных альбомов существует и специальное решение — небольшой прокси, который наружу отдаёт только то, чем вы поделились, не открывая сам сервер.
Частые вопросы
Immich бесплатный?
Да, сервер полностью бесплатен и открыт. Есть добровольная лицензия поддержки проекта, она ничего не отключает.
Сколько места займёт библиотека?
Примерно столько же, сколько занимают оригиналы, плюс 10–20% на миниатюры и перекодированные видео. Immich не сжимает исходники.
Можно ли хранить фотографии на сетевом хранилище?
Библиотеку — можно, базу данных — нельзя, только локальный диск. Это официальное требование, и нарушение приводит к повреждению базы.
Что будет, если сервер сгорит?
Останется то, что вы забэкапили. Оригиналы лежат обычными файлами, так что даже без базы их можно просто скопировать и открыть.
Работает ли автозагрузка на iPhone в фоне?
Работает, но iOS агрессивно усыпляет фоновые задачи. Надёжнее время от времени открывать приложение, тогда оно догружает накопившееся.
Чем Immich отличается от Nextcloud?
Nextcloud — это про файлы вообще, фотографии там второстепенны. Immich сделан именно под снимки: лента, лица, поиск по содержанию, мобильная автозагрузка. Многие держат оба и не мешают им пересекаться.
Что дальше
Immich — хороший повод завести домашний сервер, если его ещё нет. Начать можно с установки Ubuntu Server, а чтобы заранее развести систему и данные по разным дискам, загляните в ручную разметку диска. Когда фотографии поедут на сервер, рядом обычно появляется и общая папка для остальных файлов — про неё есть отдельный разбор: настройка Samba.
Если статья пригодилась — отметьте, это помогает выбирать темы
Статья помогла?
Комментарии
Пока никто не написал. Будьте первым — вопрос или свой опыт одинаково полезны.