Immich: установка и настройка своего фотоархива в Docker

Immich — бесплатное приложение для своего фотоархива: ставится на домашний сервер, само забирает фото с телефона, показывает ленту по датам, карту, лица и ищет снимки по смыслу — пишете «собака», получаете собак. По сути, это альтернатива Google Фото, только фото лежат у вас. У нас в Immich живёт семейный архив на 315 ГБ, а для статьи мы подняли его с нуля в Docker, проверили поиск на русском и нашли две грабли. Ниже — установка, настройка и что учесть.

Immich: свой фотоархив на домашнем сервере
Immich: фото на своём сервере и поиск по смыслу

Что нужно для сервера Immich

По требованиям из документации:

  • Память — минимум 6 ГБ, рекомендуется 8 ГБ.
  • Процессор — минимум 2 ядра, рекомендуется 4; платформы amd64 и arm64. С версии 3 контейнер машинного обучения на amd64 требует уровень x86-64-v2 — это почти все процессоры примерно с 2012 года.
  • Диск — с файловой системой Unix (EXT4, ZFS и т. п.). Под сами фото — сколько их у вас, с запасом. Базу лучше держать на SSD; если она на обычном жёстком диске, в docker-compose.yml есть строка DB_STORAGE_TYPE: 'HDD' — её нужно раскомментировать.
  • Docker с Docker Compose. Запуск Docker внутри LXC-контейнера разработчики не рекомендуют — лучше полноценная виртуальная машина.

Наш тест: после запуска четыре контейнера заняли около 1,6 ГБ памяти, а образы — около 4,7 ГБ на диске (сервер 2,46 ГБ, машинное обучение 1,11 ГБ, база 989 МБ, Valkey 180 МБ).

Установка Immich в Docker

Ставится по официальной инструкции из двух файлов разработчика:

mkdir /srv/immich && cd /srv/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=/mnt/photo/immich_data   # где будут лежать фото
DB_DATA_LOCATION=./postgres              # папка базы данных
DB_PASSWORD=придумайте-пароль            # только буквы и цифры

И запуск — docker compose up -d. Поднимутся четыре контейнера: immich_server (веб-интерфейс и API), immich_machine_learning (поиск и лица), immich_postgres (база) и immich_redis — внутри теперь Valkey 9. У нас скачивание образов и запуск заняли около двух минут, встала версия 3.3.3. Если Docker Compose для вас в новинку — начните со статьи Docker Compose для начинающих.

Порт и первая настройка

Immich открывается на порту 2283: http://адрес-сервера:2283. Первый зарегистрированный пользователь становится администратором, дальше мастер предложит тему, язык и настройки хранения. Интерфейс на русском.

Первый запуск Immich: мастер настройки
Первый вход администратора: Immich сразу предлагает настроить сервер

Фото с телефона загружает приложение Immich для Android и iOS: укажите адрес сервера, войдите и выберите альбомы для автозагрузки.

Грабля 1: поиск по-русски путает собак и кошек

Главная фишка Immich — умный поиск: модель CLIP понимает, что изображено на фото. Мы загрузили шесть снимков — собака, кошка, лев, гора, подсолнух, яблоко — и задали запросы. С моделью по умолчанию (ViT-B-32__openai) на английском всё точно, а на русском — промахи: по запросу «собака» первой показалась кошка, по «яблоко» — тоже кошка.

Причина — модель по умолчанию обучена на английском. В документации поиска есть многоязычные модели; модели nllb, по словам разработчиков, работают лучше всего, если ищете на своём языке, но ожидают запрос на языке из настроек пользователя. Мы переключили модель на nllb-clip-base-siglip__v1: Администрирование → Настройки → Машинное обучение → Умный поиск, затем в разделе задач перезапустили «Умный поиск» для всех фото. Результат — 6 из 6 запросов на русском нашли нужный снимок первым.

Умный поиск Immich по запросу «собака»
После смены модели: по запросу «собака» первой идёт собака

Цена — память: контейнер машинного обучения с этой моделью занял около 1 ГБ против 300 МБ с моделью по умолчанию. Модель скачивается с Hugging Face при первом использовании, так что серверу нужен доступ в интернет.

Грабля 2: машинное обучение падает без IPv6

На нашем тестовом сервере контейнер immich_machine_learning перезапускался по кругу, а в логе было:

connection to ('::', 3003) failed: [Errno 97] Address family not supported by protocol

Контейнер пытался слушать IPv6-адрес, а IPv6 в системе был выключен. Лечится переменной IMMICH_HOST из списка переменных окружения — в docker-compose.yml, в блоке immich-machine-learning:

    environment:
      - IMMICH_HOST=0.0.0.0

Без этого Immich работает, но поиск и распознавание лиц — нет.

Настройка Immich: как у нас дома

Дома Immich 3.1.0 работает на обычном настольном сервере: фото — на отдельном жёстком диске на 3 ТБ, библиотека занимает 315 ГБ. Отличия от стандартного файла:

  • Старый архив подключён внешней библиотекой только для чтения — Immich индексирует папку, но ничего в ней не меняет. По инструкции по внешним библиотекам, это строка в volumes сервера:
          - /mnt/photo/archive:/mnt/media/archive:ro

    затем библиотека добавляется в разделе администрирования.

  • Версия в .env — у нас IMMICH_VERSION=release, в свежем примере от разработчиков стоит v3, то есть обновления в пределах третьей версии.
  • Правки в compose при обновлении переносятся вручную. В версии 3 папка фото внутри контейнера монтируется в /data; если вы скачиваете новый docker-compose.yml, свои строки (внешние библиотеки, лимиты, IMMICH_HOST) придётся вписать заново. Удобнее вынести их в docker-compose.override.yml — его Docker Compose подхватывает сам.

Резервные копии

Immich — не бэкап. Разработчики в разделе о резервном копировании советуют правило 3-2-1 и копировать и папку с фото, и базу данных. Сам Immich по умолчанию делает дамп базы каждую ночь в 2:00 — в нашем тесте эта настройка была включена из коробки. Но дамп лежит на том же диске, так что копию нужно уносить на другой носитель — принцип тот же, что в статье про своё облачное хранилище.

И не открывайте порт 2283 в интернет напрямую: заходите домой через частную сеть или через HTTPS и обратный прокси, например Nginx Proxy Manager. Как устроен весь наш сервер, на котором работает Immich, — в статье домашний сервер, а за его здоровьем следим через Prometheus и Grafana.

Источники: сайт Immich, требования, установка в Docker Compose, поиск, переменные окружения, внешние библиотеки, резервное копирование. Тест — Immich 3.3.3 в Docker; дома — Immich 3.1.0. Проверено 15 октября 2026 года.

1 / 1
Оцените статью
Да будет Интернет!