Immich на NAS и домашнем сервере: свой Google Photos для фото и видео
Immich · NAS · Docker · семейный фотоархив

Immich на домашнем сервере или NAS: свой Google Photos для фотографий и видео

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

Docker Compose Android / iPhone Mobile Backup Face Recognition Smart Search 3-2-1 Backup
Практичная архитектура: Immich и PostgreSQL работают на mini-PC или NAS, база размещается на локальном SSD, оригиналы фотографий хранятся на большом дисковом массиве, а отдельная backup-система копирует и медиатеку, и базу данных ещё минимум в одно независимое место.

Что такое Immich и зачем он нужен дома

Immich - self-hosted система управления фотографиями и видео. В отличие от обычной сетевой папки на NAS, она создаёт удобную фототеку с временной шкалой, мобильным приложением, альбомами, поиском, распознаванием лиц и автоматической загрузкой файлов со смартфонов.

Фото с телефона

Автоматическая загрузка выбранных альбомов с Android и iOS.

Единая библиотека

Фотографии с нескольких телефонов, камер и старых архивов в одном интерфейсе.

Поиск

Дата, место, камера, теги, текст на изображении и семантический поиск.

Лица

Группировка фотографий по распознанным людям.

Видео

Просмотр роликов и создание совместимых перекодированных версий.

Свой сервер

Основные файлы находятся на вашем оборудовании, а не только в чужом облаке.

Immich нельзя считать единственной копией семейного архива. Система упрощает хранение и просмотр, но отказ диска, ошибка пользователя, ransomware или повреждение базы всё равно могут привести к потере данных без отдельного backup.

Immich вместо Google Photos: что меняется

Параметр Immich Облачный фотосервис
Где лежат оригиналы На вашем сервере/NAS У провайдера сервиса
Объём Ограничен вашими дисками Ограничен тарифом
Администрирование На владельце На провайдере
Обновления Нужно обслуживать сервер Автоматически
Backup Нужно проектировать самостоятельно Зависит от политики провайдера
Приватность и контроль Высокий контроль инфраструктуры Данные обрабатываются внешним сервисом

Immich особенно интересен владельцам большого семейного архива, домашнего NAS или сервера, когда платить за постоянно растущий облачный объём не хочется или важно сохранить локальный контроль над оригиналами.

Но self-hosting означает ответственность: диски, UPS, обновления, резервные копии и восстановление становятся вашей задачей.

Из каких компонентов состоит Immich

Mobile / Web просмотр и загрузка
Immich Server API и обработка
PostgreSQL метаданные и связи
Machine Learning поиск и лица
Immich jobs
Media Storage фото и видео

В базе PostgreSQL хранятся не сами фотографии, а информация о пользователях, путях к файлам, альбомах, распознанных лицах, metadata и других объектах.

Поэтому для полноценного восстановления нужны и исходные медиаданные, и база данных.

Какое железо нужно для Immich

Для тестового запуска официальная документация ориентируется минимум на систему примерно с 2 CPU cores и 6 ГБ RAM. Для большой семейной библиотеки разумнее иметь запас.

Минимальный старт 2 CPU не для тяжёлой массовой обработки
Память 6+ ГБ RAM лучше иметь запас для Docker и ML
База SSD PostgreSQL любит низкую задержку
Фотоархив HDD / NAS большой объём дешевле хранить на дисковом массиве

Нужна ли видеокарта

Для обычной работы дискретный GPU не обязателен. Machine Learning может работать на CPU. Аппаратное ускорение полезно при большой библиотеке, массовом распознавании и обработке видео, но это уже оптимизация, а не условие запуска.

Для домашнего сервера часто лучше современный энергоэффективный x86 mini-PC с SSD под систему и базу плюс отдельный NAS/HDD-массив для медиаданных, чем попытка выполнять все задачи на очень слабом старом NAS.

Где лучше запускать Immich: на NAS или отдельном mini-PC

Immich прямо на NAS

  • меньше устройств;
  • короткий путь к файлам;
  • проще домашняя инфраструктура;
  • подходит мощному x86 NAS с Docker.

Mini-PC + NAS

  • больше CPU/RAM;
  • база на быстром локальном SSD;
  • NAS занимается хранением;
  • проще масштабировать сервисы.

Если NAS имеет слабый ARM-процессор и 2 ГБ памяти, загружать на него Immich, распознавание лиц, видеоперекодирование и ещё десяток контейнеров может быть плохой идеей.

Если это современный NAS с достаточной памятью и официально поддерживаемой контейнерной средой, запуск на одном устройстве вполне возможен.

Где хранить PostgreSQL, оригиналы и thumbnails

Официальная документация Immich отдельно подчёркивает: PostgreSQL database желательно размещать на локальном SSD, а не на сетевой SMB/NFS-папке.

Данные Где лучше хранить Почему
PostgreSQL DB Локальный SSD Низкая latency, корректная работа файловой системы и permissions
Original photos/videos Большой HDD/RAID/NAS Нужен объём, а не максимальный IOPS
Thumbnails SSD или быстрый storage Большое количество небольших файлов
Encoded video По объёму и нагрузке Может занимать значительное место
Database backups Не только рядом с DB Должны пережить отказ основного SSD
Не размещайте каталог PostgreSQL на обычной сетевой шаре. В актуальных требованиях Immich прямо рекомендуется локальная файловая система; база данных не должна жить на network share.

Как установить Immich через Docker Compose

Для production-развёртывания официальный проект рекомендует Docker Compose.

Общая схема установки:

  1. 1

    Подготовить Docker Engine

    Используйте актуальный Docker с Compose plugin.

  2. 2

    Создать каталог Immich

    В нём будут храниться docker-compose.yml и .env.

  3. 3

    Скачать файлы текущего release

    Не копируйте compose-файл из старой случайной статьи.

  4. 4

    Настроить .env

    Укажите каталог медиа, database location и сильный пароль базы.

  5. 5

    Запустить контейнеры

    Используется современная команда docker compose up -d.

  6. 6

    Создать администратора

    Первый пользователь получает административные права.

mkdir -p /opt/immich
cd /opt/immich

# docker-compose.yml и .env
# берём из актуального release Immich

docker compose pull
docker compose up -d
Не вставляйте в постоянную конфигурацию docker-compose.yml из старого форума или ролика. Immich активно развивается, поэтому базовый compose-файл лучше брать из текущего официального release.

Как настроить автоматическую загрузку фото с Android и iPhone

В мобильном приложении можно выбрать альбомы телефона и включить Backup. Immich вычисляет checksum файлов и пропускает уже имеющиеся на сервере одинаковые assets.

Камера телефонановое фото
Immich Appbackup job
Домашний сервероригинал загружен

Что можно выбрать

  • какие локальные albums загружать;
  • какие albums исключить;
  • использовать ли мобильный интернет;
  • синхронизировать ли структуру album с сервером;
  • ограничивать ли background upload условиями устройства.

Android

Некоторые производители агрессивно ограничивают background processes. Если фотографии загружаются только после ручного запуска Immich, проверьте battery optimization и разрешение фоновой работы.

iPhone

Для фоновой работы нужен Background App Refresh. iOS сама решает, когда разрешить background task, поэтому загрузка не всегда начинается мгновенно после съёмки.

Mobile Backup является односторонней загрузкой на сервер, а не зеркалом всего поведения галереи. Удаление или перемещение фотографии в локальном альбоме телефона не обязательно повторяет это действие в серверном album.

Как перенести старый архив фотографий

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

  • Google Photos;
  • старые телефоны;
  • папки на Windows;
  • Synology NAS;
  • внешние HDD;
  • архивы камеры;
  • Apple Photos / iCloud.

Есть два основных подхода.

Импортировать в Immich

Файлы становятся управляемой библиотекой Immich и размещаются в его storage.

External Library

Оригиналы остаются в существующей структуре папок, а Immich индексирует их.

Для Google Takeout проект Immich также указывает на специализированные инструменты импорта, например immich-go. Перед массовым импортом сначала сделайте копию исходного архива и протестируйте процесс на небольшой части библиотеки.

External Library: как подключить существующую папку с фотографиями

External Library удобна, если фото уже организованы на NAS и вы не хотите переносить оригиналы во внутреннюю структуру Immich.

Папка монтируется в контейнер Immich, после чего администратор создаёт External Library и запускает scan.

services:
  immich-server:
    volumes:
      - /mnt/photos:/mnt/photos:ro

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

Read-only External Library - хороший способ сначала попробовать Immich на реальном архиве. Исходные папки продолжают существовать независимо от приложения.

Но есть важный нюанс

Albums, descriptions и часть других данных, которые пользователь создаёт внутри Immich для external assets, хранятся в базе Immich. Они не обязаны записываться обратно внутрь оригинального JPEG/RAW.

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

Как организовать семейную библиотеку

Лучше создать отдельного пользователя для каждого члена семьи, а не использовать одну общую административную учётную запись на всех телефонах.

Администратор управление сервером
Иван свои загрузки
Мария свои загрузки
Общие albums совместный просмотр

Это удобнее для разграничения приватных фотографий, определения владельца assets и дальнейшего управления.

Общие события, поездки и семейные фотографии можно собирать в shared albums, не смешивая полностью аккаунты пользователей.

Как безопасно открывать Immich снаружи дома

Для мобильного backup вне домашнего Wi-Fi сервер должен быть доступен телефону.

Основные варианты:

Способ Когда подходит
Tailscale Личный и семейный доступ без публичной публикации сервиса
WireGuard VPN Есть собственный VPN-server и нормальная маршрутизация
Reverse Proxy + HTTPS Нужен публично доступный endpoint с корректной защитой
Только LAN Если backup нужен только дома по Wi-Fi
Не публикуйте порт Immich или Docker-хоста напрямую в интернет просто ради удобства. Если выбран публичный reverse proxy, нужны HTTPS, обновления, сильные пароли и нормальный firewall.

Самая важная часть: как резервировать Immich

Сам Immich рекомендует стратегию 3-2-1. Для полноценного backup нужно защитить два принципиально разных набора данных:

1 Оригиналы

Фото и видео в media storage.

2 PostgreSQL

Пути, пользователи, albums, metadata и связи.

Встроенный database backup не копирует фотографии

Immich умеет автоматически создавать database dumps. Они предназначены для disaster recovery базы, но не содержат сами фотографии и видео.

Поэтому файл database backup без копии media storage не является полноценной резервной копией Immich.

Что копировать

  • оригинальные assets;
  • database dumps;
  • конфигурацию .env без публикации secrets;
  • актуальный compose/setup;
  • при необходимости thumbnails и encoded videos для быстрого восстановления;
  • external libraries резервируются отдельно как обычные фотоархивы.

Порядок backup

Идеальный вариант - кратко остановить запись в Immich на время согласованного backup. Если это невозможно, документация рекомендует сначала резервировать базу, затем файловую систему.

1. Database фиксируем состояние metadata
2. Media files копируем соответствующие originals
3. Off-site независимая копия

Что потребуется, если сервер Immich полностью умер

Хороший backup должен позволять восстановиться даже на новом сервере.

Новый сервер Docker + storage
Media возвращаем originals
Database Restore возвращаем структуру библиотеки

В актуальном Immich восстановление database dump можно выполнять через интерфейс Maintenance или средствами командной строки в зависимости от сценария.

Перед restore важно вернуть файлы в ожидаемые storage paths. Иначе база будет ссылаться на assets, которых физически нет на диске.

Один раз после настройки Immich полезно выполнить тестовое восстановление на отдельной VM или временном сервере. Тогда становится понятно, сохранены ли все нужные каталоги, пароли и database dumps.

Как обновлять Immich и не сломать фототеку

Immich развивается быстро. Поэтому обновление нужно относить к обычному обслуживанию домашнего сервера.

  1. 1

    Проверить release notes

    Особенно breaking changes и изменения compose/.env.

  2. 2

    Проверить backup

    Database dump и медиакопия должны существовать до обновления.

  3. 3

    Обновить compose при необходимости

    Не считать старый docker-compose.yml вечным.

  4. 4

    Скачать новые images

    docker compose pull

  5. 5

    Перезапустить stack

    docker compose up -d

  6. 6

    Проверить jobs и mobile app

    Убедиться, что uploads, timeline и ML работают после миграций.

Не используйте автоматическое бесконтрольное обновление контейнера в момент выхода каждой новой версии, если Immich хранит единственную рабочую семейную фототеку. Сначала backup и release notes, потом update.

Как ускорить Immich с большой библиотекой

PostgreSQL на SSD

Самый базовый шаг для отзывчивой базы.

Достаточно RAM

Контейнеры, Postgres и ML не должны постоянно бороться за память.

Hardware acceleration

Может ускорить обработку видео и ML на совместимом оборудовании.

2.5GbE

Полезно при сервере отдельно от NAS и массовом импорте.

Не запускать всё сразу

Первичный ML 200 000 assets способен серьёзно загрузить CPU.

Следить за диском

Thumbnails и encoded video требуют дополнительного места сверх оригиналов.

Для просмотра фотографий гигабитной сети обычно достаточно. 2.5GbE становится особенно заметен при первичном импорте сотен гигабайт или терабайтов между NAS и отдельным сервером.

Типичные ошибки при создании домашнего Immich

Считать Immich backup

Фотосервис и независимое резервное копирование - разные уровни защиты.

Копировать только PostgreSQL

Database dump не содержит оригиналы фотографий и видео.

Копировать только папку с фото

Теряются albums, users, metadata и другая информация базы.

PostgreSQL на SMB

База должна находиться на подходящей локальной файловой системе.

Дать Immich запись в старый архив сразу

External Library лучше сначала подключить read-only и проверить поведение.

Один admin для всей семьи

Сложнее разграничивать владельцев и приватные assets.

Открыть порт наружу

Для личного доступа проще использовать VPN/Tailscale или корректный reverse proxy.

Обновлять без backup

Активно развивающийся self-hosted сервис требует дисциплины обновлений.

Удалить фото с телефона слишком рано

Сначала убедитесь, что файл действительно загружен и имеет независимую резервную копию.

Не считать свободное место

Thumbnails, ML и encoded video занимают дополнительный объём.

Частые вопросы

Immich полностью заменяет Google Photos?

По многим домашним сценариям он может выполнять похожую роль: мобильная загрузка, timeline, albums, поиск и лица. Но сервер, обновления, резервное копирование и удалённый доступ администрирует сам владелец.

Можно ли установить Immich на Synology NAS?

Если модель NAS поддерживает подходящую контейнерную среду и имеет достаточно ресурсов, Immich можно запустить в Docker. На слабых моделях практичнее использовать отдельный mini-PC, оставив Synology для хранения файлов.

Можно ли хранить фотографии на NAS, а Immich запустить на другом компьютере?

Да. Это распространённая архитектура. PostgreSQL лучше оставить на локальном SSD сервера Immich, а большой media storage разместить на подходящем хранилище с корректным mount и резервированием.

Можно ли автоматически загружать фото с iPhone?

Да. Immich поддерживает mobile backup на iOS. Для фоновой работы должен быть разрешён Background App Refresh, а время запуска фоновых задач контролирует сама iOS.

Можно ли автоматически загружать фото с Android?

Да. Можно выбрать albums и условия backup. Если загрузка не работает в фоне, нужно проверить battery optimization конкретного производителя телефона.

Immich удаляет фотографии с телефона после загрузки?

В приложении есть отдельные функции освобождения места, но применять их стоит только после проверки server copy и независимого backup. Не следует считать один сервер достаточным основанием немедленно удалить все оригиналы с телефона.

Можно ли подключить старую папку фотографий без переноса?

Да, через External Library. Для первого подключения существующего архива разумно использовать read-only mount.

Нужен ли GPU для распознавания лиц?

Нет. Machine Learning может работать на CPU. Аппаратное ускорение полезно для больших библиотек и ускорения обработки, но не обязательно для обычного домашнего запуска.

Что обязательно резервировать?

Оригинальные фотографии и видео плюс PostgreSQL database. Встроенный database backup не содержит медиаданные.

Можно ли использовать RAID вместо backup?

Нет. RAID помогает пережить некоторые отказы дисков, но не защищает от удаления, повреждения базы, ransomware, кражи NAS или других общих рисков.

Как безопасно открыть Immich из интернета?

Для личного доступа удобен VPN или Tailscale. Для публичного endpoint нужен правильно настроенный HTTPS reverse proxy, обновления и firewall. Прямой бесконтрольный port forwarding панели сервиса лучше не использовать.

Вывод

Immich превращает домашний NAS или сервер из обычной папки с JPEG в полноценную семейную фототеку: автоматическая загрузка с телефонов, timeline, albums, лица, OCR и интеллектуальный поиск.

Для надёжной системы лучше разделять вычисления и хранение: PostgreSQL и контейнеры размещать на быстром локальном SSD, а большой фотоархив - на подходящем HDD/NAS. На мощном NAS оба уровня можно объединить.

Самое важное - не путать удобство Immich с сохранностью данных. Фотографии и база должны резервироваться независимо по схеме 3-2-1, а восстановление стоит проверить до первой реальной аварии. Тогда self-hosted фототека становится не экспериментом, а нормальной частью домашней инфраструктуры.