Руководства

Immich на VPS: своя замена Google Фото

Immich на VPS: своя замена Google Фото

Immich — открытая замена Google Фото и iCloud: приложение на телефоне само выгружает снимки и видео на ваш сервер, а там их можно листать по датам, искать по лицам, местам и содержимому кадра («собака на пляже»), собирать в альбомы и делиться ссылкой. Все фото хранятся у вас, без подписки и ограничений облачных тарифов. Ниже — какой VPS нужен под Immich, где хранить сам фотоархив, как установить и открыть доступ по HTTPS и как не потерять снимки.

Сколько ресурсов нужно

Immich состоит из нескольких контейнеров: сервер, база данных PostgreSQL, Redis и отдельный модуль машинного обучения, который распознаёт лица и объекты. Именно он съедает больше всего памяти. Требования из документации проекта:

  • Память: минимум 6 ГБ, рекомендуется 8 ГБ. С 4 ГБ Immich работает, если отключить машинное обучение — без поиска по лицам и содержимому.
  • Процессор: минимум 2 ядра, рекомендуется 4.
  • Диск под базу: локальный SSD, не сетевая папка. Сама база занимает 1–3 ГБ.
  • Место под фото: объём вашей медиатеки плюс 10–20% на миниатюры и перекодированное видео.
СценарийТарифРесурсыЦена
Всё как в Google Фото: лица, поиск по содержимомуPremium4 vCPU, 8 ГБ, 50 ГБ$40/мес
Большая семья или несколько пользователей с видеоElite6 vCPU, 16 ГБ, 80 ГБ$60/мес
Просто архив и альбомы, без распознаванияMedium3 vCPU, 4 ГБ, 40 ГБ$20/мес

Первичная обработка большой медиатеки — миниатюры, распознавание лиц, перекодирование видео — может занять от нескольких часов до суток. Это нормально: дальше сервер обрабатывает только новые снимки.

Где хранить фотоархив

Главная сложность — объём. Медиатека за несколько лет легко занимает 200–500 ГБ, а диски VPS — от 20 до 100 ГБ. Варианты:

  • Небольшая медиатека, до 30–40 ГБ, — всё на диске VPS. Самый простой и быстрый вариант.
  • Медиатека на сотни гигабайт — VPS для Immich и базы данных плюс отдельное хранилище, подключённое к серверу как папка. Хранилище провайдера поддерживает SSH (sshfs) и SMB по запросу, стоит от $10 за 300 ГБ и $20 за 1 ТБ в месяц. База данных при этом остаётся на локальном диске VPS — так требует документация Immich.
  • Архив на несколько терабайт с большим объёмом видео — выделенный сервер с большими дисками.

Сетевая папка медленнее локального диска: просмотр работает нормально, но первичная обработка большой медиатеки займёт больше времени. Проверьте скорость на тестовом периоде, прежде чем переносить весь архив.

Где разместить сервер

Для пользователей из России удобна Финляндия: 20–40 мс задержки, процессоры Xeon Gold и NVMe — база данных и миниатюры работают быстрее, чем на обычном SSD. Если важно, чтобы снимки хранились в России, — российская площадка. Для просмотра фото задержка почти не важна, важнее скорость выгрузки с телефона, а она упирается в ваш интернет, а не в сервер.

Установка

Подготовьте сервер: обновления, вход по ключу, firewall — по статье «Как настроить VPS после покупки». Затем установите Docker с плагином Compose — см. «Docker на VPS». Нужна именно команда docker compose: старый docker-compose Immich не поддерживает.

Создайте папку и скачайте файлы из официального релиза:

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

Откройте .env и поменяйте:

  • UPLOAD_LOCATION — папка для фото, например /srv/immich/library, или точка подключения хранилища;
  • DB_DATA_LOCATION — папка для базы данных на локальном диске, например /srv/immich/postgres;
  • DB_PASSWORD — длинный пароль только из латинских букв и цифр: спецсимволы Docker может прочитать неправильно;
  • TZ — раскомментируйте и укажите часовой пояс, например Europe/Moscow.

Если памяти 4 ГБ и машинное обучение не нужно, отключите его в настройках Immich после установки. Запуск:

docker compose up -d

Через минуту-две Immich будет слушать порт 2283. Первый пользователь, которого вы зарегистрируете, станет администратором — сделайте это сразу, пока сервер не открыт наружу.

Доступ по домену и HTTPS

Не открывайте порт 2283 в интернет напрямую: фото и пароли должны идти по шифрованному соединению. Проще всего поставить перед Immich веб-сервер Caddy — он сам получит и будет продлевать сертификат Let's Encrypt. Направьте поддомен на IP сервера («DNS для начинающих»), установите Caddy и укажите в /etc/caddy/Caddyfile:

photos.example.com {
    reverse_proxy localhost:2283
}

После sudo systemctl reload caddy Immich откроется по адресу https://photos.example.com. Если используете nginx, увеличьте лимит размера загрузки (client_max_body_size), иначе длинные видео с телефона не загрузятся. Подробнее о сертификатах — в статье «SSL на VPS».

Firewall должен пропускать только SSH, 80 и 443:

sudo ufw allow OpenSSH
sudo ufw allow 80,443/tcp
sudo ufw enable

Подключение телефона

Установите приложение Immich из App Store или Google Play, укажите адрес сервера https://photos.example.com и войдите. В настройках резервного копирования выберите альбомы и включите фоновую выгрузку — новые снимки будут уходить на сервер сами. Для переноса старой медиатеки из Google Фото удобно выгрузить архив через Google Takeout и загрузить его через веб-интерфейс или утилиту командной строки Immich.

Бэкапы: обязательно

Если Immich — единственное место, где лежат ваши фото, бэкап обязателен. Нужно копировать две вещи:

  • Медиатеку — папку UPLOAD_LOCATION целиком.
  • Базу данных — в ней альбомы, лица, описания и связь файлов с ними. Immich по расписанию сохраняет дампы базы в подпапку backups внутри UPLOAD_LOCATION, поэтому при копировании медиатеки они попадут в бэкап автоматически.

Удобный инструмент — restic: он хранит версии, удаляет дубли и шифрует данные. Отправлять копии можно в хранилище провайдера по SFTP. Если медиатека сама лежит в хранилище, бэкап должен уходить в другое место — третью площадку или домашний диск. Как настроить — в статье «Сервер для бэкапа».

Обновление

Immich развивается быстро. Обычное обновление — две команды в папке с docker-compose.yml:

docker compose pull
docker compose up -d

Перед обновлением всегда читайте заметки к релизу. Переход на крупную версию требует ручных шагов: например, в версии 3.0 (июль 2026) поменялась переменная IMMICH_VERSION в .env и убрали поддержку старого расширения базы данных. Перед крупным обновлением сделайте свежий бэкап.

Immich или Nextcloud

Nextcloud — это облако для любых файлов, документов и совместной работы, фото в нём — одна из функций. Immich делает только фото и видео, но делает это лучше: быстрая лента, поиск по лицам и содержимому, удобное мобильное приложение. Если нужна замена Google Фото — Immich. Если замена Google Диску — Nextcloud. Можно держать оба на одном сервере, если хватает памяти.

Premium в Финляндии, 8 ГБ — $40/мес   Medium в Финляндии, 4 ГБ — $20/мес   Хранилище от $1/мес

Цены указаны на момент публикации, оплата у провайдера. Перед переносом всей медиатеки проверьте сервер на тестовом периоде: см. «VPS с пробным периодом».

Коротко

  • Immich — своя замена Google Фото: автовыгрузка с телефона, лица, поиск, альбомы.
  • Нужно от 6 ГБ памяти, рекомендуется 8 ГБ — тариф Premium; без распознавания хватит Medium.
  • Большую медиатеку храните в отдельном хранилище, базу данных — только на локальном диске VPS.
  • Установка — docker-compose.yml и .env из официального релиза, затем docker compose up -d.
  • Порт 2283 наружу не открывайте: доступ через Caddy с HTTPS.
  • Бэкап медиатеки и дампов базы — в другое место, перед крупными обновлениями — обязательно.