Свой фотосервер Immich: разворачиваем в Docker Compose с автозагрузкой, лицами и бэкапами

Правильная установка Immich в Docker Compose вместо Google Photos

Телефон снимает десятки кадров в день, и личный фотоархив растёт быстрее, чем кажется: за пару лет легко набегает сотня гигабайт. Бесплатные 15 ГБ в Google Photos заканчиваются незаметно, а продлевать хранилище из России стало сложно: карты российских банков Google не принимает с 2022 года, оплата через мобильный баланс на iPhone отключена с апреля 2026.

Оплата из России всё же возможна: подписки Google One продают за рубли сторонние сервисы и маркетплейсы, активируя тариф прямо на вашем аккаунте. Но схема спорная: вы платите вперёд, всё держится на добросовестности посредника, а гарантий, что её не прикроют вслед за оплатой с мобильного баланса, никто не даёт. Для семейного фотоархива это сомнительная опора.

Надёжнее всего в этой ситуации поднять собственное хранилище для фотографий.

Установим Immich на свой сервер через Docker Compose и доведём его до рабочего состояния: настроим .env, подключим автозагрузку с телефона, закроем HTTPS, не забудем про бэкапы. Immich это открытый фотосервер, который чаще всего называют заменой Google Photos: автозагрузка с телефона, лента по дням, альбомы, распознавание лиц, умный поиск по содержимому, отдельные аккаунты для семьи. Всё хранится на вашем диске.

А если отдельного облака для файлов у вас ещё нет, начните с соседнего гайда: правильная установка Nextcloud. Многие держат оба сервиса на одной машине: Nextcloud для документов, Immich для фото.

Что такое Immich и почему его выбирают

Immich развивает команда энтузиастов, исходники лежат на GitHub под лицензией AGPL-3.0, а репозиторий собрал больше 115 тысяч звёзд. Осенью 2025 проект получил первый стабильный релиз, летом 2026 вышла ветка v3, и сейчас обновления выходят раз в одну-две недели.

Что он умеет:

  • Автозагрузка с Android и iOS: новые снимки уезжают на сервер сами.
  • Лента по дням, карта съёмки и «воспоминания», как в привычных облаках.
  • Распознавание лиц и поиск по содержимому: «море», «кот», «документы» находятся без ручного тегирования.
  • Альбомы и общий доступ для членов семьи и друзей.
  • Мультипользовательский режим: у каждого свой аккаунт и своя библиотека.

Минус один: следить за обновлениями, местом на диске и резервными копиями придётся самому. Если готовы уделять этому полчаса в месяц, получите фотоархив без подписок и лимитов на размер.

Что понадобится: сервер, Docker и место на диске

Immich устанавливается на Linux: Ubuntu 22.04/24.04, Debian 12 и новее. На Windows и macOS официально ставить не рекомендуют, опыт будет болезненным. Минимальные требования такие:

  • ОЗУ: минимум 6 ГБ, комфортно от 8 ГБ. Если отключить модуль машинного обучения, хватит и 4 ГБ.
  • Процессор: от 2 ядер, лучше 4. Нюанс для ветки v3: на amd64 нужна поддержка инструкций x86-64-v2, поэтому совсем старые процессоры (примерно до 2012 года выпуска) и некоторые конфигурации виртуальных машин не подойдут.
  • Диск: база данных только на локальный SSD (сетевые папки не поддерживаются), под библиотеку фото закладывайте запас плюс 10-20% на миниатюры и превью. Сама база занимает от 1 до 3 ГБ.
  • Docker Engine с плагином Compose. Нужна именно команда docker compose: старая docker-compose больше не поддерживается.

Если ставите на Proxmox, выделите полноценную виртуальную машину: Docker внутри LXC команда Immich не рекомендует. Домена на первом шаге не нужно: система поднимется и по IP, а HTTPS добавим позже.

ООО «РЕГ.РУ»

Мощные VPS для ваших Docker-контейнеров

Идеально подходит для Nginx Proxy Manager, Portainer и Nextcloud. Высокая производительность (NVMe), защита от DDoS и скидка 5% по промокоду.

Промокод:CB2C-C638-E0BF-18D1
от 0.6 ₽/час

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

Установка занимает минут десять. Выполняйте команды под пользователем с доступом к Docker.

Шаг 1. Каталог и файлы

Создаём каталог и скачиваем два официальных файла: compose-файл и пример окружения.

mkdir immich-app && cd immich-app

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

Оба файла нужно брать именно из последнего релиза, как в командах выше. Не копируйте compose-файл из старых статей и чужих гайдов, включая эту инструкцию: команда Immich периодически меняет образы и структуру файла, а устаревшая версия легко превращает установку в отладку.

Шаг 2. Настройка .env

Открываем .env и задаём значения:

UPLOAD_LOCATION=/srv/immich/library
DB_DATA_LOCATION=/srv/immich/postgres
TZ=Europe/Moscow
IMMICH_VERSION=v3
DB_PASSWORD=надёжный_пароль

Папки создайте заранее: mkdir -p /srv/immich/library /srv/immich/postgres.

Коротко по переменным:

  • UPLOAD_LOCATION: папка для фото, видео, миниатюр и бэкапов базы. Выделите под неё большой диск: со временем библиотека займёт сотни гигабайт.
  • DB_DATA_LOCATION: хранилище базы Postgres. Только локальный диск, желательно SSD: на сетевой папке база будет тормозить и терять стабильность.
  • TZ: часовой пояс сервера, влияет на даты в галерее и шаблонах хранения.
  • IMMICH_VERSION=v3: метатег «последняя стабильная версия ветки v3». Можно закрепить точную версию, например v3.2.4, и обновляться вручную.
  • DB_PASSWORD: придумайте пароль только из латиницы и цифр: спецсимволы иногда ломают парсинг в Docker.

Шаг 3. Запуск

# запускаем стек
docker compose up -d

Первый запуск скачает несколько гигабайт образов и поднимет четыре контейнера. Статус можно проверить командой docker compose ps, а логи посмотреть через docker compose logs -f immich-server.

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

Типичные ошибки первого запуска:

  • unknown shorthand flag: 'd' in -d или ошибки доступа к .env: у вас старая версия Docker из репозитория Ubuntu. Установите Docker Engine из официального репозитория Docker.
  • can't set healthcheck.start_interval as feature require Docker Engine v25 or later: закомментируйте строку start_interval в секции database compose-файла или обновите Docker.

Что развернулось: четыре сервиса

Полезно понимать, за что отвечает каждый:

  • immich-server: само приложение и API, слушает порт 2283.
  • immich-machine-learning: модели для умного поиска и распознавания лиц, кэш моделей лежит в отдельном томе.
  • redis: очереди задач и кэш; в свежих версиях за этим именем работает движок Valkey, форк Redis.
  • database: PostgreSQL с расширением VectorChord для векторного поиска. Раньше здесь использовался pgvecto.rs, переход состоялся ещё в ветке 1.x, так что на новых версиях об этом можно не думать.

Все настройки живут в .env, трогать compose-файл не придётся.

Настройка после установки: телефон, задачи, семья

Автозагрузка с телефона

Приложения Immich есть в App Store и Google Play, на Android его также можно поставить из APK с GitHub или через F-Droid. В приложении укажите адрес сервера (http://IP:2283 или ваш домен), войдите в аккаунт и включите бэкап. Immich позволяет выбрать конкретные альбомы для загрузки, поэтому мусор из мессенджеров в архив не попадёт.

Первичная обработка

После загрузки первых фото загляните в Administration → Jobs: сервер построит миниатюры, проиндексирует лица и обработает видео. На слабом процессоре это занимает от нескольких часов до пары дней, и прерывать задачи не стоит. Заодно включите Storage Template в настройках: шаблон раскладки по папкам (год, дата, имя файла) лучше задать сразу, менять структуру потом сложнее.

Пользователи для семьи

На странице Administration → Users создаются аккаунты для близких: у каждого своя библиотека, а общими можно сделать отдельные альбомы.

HTTPS и доступ снаружи

Выставлять порт 2283 в открытый интернет без шифрования нельзя: пароль от фотоархива уйдёт по сети в открытом виде.

Обычно перед Immich ставят reverse proxy с сертификатом. Мы уже рассказывали, как настроить Nginx Proxy Manager, логика та же: направляем поддомен вида photos.example.com на контейнер immich_server:2283 и выпускаем Let’s Encrypt. Нюансы именно для Immich: увеличьте лимит размера запроса (в NPM добавьте client_max_body_size 50000M; в Advanced-настройках), иначе большие видео будут молча падать при загрузке. И ещё: Immich не умеет работать по подпути, отдавать его нужно от корня поддомена, а не из каталога /immich.

Если сервер нужен только вам и семье, не выставляйте его всему интернету: ограничьте вход списком разрешённых адресов (в NPM для этого есть Access Lists).

Обновление Immich

Обновление занимает две команды:

# обновляем образы и перезапускаем
docker compose pull && docker compose up -d
docker image prune

Перед обновлением просмотрите release notes на GitHub: в мажорных версиях случаются изменения требований, как с x86-64-v2 в v3. Не откатывайтесь на более старые версии: даунгрейд официально не поддерживается. Мобильные приложения обновляйте вместе с сервером, они совместимы в пределах текущей и предыдущей мажорной версии.

Бэкап Immich: что и как сохранять

Бэкапы всё равно обязательны: диски умирают, питание отключается.

Immich хранит пути к файлам и метаданные в базе Postgres: без неё даже целая папка с фото не соберётся обратно в галерею. Поэтому бэкапить нужно и базу, и файлы.

Дамп базы Immich делает сам: каждый день в 2:00, хранятся последние 14 штук в UPLOAD_LOCATION/backups. Запустить дамп вручную можно из Administration → Job Queues → Create Database Dump, а из консоли команда выглядит так:

docker exec -t immich_postgres pg_dump --clean --if-exists --dbname=immich --username=postgres | gzip > /path/to/backup/dump.sql.gz

К дампу добавьте папку UPLOAD_LOCATION целиком: там лежат библиотека, миниатюры, превью видео и профили. Порядок важен: сначала база, потом файлы. Если останавливать контейнер не хочется, соблюдайте именно такой порядок. Худший случай при этом: на диске останутся файлы, о которых база не знает, и их можно дозалить руками. Обратный порядок даёт битые записи после восстановления.

И держите копии по принципу 3-2-1: минимум две локальные (сервер и внешний диск) плюс одна в другом месте (облако или сменный диск). Хороший вариант: rsync или restic по расписанию на внешний диск, плюс ежедневный дамп базы.

Раз в пару месяцев проверяйте восстановление из дампа на тестовой копии: непроверенный бэкап запросто оказывается пустышкой.

Отдельное предупреждение: не трогайте файлы внутри папок библиотеки руками. Immich не сканирует диск, и любое изменение файла напрямую превращается в битую запись в галерее. Всё управление фото и видео идёт через интерфейс.

Итог

Теперь фото живут у вас: телефоны заливают снимки сами, лица и умный поиск работают, а место ограничено только размером диска. Immich стабилен с осени 2025 года, релизы выходят каждую пару недель.

Начать можно и с недорогого VPS: главное, чтобы было 6-8 ГБ оперативной памяти и запас места под библиотеку. Подходящие конфигурации для фотоархива есть в нашей подборке VPS.

А облако для документов и файлов удобно поднять рядом: Nextcloud на Docker Compose отлично уживается на одном сервере с Immich.