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
| Параметр | Минимум | Рекомендуется |
|---|---|---|
| CPU | 2 vCPU | 4 vCPU |
| RAM | 4 ГБ (без ML) | 6–8 ГБ (с ML) |
| Диск (ОС + БД) | 20 ГБ SSD | 30 ГБ SSD |
| Хранилище фото | От 50 ГБ | От 100–500 ГБ |
| ОС | Ubuntu 22.04 | Ubuntu 22.04 / 24.04 |
| Docker | Engine 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 (он устаревший).
# Обновить пакеты и установить зависимости
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-plugindocker --version
# Docker version 27.x.x
docker compose version
# Docker Compose version v2.x.x4. Установка 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
# Папка для хранения фото на сервере
UPLOAD_LOCATION=/var/lib/immich/photos
# Папка для базы данных (должен быть локальный SSD, не сетевой диск)
DB_DATA_LOCATION=/var/lib/immich/postgres
# Часовой пояс
TZ=Europe/Moscow
# Пароль PostgreSQL — поменяйте на случайную строку (только A-Za-z0-9)
DB_PASSWORD=СтрогийПарольБД2026mkdir -p /var/lib/immich/photos /var/lib/immich/postgresШаг 3: запустить
cd /opt/immich
docker compose up -dПри первом запуске Docker скачает образы (~3 ГБ). Это займёт несколько минут. Следите за процессом:
# Статус: все контейнеры должны быть Up
docker compose ps
# Логи сервера (Ctrl+C для выхода)
docker compose logs -f immich-serverКонтейнеры Immich
Если 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
apt install -y nginx certbot python3-certbot-nginxКонфигурация Nginx
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;
}
}# Создать символическую ссылку
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Откройте https://photos.ваш-домен.ru — появится страница регистрации первого пользователя.
- 2Введите email и пароль администратора. Этот аккаунт получит полный доступ к настройкам.
- 3После входа увидите пустую библиотеку. Можно загрузить фото через браузер или подключить мобильное приложение.
- 4Перейдите в Administration → Settings → Machine Learning — убедитесь, что модели скачиваются (первый раз займёт несколько минут).
Полезные настройки Administration → Settings
7. Мобильное приложение: автосинхронизация
Главная фича Immich — автоматическая загрузка новых фото с телефона в фоне, как в Google Photos. Приложение бесплатно, без рекламы.
Android
- · Google Play: поиск «Immich»
- · F-Droid (open-source)
- · APK на GitHub
iOS
- · App Store: поиск «Immich»
- · Поддержка iOS 16+
- · Live Photos сохраняются
Подключение к серверу
- 1Установите приложение Immich на телефон.
- 2Откройте приложение → введите адрес сервера:
https://photos.ваш-домен.ru - 3Войдите с email и паролем, которые создали при первом входе.
- 4Перейдите в настройки → Auto Backup → включите. Выберите альбомы для синхронизации.
- 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 недели. Процедура обновления простая: скачать новые образы и пересоздать контейнеры.
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 — лучше знать заранее, чем разбираться потом.
Резервная копия базы данных
# Дамп базы данных в файл
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 тоже меняется с новыми версиями. Чтобы всегда иметь актуальный:
cd /opt/immich
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
# Затем запустить: docker compose up -d