Перейти к основному содержимому
Вернуться в категорию

Установка Immich: Самостоятельно размещаемое резервное копирование фото и видео

Установка Immich через Docker, автоматическое резервное копирование фото и видео, распознавание лиц, вид на карте, общие альбомы, мобильное приложение и self-hosted альтернатива Google Photos.

Время чтения: 14 dk Самостоятельный хостинг
immichфотовидеорезервное копированиеself-hostingdockerальтернатива google photos

Содержание

Установка Immich: Самостоятельно размещаемое резервное копирование фото и видео

Immich — это self-hosted платформа для резервного копирования фото и видео, разработанная как open-source альтернатива Google Photos. Предлагает современные функции: автоматическое резервное копирование через мобильные приложения, распознавание лиц, вид на карте и общие альбомы.

Что такое Immich?

Immich позволяет хранить коллекцию фото и видео на собственном сервере:

  • Автоматическое резервное копирование: Фоновое копирование через приложения iOS и Android
  • Распознавание лиц: Автоматическое обнаружение и группировка лиц с помощью машинного обучения
  • Вид на карте: Просмотр фотографий на карте по GPS-данным
  • Общие альбомы: Обмен альбомами с семьёй и друзьями
  • Хронология: Хронологический просмотр фотографий
  • Поиск: Умный поиск по объектам, сценам и тексту

Системные требования

  • Docker и Docker Compose
  • Минимум 4 ГБ RAM (рекомендуется 8 ГБ для ML-моделей)
  • Достаточно дискового пространства
  • PostgreSQL 14+ (устанавливается автоматически через Docker Compose)

Установка через Docker

hljs yaml
version: '3.8'

services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:release
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - "2283:2283"
    depends_on:
      - redis
      - database
    restart: always

  immich-machine-learning:
    container_name: immich_machine_learning
    image: ghcr.io/immich-app/immich-machine-learning:release
    volumes:
      - model-cache:/cache
    env_file:
      - .env
    restart: always

  redis:
    container_name: immich_redis
    image: redis:6.2-alpine
    restart: always

  database:
    container_name: immich_postgres
    image: tensorchord/pgvecto-rs:pg14-v0.2.0
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
    volumes:
      - pgdata:/var/lib/postgresql/data
    restart: always

volumes:
  pgdata:
  model-cache:

Файл .env

hljs bash
UPLOAD_LOCATION=/data/immich/upload
DB_PASSWORD=StrongPass123!
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
hljs bash
mkdir -p /data/immich/upload
docker compose up -d
docker logs immich_server -f

Доступ к веб-интерфейсу Immich: http://IP_СЕРВЕРА:2283. При первом входе необходимо создать учётную запись администратора.

Nginx Reverse Proxy

hljs nginx
server {
    listen 443 ssl http2;
    server_name photos.example.com;

    ssl_certificate /etc/letsencrypt/live/photos.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/photos.example.com/privkey.pem;

    client_max_body_size 50000M;

    location / {
        proxy_pass http://127.0.0.1:2283;
        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_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 600s;
    }
}

Настройка мобильного приложения

  1. Скачайте "Immich" из App Store или Google Play
  2. Введите URL сервера: https://photos.example.com
  3. Войдите с именем пользователя и паролем
  4. Настройте параметры автоматического резервного копирования

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

hljs yaml
services:
  immich-server:
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /mnt/photos:/mnt/photos:ro

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

hljs bash
# Резервное копирование базы данных
docker exec immich_postgres pg_dumpall -U postgres | \
  gzip > /backups/immich-db-$(date +%Y%m%d).sql.gz

# Резервное копирование директории загрузок
rsync -avz /data/immich/upload/ /backups/immich-upload/

Обновление

hljs bash
docker exec immich_postgres pg_dumpall -U postgres > immich-backup.sql
docker compose pull
docker compose up -d

Immich находится в активной разработке. Крупные обновления версий могут содержать несовместимые изменения. Всегда делайте резервную копию базы данных перед обновлением и читайте release notes.

Заключение

Immich — мощная self-hosted альтернатива Google Photos. С 8 ГБ RAM на серверах REXE вы можете управлять тысячами фотографий без проблем.