eco Начальный Туториал

Установка Immich на VPS: развёртывание self-hosted альтернативы Google Photos через Docker

calendar_month Май 11, 2026 schedule 9 мин. чтения visibility 35 просмотров
Установка Immich на VPS: развёртывание self-hosted альтернативы Google Photos через Docker
info

Нужен сервер для этого гайда? Мы предлагаем выделенные серверы и VPS в 50+ странах с мгновенной настройкой.

Нужен сервер для этого гайда?

Разверните VPS или выделенный сервер за минуты.

Установка Immich на VPS: развёртывание self-hosted альтернативы Google Photos через Docker

TL;DR

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

  • Полная независимость: Ваши данные хранятся на вашем VPS, а не на серверах корпораций.
  • Интеллектуальные функции: Распознавание лиц, поиск по объектам и геопозиции работают локально.
  • Безопасность: Настройка SSL-сертификатов, Firewall и автоматических бэкапов.
  • Масштабируемость: Возможность подключения внешних хранилищ и оптимизация под большие библиотеки (1ТБ+).
  • Версия 2026: Все команды и конфигурации актуальны для современных дистрибутивов Linux.

1. Что мы настраиваем и зачем: Эволюция Self-hosted Photo Storage

Схема: 1. Что мы настраиваем и зачем: Эволюция Self-hosted Photo Storage
Схема: 1. Что мы настраиваем и зачем: Эволюция Self-hosted Photo Storage

Долгое время Google Photos оставался безальтернативным лидером для хранения мобильных медиаархивов. Однако изменение политики бесплатного хранения и растущие опасения пользователей по поводу приватности данных привели к взрывному росту популярности self-hosted решений. Immich — это не просто скрипт для просмотра картинок, это сложная микросервисная архитектура, написанная на TypeScript и Dart, которая ставит своей целью повторить и превзойти пользовательский опыт коммерческих облаков.

Почему стоит выбрать Immich на собственном VPS вместо готовых облачных решений?

  • Контроль данных: Вы точно знаете, где физически находятся ваши файлы. Никакие алгоритмы модерации не заблокируют ваш аккаунт из-за ложноположительных срабатываний.
  • Скорость работы: При использовании современного VPS с NVMe-дисками индексация и поиск работают быстрее, чем в перегруженных облаках.
  • Отсутствие подписок: Вы платите только за ресурсы сервера, а не за "аренду" места по завышенным тарифам.
  • Функционал: Поддержка RAW-форматов, живых фото (Live Photos), распознавание лиц на базе машинного обучения и удобные мобильные приложения для iOS и Android.

В рамках этого туториала мы пройдем путь от "голого" сервера до работающего сервиса с настроенным доменом и мобильным приложением.

2. Какой VPS-конфиг нужен под Immich в 2026 году

Схема: 2. Какой VPS-конфиг нужен под Immich в 2026 году
Схема: 2. Какой VPS-конфиг нужен под Immich в 2026 году

Immich — ресурсный проект. В отличие от простых статических сайтов, он активно использует Machine Learning (ML) для анализа изображений, классификации лиц и генерации превью. Это накладывает определенные требования к железу.

Ресурс Минимум (для 1-2 пользователей) Рекомендуемо (для семьи) Профи (10+ пользователей)
CPU 2 ядра (x86_64) 4-6 ядер 8+ ядер / Dedicated
RAM 4 GB 8-12 GB 16 GB+
Disk 40 GB SSD (система) 200 GB+ NVMe 1 TB+ (Block Storage/HDD)
OS Ubuntu 24.04 LTS Ubuntu 24.04 / Debian 12 Debian 12

Особое внимание стоит уделить оперативной памяти. Компонент immich-machine-learning может потреблять значительный объем RAM при первичной индексации большой библиотеки. Если памяти будет меньше 4 ГБ, Docker может начать аварийно завершать процессы (OOM Killer).

Для комфортной работы и быстрой генерации превью лучше всего выбрать подходящий VPS с SSD или NVMe накопителями, так как база данных PostgreSQL и поисковый движок чувствительны к задержкам ввода-вывода (IOPS).

Если ваша библиотека превышает 500 ГБ, рассмотрите возможность подключения дополнительного блочного хранилища (Block Storage) или использование выделенного сервера (Dedicated), где можно установить емкие HDD диски в RAID-массиве для повышения надежности.

3. Подготовка сервера: Безопасность и базовые утилиты

Схема: 3. Подготовка сервера: Безопасность и базовые утилиты
Схема: 3. Подготовка сервера: Безопасность и базовые утилиты

Прежде чем устанавливать Docker, необходимо привести сервер в порядок. Мы предполагаем, что у вас есть свежая установка Ubuntu 24.04 или 26.04.

Первым делом обновим список пакетов и саму систему:

sudo apt update && sudo apt upgrade -y

Установим необходимые системные утилиты, которые пригодятся нам для диагностики и работы:

sudo apt install -y curl wget git vim software-properties-common ufw fail2ban htop

Настройка безопасности — критический шаг. Настроим Firewall (UFW), разрешив только SSH и порты для веб-трафика:

sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw --force enable

Рекомендуется также создать отдельного пользователя с правами sudo, чтобы не работать под root постоянно:

adduser adminuser
usermod -aG sudo adminuser

После этого лучше настроить вход по SSH-ключам и отключить вход по паролю в файле /etc/ssh/sshd_config.

4. Установка Docker и Docker Compose

Схема: 4. Установка Docker и Docker Compose
Схема: 4. Установка Docker и Docker Compose

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

Добавляем GPG-ключ Docker:

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

Добавляем репозиторий в список источников:

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Устанавливаем Docker Engine и Docker Compose плагин:

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Проверяем корректность установки:

docker --version
docker compose version

Добавьте своего пользователя в группу docker, чтобы запускать контейнеры без sudo:

sudo usermod -aG docker $USER

Внимание: Для вступления изменений в силу нужно перезайти в систему или выполнить команду newgrp docker.

5. Пошаговое развертывание Immich

Схема: 5. Пошаговое развертывание Immich
Схема: 5. Пошаговое развертывание Immich

Immich требует несколько файлов для запуска: основной манифест docker-compose.yml, файл конфигурации переменных окружения .env и базу данных PostgreSQL с расширением pgvector.

Создадим директорию для проекта:

mkdir -p ~/immich-app && cd ~/immich-app

Скачаем актуальные файлы конфигурации напрямую из официального репозитория Immich:

wget https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget https://github.com/immich-app/immich/releases/latest/download/example.env -O .env

Давайте разберем, что находится внутри docker-compose.yml. В нем описаны следующие сервисы:

  • immich-server: Основной API и бэкенд приложения.
  • immich-microservices: Задачи по обработке видео, генерации превью и метаданных.
  • immich-machine-learning: Сервис для распознавания лиц и классификации объектов.
  • postgres: База данных для хранения метаданных и векторов лиц.
  • redis: Очередь задач и кеширование.

Теперь создадим папку, где будут физически храниться ваши фотографии:

mkdir -p /home/$USER/immich-data/photos
mkdir -p /home/$USER/immich-data/postgres

6. Тонкая настройка: Переменные окружения и секреты

Схема: 6. Тонкая настройка: Переменные окружения и секреты
Схема: 6. Тонкая настройка: Переменные окружения и секреты

Файл .env содержит все ключевые настройки. Откройте его для редактирования:

nano .env

Вам необходимо изменить следующие параметры:

# Путь к вашим фото (обязательно укажите абсолютный путь)
UPLOAD_LOCATION=/home/adminuser/immich-data/photos

# Версия Immich (рекомендуется оставить release)
IMMICH_VERSION=release

# Секреты для базы данных (сгенерируйте свои сложные пароли!)
DB_PASSWORD=your_strong_password_here
DB_USERNAME=postgres
DB_DATABASE_NAME=immich

# Настройки Redis
REDIS_HOSTNAME=redis

Если вы планируете использовать аппаратное ускорение для кодирования видео (например, если ваш VPS поддерживает Intel QuickSync или у вас есть GPU), в docker-compose.yml нужно будет пробросить соответствующие устройства (/dev/dri). Для большинства стандартных VPS мы оставляем программное кодирование.

После настройки запустим контейнеры:

docker compose up -d

Проверим статус запуска:

docker compose ps

Если все сервисы находятся в статусе Up, значит, бэкенд запущен и слушает порт 2283. Однако открывать этот порт напрямую в интернет небезопасно и неудобно (нет HTTPS).

7. Настройка HTTPS через Caddy: Доступ из внешнего мира

Схема: 7. Настройка HTTPS через Caddy: Доступ из внешнего мира
Схема: 7. Настройка HTTPS через Caddy: Доступ из внешнего мира

Для безопасного доступа через домен (например, photos.yourdomain.com) мы будем использовать Caddy. Это современный веб-сервер, который автоматически получает и обновляет SSL-сертификаты от Let's Encrypt.

Установим Caddy:

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1G 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1G 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

Создадим конфигурационный файл Caddyfile:

sudo nano /etc/caddy/Caddyfile

Добавьте туда следующий блок (замените домен на свой):

photos.yourdomain.com {
    reverse_proxy localhost:2283
    
    # Настройки для загрузки больших файлов
    request_body {
        max_size 10GB
    }
}

Перезапустите Caddy:

sudo systemctl restart caddy

Теперь при переходе по вашему домену вы увидите экран приветствия Immich, где сможете создать первого администратора.

8. Бэкапы и обслуживание: Как не потерять семейный архив

Схема: 8. Бэкапы и обслуживание: Как не потерять семейный архив
Схема: 8. Бэкапы и обслуживание: Как не потерять семейный архив

Self-hosting накладывает на вас ответственность за сохранность данных. В Immich нужно бэкапить три вещи: базу данных PostgreSQL, файлы фотографий (Uploads) и файл .env.

Бэкап базы данных

Создадим простой скрипт для ежедневного дампа базы:

mkdir -p ~/immich-backups
nano ~/immich-backups/backup.sh

Текст скрипта:

#!/bin/bash
DATE=$(date +%Y-%m-%d)
BACKUP_DIR="/home/adminuser/immich-backups"
docker exec -t immich_postgres pg_dumpall -c -U postgres > $BACKUP_DIR/immich_db_$DATE.sql
# Удаляем бэкапы старше 30 дней
find $BACKUP_DIR -type f -name ".sql" -mtime +30 -delete

Сделайте скрипт исполняемым и добавьте его в cron:

chmod +x ~/immich-backups/backup.sh
(crontab -l ; echo "0 3    /home/adminuser/immich-backups/backup.sh") | crontab -

Синхронизация файлов

Для самих фотографий рекомендуется использовать инструменты вроде Restic или Rclone, чтобы отправлять их в облачное хранилище (S3, Backblaze B2). Команда для Rclone может выглядеть так:

rclone sync /home/adminuser/immich-data/photos remote:immich-backup-bucket

Обновление Immich

Immich обновляется часто. Для обновления выполните:

cd ~/immich-app
docker compose pull
docker compose up -d

Важно: Всегда читайте Release Notes на GitHub перед обновлением, так как иногда требуются ручные действия (Breaking Changes).

9. Troubleshooting + FAQ: Решение типичных проблем

Почему лица не распознаются сразу после загрузки?

Распознавание лиц — это фоновая задача. После загрузки фото оно попадает в очередь. Вы можете отслеживать прогресс в разделе Administration -> Job Settings. Если очередь стоит на месте, проверьте, запущен ли контейнер immich-machine-learning и хватает ли ему оперативной памяти. На слабых CPU этот процесс может занимать значительное время.

Какой VPS-конфиг минимально подойдёт для Immich?

Минимальный порог — 4 ГБ оперативной памяти и 2 ядра CPU. Однако на такой конфигурации интерфейс может "подтормаживать" во время индексации. Для комфортной работы рекомендуется 8 ГБ RAM. Если у вас огромная библиотека (более 100 000 фото), фокус смещается на скорость дисковой подсистемы — NVMe будет в разы предпочтительнее обычных SSD.

Что выбрать — VPS или dedicated для этой задачи?

Для большинства пользователей достаточно мощного VPS. Это дает гибкость: вы можете легко расширить объем диска или памяти. Dedicated-сервер стоит выбирать в двух случаях: если вам нужна максимальная приватность (физически выделенное железо) или если объем вашей библиотеки исчисляется терабайтами, так как стоимость хранения на больших HDD в составе выделенного сервера обычно ниже, чем стоимость блочного хранилища у облачных провайдеров.

Ошибка "Database is not ready" при старте. Что делать?

Обычно это означает, что контейнер с PostgreSQL еще не успел инициализироваться или упал из-за неверных прав на папку с данными. Проверьте логи: docker compose logs postgres. Убедитесь, что папка, указанная в .env, доступна пользователю, от которого запущен Docker.

Как перенести существующую библиотеку из Google Photos?

Используйте сервис Google Takeout для выгрузки архива. После скачивания воспользуйтесь утилитой Immich CLI. Она позволяет импортировать папки с сохранением структуры и метаданных. Не стоит просто копировать файлы в папку uploads, так как Immich должен проиндексировать их через API для корректной работы базы данных.

Immich потребляет слишком много ресурсов CPU, сервер греется/тормозит.

В настройках администратора (Job Settings) вы можете ограничить количество потоков (concurrency) для задач машинного обучения и генерации превью. Установите значение 1 или 2, чтобы оставить ресурсы для других задач сервера.

10. Выводы и следующие шаги

Мы успешно развернули Immich на VPS, обеспечив безопасность через Caddy и автоматизировав обслуживание. Теперь ваша медиатека находится под вашим полным контролем, а функционал распознавания объектов и лиц работает без участия сторонних корпораций.

Что делать дальше?

  • Скачайте мобильное приложение Immich в App Store или Google Play и настройте автоматический бэкап фотографий с вашего телефона.
  • Изучите раздел "External Libraries" — он позволяет подключить к Immich уже существующие на сервере папки с фото без их дублирования.
  • Настройте многофакторную аутентификацию (2FA) в профиле пользователя для максимальной защиты вашего архива.

Помните, что Immich активно развивается. Регулярно проверяйте обновления и делайте бэкапы перед каждым обновлением контейнеров. Теперь ваш личный "Google Photos" готов к работе!

Поделиться этой записью:

установка immich на vps: развёртывание self-hosted альтернативы google photos через docker
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.