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).
Создание пользователя
- При первом входе система попросит создать администратора.
- Укажите Email и пароль.
- После входа вы попадете на главный экран.
Импорт медиа
В интерфейсе перейдите в Jobs -> Library и создайте внешнюю библиотеку. Укажите путь к папке с фото, которую вы монтировали в Docker Compose (volume). Immich просканирует файлы и начнет создавать превью.
Настройка бэкапа и безопасности
Бэкап данных
Immich хранит данные в двух местах:
- Загруженные файлы (фото/видео): В папке, указанной в
UPLOAD_LOCATION. - База данных (метаданные, пользователи, настройки): Внутри контейнера
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 активно развивается, поэтому следите за обновлениями.
Полезные ссылки: