VPSРейтинг
ФотоМарт 2026 · 14 мин чтения

Immich на VPS: своя Google Фото с AI-распознаванием

Immich — self-hosted альтернатива Google Photos с 80k+ звёзд на GitHub. Автосинхронизация с телефона, распознавание лиц и объектов, таймлайн, поиск по описанию — всё как в Google Photos, но на вашем сервере. Поднимем за 20 минут через Docker Compose.

1. Что умеет Immich

Immich — это не просто файловое хранилище. Он воспроизводит ключевой функционал Google Photos: автоматическую загрузку, умный поиск и организацию.

📱 Автосинхронизация

Приложение для iOS и Android автоматически загружает новые фото и видео в фоне, как Google Photos.

🧠 AI-поиск

CLIP-модель понимает запросы на естественном языке: «закат на море», «собака на траве». Без тегов и папок.

👤 Распознавание лиц

Автоматически группирует фото по людям. Можно дать имена — и искать «фото с Машей».

🗺️ Карта

Фото с геометками отображаются на интерактивной карте. Видно, где и когда были сделаны снимки.

🎞️ Таймлайн

Бесконечная лента фото по дате с быстрой прокруткой по месяцам и годам — как в Google Photos.

🔗 Шаринг альбомов

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

📦 Оригиналы всегда

Immich никогда не сжимает и не удаляет исходные файлы. Поддерживает RAW (CR2, NEF, ARW, DNG).

👥 Несколько пользователей

Один сервер для всей семьи. Каждый получает свой архив с квотой на диск.

Активная разработка

Immich — один из самых быстрорастущих self-hosted проектов: более 80 000 звёзд на GitHub. Релизы выходят каждые 1–2 недели. Проект стабилен в продакшене, но разработчики предупреждают: делайте резервные копии базы данных.

2. Требования к VPS

ПараметрМинимумРекомендуется
CPU2 vCPU4 vCPU
RAM4 ГБ (без ML)6–8 ГБ (с ML)
Диск (ОС + БД)20 ГБ SSD30 ГБ SSD
Хранилище фотоОт 50 ГБОт 100–500 ГБ
ОСUbuntu 22.04Ubuntu 22.04 / 24.04
DockerEngine v25+Engine v25+

RAM — главный ресурс

Immich запускает 5 контейнеров: сервер, микросервисы, машинное обучение, PostgreSQL с pgvector и Redis. Официальный минимум — 6 ГБ RAM. На VPS с 4 ГБ запускайте без контейнера machine-learning — AI-поиск и распознавание лиц не будут работать, но всё остальное — да.

Хранилище фото

Фото хранятся отдельно от ОС — идеально подключить дополнительный диск или объектное хранилище. Для небольшой библиотеки достаточно основного SSD. Immich добавляет около 10–20% от объёма оригиналов на превью и транскодинг.

3. Установка Docker

Immich требует Docker Engine v25+ с плагином Compose. Важно использовать официальный Docker, а не пакет из репозитория Ubuntu (он устаревший).

Установка Docker Engine с официального репозитория
# Обновить пакеты и установить зависимости
apt update && apt install -y ca-certificates curl gnupg

# Добавить GPG-ключ Docker
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

# Добавить репозиторий Docker
echo   "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc]   https://download.docker.com/linux/ubuntu   $(. /etc/os-release && echo "$VERSION_CODENAME") stable" |   tee /etc/apt/sources.list.d/docker.list > /dev/null

# Установить Docker Engine + плагин Compose
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Проверить установку
docker --version
# Docker version 27.x.x

docker compose version
# Docker Compose version v2.x.x

4. Установка Immich через Docker Compose

Шаг 1: создать папку и скачать конфигурацию

Создать директорию и скачать официальные файлы
mkdir -p /opt/immich && cd /opt/immich

# Скачать docker-compose.yml и пример .env
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

Шаг 2: настроить .env

/opt/immich/.env — отредактировать эти строки
# Папка для хранения фото на сервере
UPLOAD_LOCATION=/var/lib/immich/photos

# Папка для базы данных (должен быть локальный SSD, не сетевой диск)
DB_DATA_LOCATION=/var/lib/immich/postgres

# Часовой пояс
TZ=Europe/Moscow

# Пароль PostgreSQL — поменяйте на случайную строку (только A-Za-z0-9)
DB_PASSWORD=СтрогийПарольБД2026
Создать директории для данных
mkdir -p /var/lib/immich/photos /var/lib/immich/postgres

Шаг 3: запустить

Запуск всех контейнеров Immich в фоне
cd /opt/immich
docker compose up -d

При первом запуске Docker скачает образы (~3 ГБ). Это займёт несколько минут. Следите за процессом:

Проверить статус контейнеров и логи
# Статус: все контейнеры должны быть Up
docker compose ps

# Логи сервера (Ctrl+C для выхода)
docker compose logs -f immich-server

Контейнеры Immich

immich-serverОсновной API-сервер и веб-интерфейс, порт 2283
immich-microservicesФоновые задачи: генерация превью, транскодинг видео
immich-machine-learningCLIP и распознавание лиц (требует RAM)
immich-postgresPostgreSQL с расширением pgvector
immich-redisКэш и очередь задач

Если VPS с 4 ГБ RAM

Откройте /opt/immich/docker-compose.yml и удалите или закомментируйте блок сервиса immich-machine-learning, а также его зависимости в других сервисах. Это освободит ~1.5–2 ГБ RAM.

5. Nginx + SSL через Certbot

Immich слушает на 127.0.0.1:2283. Настроим Nginx как обратный прокси с SSL — чтобы приложение работало по https://photos.ваш-домен.ru.

Предварительно создайте A-запись в DNS: photos.ваш-домен.ru → IP_сервера.

Установка Nginx и Certbot

Установить Nginx и Certbot
apt install -y nginx certbot python3-certbot-nginx

Конфигурация Nginx

/etc/nginx/sites-available/immich
server {
    listen 80;
    server_name photos.ваш-домен.ru;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name photos.ваш-домен.ru;

    ssl_certificate     /etc/letsencrypt/live/photos.ваш-домен.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/photos.ваш-домен.ru/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;

    # Большой лимит — нужен для загрузки видео
    client_max_body_size 50000M;
    proxy_request_buffering off;
    client_body_buffer_size 1024k;

    location / {
        proxy_pass http://127.0.0.1:2283;
        proxy_http_version 1.1;

        proxy_set_header Host              $host;
        proxy_set_header X-Real-IP         $remote_addr;
        proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # WebSocket — нужен для живых уведомлений
        proxy_set_header Upgrade    $http_upgrade;
        proxy_set_header Connection "upgrade";

        proxy_read_timeout  600s;
        proxy_send_timeout  600s;
    }
}
Активировать конфиг и получить SSL-сертификат
# Создать символическую ссылку
ln -s /etc/nginx/sites-available/immich /etc/nginx/sites-enabled/

# Проверить конфигурацию
nginx -t

# Получить SSL-сертификат (временно отключит Nginx для проверки домена)
certbot --nginx -d photos.ваш-домен.ru

# Перезапустить Nginx
systemctl reload nginx

Важно: client_max_body_size

Без этой директивы Nginx будет обрезать загрузку файлов больше 1 МБ по умолчанию. Для Immich нужно 50000M (50 ГБ) — это позволит загружать видео любого размера.

6. Первый вход и настройка

Откройте браузер и перейдите по адресу вашего сервера. При первом открытии Immich предложит создать аккаунт администратора.

  1. 1Откройте https://photos.ваш-домен.ru — появится страница регистрации первого пользователя.
  2. 2Введите email и пароль администратора. Этот аккаунт получит полный доступ к настройкам.
  3. 3После входа увидите пустую библиотеку. Можно загрузить фото через браузер или подключить мобильное приложение.
  4. 4Перейдите в Administration → Settings → Machine Learning — убедитесь, что модели скачиваются (первый раз займёт несколько минут).

Полезные настройки Administration → Settings

Storage TemplateШаблон пути хранения файлов — например {{y}}/{{MMMM}}/{{filename}}. Удобно для организации по годам и месяцам.
Machine Learning → Facial RecognitionМинимальный порог распознавания лиц. По умолчанию 0.6 — уменьшите до 0.5 для лучшего охвата.
TranscodingКодек H.264 (совместимость) или H.265 (меньший размер). На слабом VPS лучше оставить H.264.
New User RegistrationОтключите внешнюю регистрацию — новых пользователей создаёт только администратор.

7. Мобильное приложение: автосинхронизация

Главная фича Immich — автоматическая загрузка новых фото с телефона в фоне, как в Google Photos. Приложение бесплатно, без рекламы.

Android

  • · Google Play: поиск «Immich»
  • · F-Droid (open-source)
  • · APK на GitHub

iOS

  • · App Store: поиск «Immich»
  • · Поддержка iOS 16+
  • · Live Photos сохраняются

Подключение к серверу

  1. 1Установите приложение Immich на телефон.
  2. 2Откройте приложение → введите адрес сервера: https://photos.ваш-домен.ru
  3. 3Войдите с email и паролем, которые создали при первом входе.
  4. 4Перейдите в настройки → Auto Backup → включите. Выберите альбомы для синхронизации.
  5. 5Первая синхронизация загрузит все фото с телефона — это может занять несколько часов.

🔋 Фоновая синхронизация

На Android может потребоваться разрешить фоновую работу приложения в настройках батареи (Battery → Unrestricted).

📸 HEIC на Android

Immich поддерживает HEIC-формат от iPhone. При синхронизации между устройствами конвертация не нужна.

🌐 Доступ снаружи

При подключении не из домашней сети нужен HTTPS. HTTP по IP не работает в iOS — браузер и приложение блокируют небезопасные соединения.

💾 Размер загрузки

Можно ограничить синхронизацию только по Wi-Fi — в настройках Auto Backup отключите «Use mobile data».

8. Обновление Immich

Immich активно развивается — релизы выходят каждые 1–2 недели. Процедура обновления простая: скачать новые образы и пересоздать контейнеры.

Обновить Immich до последней версии
cd /opt/immich

# Скачать актуальные образы
docker compose pull

# Пересоздать контейнеры (данные сохраняются в volumes)
docker compose up -d

# Проверить, что всё запустилось
docker compose ps

Читайте Release Notes

Перед обновлением проверьте github.com/immich-app/immich/releases. Некоторые версии содержат важные заметки о миграции БД или изменениях в docker-compose.yml — лучше знать заранее, чем разбираться потом.

Резервная копия базы данных

Бэкап PostgreSQL (рекомендуется делать перед обновлением)
# Дамп базы данных в файл
docker exec -t immich_postgres pg_dumpall -c -U postgres > /var/backups/immich_db_$(date +%Y%m%d).sql

# Восстановление из дампа (при необходимости)
# docker exec -i immich_postgres psql -U postgres < /var/backups/immich_db_YYYYMMDD.sql

Автообновление docker-compose.yml

Сам файл docker-compose.yml тоже меняется с новыми версиями. Чтобы всегда иметь актуальный:

Обновить docker-compose.yml до последней версии
cd /opt/immich
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
# Затем запустить: docker compose up -d

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

Нужен VPS с достаточным объёмом диска для фото?

Топ VPS хостингов →

Смотрите также