Self-hosted Google Photos: Полное руководство по установке Immich

Установите Immich — мощный аналог Google Photos под вашим контролем. Пошаговый гайд по развертыванию на Docker для хомелаба и NAS.

---
title: "Self-hosted Google Photos: Полное руководство по установке Immich"
description: "Установите Immich — мощный аналог Google Photos под вашим контролем. Пошаговый гайд по развертыванию на Docker для хомелаба и NAS."
slug: self-hosted-immich-install-guide
---

# Полное руководство по установке Immich: Self-Hosted Google Photos

## TOC

- [Введение](#введение)
- [Предварительные требования](#предварительные-требования)
- [Пошаговая установка Immich](#пошаговая-установка-immich)
- [Первоначальная настройка](#первоначальная-настройка)
- [Настройка бэкапа и безопасности](#настройка-бэкапа-и-безопасности)
- [Полезные фичи](#полезные-фичи)
- [Заключение](#заключение)

## Введение

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

Immich — это высокопроизводительное решение,开源-альтернатива Google Photos, которое предлагает:
- Неограниченное хранилище (ограничено только вашим железом).
- AI-тегирование и поиск (компьютерное зрение).
- Мобильное приложение с авто-бэкапом.
- Поддержку RAW форматов и видео.

> **WARNING:** При самостоятельном хостинге ответственность за сохранность данных и uptime лежит исключительно на вас. Не пренебрегайте бэкапами.

## Предварительные требования

Для развертования Immich вам потребуется:

1. **Сервер:** VPS, NAS (Synology/QNAP) или Homelab на базе Linux (Ubuntu/Debian предпочтительны).
    *   *Минимум:* 2 vCPU, 4 ГБ RAM (рекомендуется 8+ ГБ для ML задач).
    *   *Дисковое пространство:* Под ваши медиафайлы + резерв.
2. **Docker и Docker Compose:** Immich работает исключительно в контейнерах.
3. **Домен и SSL:** Желательно наличие домена для удобного и безопасного доступа извне.

### Установка Docker (если еще не установлен)

```bash
# Для Ubuntu/Debian
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
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
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Пошаговая установка Immich

1. Подготовка директорий

Создадим отдельную папку для конфигурации и данные.

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

2. Скачивание docker-compose.yml

Официальный репозиторий содержит готовый файл конфигурации.

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

3. Настройка переменных окружения (.env)

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

nano .env

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

  • UPLOAD_LOCATION: Путь к папке, куда будут сохраняться ваши фото (обязательно измените с примера).
    • Пример: UPLOAD_LOCATION=/mnt/nas/photos
  • DB_PASSWORD: Пароль для базы данных. Придумайте сложный.
  • JWT_SECRET: Секретный ключ для токенов. Оставьте сгенерированным или измените.

NOTE: В файле .env также можно настроить порты (по умолчанию 3000 для веб-интерфейса и 2283 для API).

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

Запускаем стек:

sudo docker compose up -d

Docker скачает образы (PostgreSQL, Redis, Immich Server, Microservices, Machine Learning, Web) и запустит их.

Проверьте логи на предмет ошибок:

sudo docker compose logs -f

Первоначальная настройка

Доступ к веб-интерфейсу

Откройте браузер и перейдите по адресу вашего сервера: http://<IP-адрес-сервера>:3000 (или ваш порт из .env).

Создание пользователя

  1. При первом входе система попросит создать администратора.
  2. Укажите Email и пароль.
  3. После входа вы попадете на главный экран.

Импорт медиа

В интерфейсе перейдите в Jobs -> Library и создайте внешнюю библиотеку. Укажите путь к папке с фото, которую вы монтировали в Docker Compose (volume). Immich просканирует файлы и начнет создавать превью.

Настройка бэкапа и безопасности

Бэкап данных

Immich хранит данные в двух местах:

  1. Загруженные файлы (фото/видео): В папке, указанной в UPLOAD_LOCATION.
  2. База данных (метаданные, пользователи, настройки): Внутри контейнера immich_postgres.

WARNING: Просто копировать папку с фото недостаточно. Без базы данных вы потеряете теги, альбомы и даты съемки.

Рекомендуемый подход (Postgres Dump):

Создайте скрипт бэкапа (backup.sh):

#!/bin/bash
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
BACKUP_DIR="/path/to/your/backups"

# Бэкап базы данных
docker exec immich_postgres pg_dump -U postgres immich > $BACKUP_DIR/immich_db_$TIMESTAMP.sql

# Бэкап папки с медиа (опционально, лучше использовать rsync/rsnapshot)
rsync -av /path/to/your/photos $BACKUP_DIR/

Добавьте его в crontab для выполнения раз в сутки.

Безопасность и SSL (Reverse Proxy)

Никогда не открывайте порт 3000 напрямую в интернет. Используйте Reverse Proxy (Nginx Proxy Manager, Traefik, Caddy) для терминации SSL.

Пример конфигурации для Nginx (если вы настраиваете вручную):

server {
    listen 443 ssl http2;
    server_name your.domain.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    location / {
        proxy_pass http://127.0.0.1:3000;
        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;
        proxy_buffering off;
        client_max_body_size 0;
    }
}

Полезные фичи

Мобильное приложение

Скачайте приложение Immich (iOS/Android). В настройках укажите ваш URL (https://your.domain.com) и данные для входа. Включите авто-бэкап.

AI-тегирование

Immich использует модели машинного обучения (CLIP, Detectron2) для распознавания объектов и лиц.

  • Настройте модель в Admin Jobs -> ML Training.
  • Поиск работает в реальном времени: попробуйте найти "пляж" или "собака".

Внешние библиотеки

Вместо загрузки файлов через веб-интерфейс (что дублирует данные на диске), вы можете подключить "Внешнюю библиотеку" (External Library). Это позволяет Immich индексировать существующую структуру папок на вашем NAS/сервере. Идеально для миграции с готовых коллекций.

Заключение

Вы развернули высокопроизводительную систему управления медиа, полностью контролируя свои данные. Immich активно развивается, поэтому следите за обновлениями.

Полезные ссылки: