Immich: установка собственного облака для фото и видео на VPS
Immich — self-hosted-сервис для хранения и автоматической загрузки фотографий и видео. Он предлагает мобильные приложения, веб-интерфейс, альбомы, умный поиск и распознавание лиц, а библиотеку размещает на выбранном вами сервере.
Ниже разберем требования Immich, установку на Ubuntu через Docker Compose, подключение HTTPS, телефона и внешнего бэкапа.
Immich за шесть шагов
- Создать Linux VPS с достаточным объемом RAM и диска.
- Направить поддомен, например
photos.example.com, на IP сервера. - Установить Docker и скачать официальную конфигурацию Immich.
- Указать пути к медиатеке и базе данных, запустить контейнеры.
- Закрыть внутренний порт и подключить HTTPS.
- Установить мобильное приложение и настроить внешний бэкап.
Что такое 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 caddyCaddy автоматически запросит сертификат, если 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 либо подключить каталог как внешнюю библиотеку. Перед массовым импортом сделайте копию исходных данных.
