Immich — это современное, высокопроизводительное решение для управления фото и видео, альтернатива Google Photos, которое можно развернуть на своём сервере. В этой статье мы развернём Immich с помощью Docker, настроим внешнюю библиотеку для доступа к фотографиям из Nextcloud и обеспечим корректную работу веб-интерфейса.
1. Подготовка сервера
Мы предполагаем, что у вас есть сервер на Ubuntu/Debian (или любая другая ОС с поддержкой Docker). Убедитесь, что у вас есть права root или sudo.
1.1. Установка Docker
plaintextsudo apt update sudo apt install -y 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 update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo systemctl enable docker --now
1.2. Добавление пользователя в группу docker
plaintextsudo groupadd docker # если группы нет sudo usermod -aG docker $USER
Выйдите и зайдите заново или выполните newgrp docker.
2. Установка Immich
2.1. Создание каталога и загрузка конфигураций
plaintextmkdir ~/immich-app cd ~/immich-app 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
2.2. Настройка переменных окружения
Отредактируйте файл .env:
plaintextnano .env
Обязательно задайте:
DB_PASSWORD — надёжный пароль для базы данных
UPLOAD_LOCATION=./library (можно изменить, если нужно)
TZ=Europe/Moscow (или ваш часовой пояс)
Сохраните файл (Ctrl+O, Enter, Ctrl+X).
2.3. Запуск Immich
plaintextdocker compose up -d
Через минуту проверьте статус:
plaintextdocker compose ps
Все контейнеры должны быть в состоянии Up.
3. Доступ к веб-интерфейсу
Immich по умолчанию слушает порт 2283. Откройте в браузере:
plaintexthttp://IP_сервера:2283
Создайте учётную запись администратора (это будет ваш первый пользователь).
4. Подключение внешней папки (например, из Nextcloud)
Если вы хотите, чтобы Immich показывал фотографии, уже загруженные в Nextcloud, это делается через внешние библиотеки.
4.1. Монтирование папки в контейнеры
Остановите Immich:
plaintextcd ~/immich-app docker compose down
Отредактируйте docker-compose.yml и добавьте монтирование для immich-server и immich-microservices (если есть). Добавьте строку в секции volumes:
plaintextservices: immich-server: # ... остальное volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro - /путь/к/папке/Nextcloud:/data # Добавьте эту строку immich-microservices: # ... остальное volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro - /путь/к/папке/Nextcloud:/data # Добавьте эту строку
Пример для папки ФОТОГРАФИИ пользователя Nextcloud:
plaintext- /mnt/nextcloud/username/files/ФОТОГРАФИИ/:/data
Перезапустите контейнеры:
plaintextdocker compose up -d
4.2. Добавление библиотеки в веб-интерфейсе
Зайдите в Immich под администратором.
Нажмите на шестерёнку → Администрирование → External Libraries.
Нажмите Create Library.
После создания нажмите на три точки у библиотеки → Edit Import Paths.
Добавьте путь: /data.
Нажмите Save, затем на три точки → Scan New Library Files.
Immich начнёт сканирование папки и создаст миниатюры. Статус можно смотреть в Администрирование → Jobs.
4.3. Права доступа
Если Immich не видит файлы, выполните на хосте:
plaintextsudo chmod -R a+rX /путь/к/папке/Nextcloud
5. Настройка обратного прокси (Nginx)
Для доступа по домену и HTTPS настройте Nginx. Пример конфигурации:
plaintextserver { listen 443 ssl; server_name photos.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; client_max_body_size 50000M; 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_redirect off; proxy_read_timeout 600s; proxy_send_timeout 600s; send_timeout 600s; location / { proxy_pass http://127.0.0.1:2283; } }
Перезагрузите Nginx:
plaintextsudo nginx -t && sudo systemctl reload nginx
6. Обновление Immich
Для обновления до последней версии:
plaintextcd ~/immich-app docker compose down docker compose pull docker compose up -d
7. Управление резервными копиями
База данных хранится в томе pgdata (см. docker volume ls).
Загруженные через Immich оригиналы — в папке, указанной в UPLOAD_LOCATION.
Для бэкапа можно копировать эти данные.
