Tropic Host

Immich на VPS: установка своего облака для фото и видео

5 мин чтения
Tropic
Immich на VPS: установка своего облака для фото и видео

Immich: установка собственного облака для фото и видео на VPS

Immich — self-hosted-сервис для хранения и автоматической загрузки фотографий и видео. Он предлагает мобильные приложения, веб-интерфейс, альбомы, умный поиск и распознавание лиц, а библиотеку размещает на выбранном вами сервере.

Ниже разберем требования Immich, установку на Ubuntu через Docker Compose, подключение HTTPS, телефона и внешнего бэкапа.

Immich за шесть шагов

  1. Создать Linux VPS с достаточным объемом RAM и диска.
  2. Направить поддомен, например photos.example.com, на IP сервера.
  3. Установить Docker и скачать официальную конфигурацию Immich.
  4. Указать пути к медиатеке и базе данных, запустить контейнеры.
  5. Закрыть внутренний порт и подключить HTTPS.
  6. Установить мобильное приложение и настроить внешний бэкап.

Что такое Immich

Immich — приложение с открытым исходным кодом для самостоятельного управления фото- и видеотекой. Снимки отображаются на временной шкале, объединяются в альбомы, находятся через поиск и автоматически отправляются с телефона на сервер.

Главное отличие от обычного облачного фотосервиса — контроль над серверной частью. Файлы находятся на вашем VPS или домашнем сервере, но владелец сам отвечает за свободное место, обновления, безопасность и резервное копирование.

ПараметрОблачный фотосервисImmich
Где хранятся файлыУ провайдераНа вашем сервере
ОбслуживаниеВыполняет провайдерВыполняет владелец
РасходыТариф за объемVPS, диск и бэкапы

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

Основные возможности Immich

  • Автоматическая загрузка. Приложения Android и iOS отправляют фото и видео из выбранных альбомов. По умолчанию используется Wi-Fi, а уже существующие файлы пропускаются по контрольной сумме.
  • Умный поиск. Сервис ищет по людям, месту, дате, камере, тексту на изображении и описанию содержимого. Лица группируются, после чего им можно присвоить имена.
  • Альбомы и общий доступ. Поддерживаются несколько пользователей, совместные альбомы, партнерский доступ и публичные ссылки с паролем и сроком действия.
  • Карта и метаданные. Immich читает EXIF, показывает место съемки, создает воспоминания и поддерживает избранное, архив и внешние библиотеки.

Машинное обучение особенно нагружает CPU и RAM во время первого импорта. После создания миниатюр и индексов повседневная нагрузка обычно становится ниже.

Требования Immich к серверу

Официальные требования актуальных версий:

  • 64-битная Linux- или Unix-подобная система;
  • минимум 2 ядра CPU, рекомендуется 4;
  • минимум 6 ГБ RAM, рекомендуется 8 ГБ;
  • Docker Engine с плагином docker compose;
  • локальный SSD для базы PostgreSQL;
  • место под оригиналы, миниатюры и перекодированные видео.

На сервере с 4 ГБ RAM Immich можно запускать с отключенными функциями машинного обучения. Для распознавания лиц и умного поиска лучше сразу выбирать 8 ГБ.

Миниатюры и перекодированные файлы в среднем добавляют 10–20% к медиатеке. Для архива на 200 ГБ стоит выделить хотя бы 240–260 ГБ. Каталог базы DB_DATA_LOCATION должен находиться на локальном SSD, а не на сетевом диске.

Практическая стартовая конфигурация: 4 vCPU, 8 ГБ RAM, Ubuntu 24.04 LTS и SSD с запасом 20–30% сверх размера исходной библиотеки. Отдельная видеокарта не обязательна, но может ускорить обработку большого архива.

Как установить Immich на VPS

В примере используется Ubuntu 24.04 и поддомен photos.example.com.

1. Настройте DNS и подготовьте Ubuntu

Создайте DNS-запись A, направленную на IPv4-адрес VPS. Затем подключитесь по SSH:

ssh root@SERVER_IP
apt update && apt upgrade -y

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

Не закрывайте текущую SSH-сессию, пока не проверите новое подключение.

2. Установите Docker и Docker Compose

apt install -y ca-certificates curl
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

tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

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

Нужна именно команда docker compose: устаревшая docker-compose проектом больше не поддерживается.

3. Скачайте и настройте Immich

mkdir -p /opt/immich /srv/immich-data
cd /opt/immich

curl -L -o docker-compose.yml \
  https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
curl -L -o .env \
  https://github.com/immich-app/immich/releases/latest/download/example.env

Откройте файл:

nano /opt/immich/.env

Измените основные параметры:

UPLOAD_LOCATION=/srv/immich-data
DB_DATA_LOCATION=/opt/immich/postgres
TZ=Europe/Berlin
DB_PASSWORD=ЗАМЕНИТЕ_НА_ДЛИННЫЙ_ПАРОЛЬ

Укажите свой часовой пояс. Пароль PostgreSQL должен состоять из латинских букв и цифр; случайное значение даст команда openssl rand -hex 24. Остальные строки оставьте как в актуальном example.env.

4. Закройте внутренний порт и запустите контейнеры

В docker-compose.yml найдите порт сервиса immich-server:

ports:
  - '2283:2283'

Замените его на:

ports:
  - '127.0.0.1:2283:2283'

Теперь порт доступен только самому VPS. Запустите сервис:

cd /opt/immich
docker compose up -d
docker compose ps

Для диагностики используйте docker compose logs --tail=200.

5. Подключите HTTPS через Caddy

apt install -y caddy

cat > /etc/caddy/Caddyfile <<'EOF'
photos.example.com {
    reverse_proxy 127.0.0.1:2283
}
EOF

caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddy

Caddy автоматически запросит сертификат, если DNS указывает на VPS, а порты 80 и 443 доступны. Immich должен работать в корне домена или поддомена; адрес example.com/immich не поддерживается.

6. Создайте администратора и подключите телефон

Откройте https://photos.example.com. Первый зарегистрированный пользователь становится администратором и может создавать другие учетные записи.

Установите Immich из App Store или Google Play. На экране входа укажите адрес без /api:

https://photos.example.com

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

Обновление Immich

Перед обновлением прочитайте примечания к релизу, особенно при переходе на новую основную версию:

cd /opt/immich
docker compose pull
docker compose up -d
docker image prune

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

Резервное копирование Immich

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

  • весь /srv/immich-data;
  • /opt/immich/.env и docker-compose.yml;
  • конфигурацию Caddy.

Копия на том же VPS не защищает от отказа диска или удаления сервера. Отправляйте данные на отдельный сервер, NAS или в объектное хранилище и придерживайтесь схемы 3-2-1. Периодически проверяйте тестовое восстановление, а не только наличие файлов бэкапа.

Какой VPS выбрать для Immich

Для полноценной работы с распознаванием лиц и умным поиском разумно выбирать VPS от 4 vCPU и 8 ГБ RAM. Размер диска рассчитывайте по медиатеке с запасом на миниатюры, видео и рост архива.

Для этой задачи подойдет Linux VPS от tropic.host с постоянным IP и SSD-хранилищем. Начать можно с конфигурации на 8 ГБ RAM, а при росте библиотеки увеличить ресурсы. Базу PostgreSQL храните на локальном быстром диске, а резервную копию — вне этого VPS.

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

Ограничения Immich

Self-hosted-размещение не гарантирует надежность. Слабый пароль, открытый порт 2283, устаревшие контейнеры или отсутствие внешнего бэкапа создают риск потери данных.

Immich также не является точной копией Google Photos или iCloud: возможности редактирования и фоновой синхронизации отличаются, а скорость анализа зависит от оборудования. Перед переносом единственного архива проверьте сервис на небольшой тестовой библиотеке.

Краткий вывод

Immich позволяет создать собственную фотогалерею с мобильной загрузкой, альбомами, распознаванием лиц, поиском и общим доступом. Для актуальной версии лучше подготовить Linux VPS с 4 ядрами, 8 ГБ RAM и SSD с запасом не менее 20–30%.

После установки настройте HTTPS, обновления и внешний бэкап медиакаталога вместе с базой данных. Именно резервное копирование, а не сам факт self-hosted-размещения, защищает фотографии от потери.

FAQ

Immich бесплатный?

Сервер Immich распространяется с открытым исходным кодом и может работать без обязательной подписки. Оплачиваются VPS, домен, дисковое пространство и резервные копии.

Сколько оперативной памяти нужно Immich?

Официальный минимум — 6 ГБ RAM, рекомендуемый объем — 8 ГБ. На 4 ГБ придется отключить машинное обучение.

Можно ли установить Immich без домена?

Технически да, но для постоянного доступа с телефона лучше использовать домен и HTTPS. Это защищает авторизацию и передачу файлов.

Заменяет ли Immich резервную копию фотографий?

Нет. Отдельно копируйте медиакаталог и базу данных на другое устройство или площадку.

Можно ли перенести существующий фотоархив?

Да. Файлы можно загрузить через веб-интерфейс или CLI либо подключить каталог как внешнюю библиотеку. Перед массовым импортом сделайте копию исходных данных.