Найти в Дзене

IMMICH - личное домашнее облачное хранилище фотографий (установка на ProxMox)

Уже давно я начал задумываться о своём собственном облаке, на замену GooglePhoto. Изначально для этой цели был выбран NextCloud, но он оказался очень тормозной. Пришлось искать альтернативы, более узко-направленные. И вот наконец я нашёл идеальное, на текущий момент, решение - IMMICH, домашнее облако для хранения фотографий и видео с возможностью синхронизации с телефоном. В одной из статей я рассказывал о том, что установлено на моём домашнем сервере. Там я упоминал IMMICH. А в данной статье я хотел бы затронуть тему установки и настройки данного облачного сервиса. Я использую ProxMox на сервере как основную систему. Это не совсем ОС, а что-то вроде надстройки. Поэтому и установку всего делаю внутри контейнера. Но можно и напрямую, через Docker. Сначала нужно выбрать место, где будут лежать фотки и видео. У меня это /mnt/photos/immich-app внутри контейнера. Папка /mnt/photos - примонтирована подключена к контейнеру через настройки в файле /etc/pve/lxc/{ContainerID}.conf. Для этого нуж
Оглавление

Уже давно я начал задумываться о своём собственном облаке, на замену GooglePhoto. Изначально для этой цели был выбран NextCloud, но он оказался очень тормозной. Пришлось искать альтернативы, более узко-направленные. И вот наконец я нашёл идеальное, на текущий момент, решение - IMMICH, домашнее облако для хранения фотографий и видео с возможностью синхронизации с телефоном.

В одной из статей я рассказывал о том, что установлено на моём домашнем сервере. Там я упоминал IMMICH. А в данной статье я хотел бы затронуть тему установки и настройки данного облачного сервиса.

Установка

Я использую ProxMox на сервере как основную систему. Это не совсем ОС, а что-то вроде надстройки. Поэтому и установку всего делаю внутри контейнера. Но можно и напрямую, через Docker.

Сначала нужно выбрать место, где будут лежать фотки и видео. У меня это /mnt/photos/immich-app внутри контейнера.

Папка /mnt/photos - примонтирована подключена к контейнеру через настройки в файле /etc/pve/lxc/{ContainerID}.conf. Для этого нужно добавить туда строчку:

mp0: /mnt/shared2/photos_immich,mp=/mnt/photos

Где /mnt/shared2/photos_immich - путь к папке на сервере. У меня она на примонтированном HDD объёмом 2ТБ. А /mnt/photos - это путь внутри контейнера (в момент перезагрузки контейнера после изменения настроек эта папка должна существовать).

Далее в директории /mnt/photos/immich-app нужно создать две папки - import и library. В первой будем складывать файлы, которые мы будем импортировать, скажем так, вручную. А в папке library будут храниться файлы, загруженные с мобильных устройств.

После этого создаём файлы:

  • docker-compose.yml
  • .env (начинается с точки) - тут поменяйте параметр TZ на свою временную зону
  • update_immich.sh

Cодержимое файлов можно найти по ссылке.

Код в файлах актуален на момент написания статьи и может не заработать после внесения изменений автором IMMICH (такое уже было однажды, что-то они отключили, пришлось курить документацию).

Теперь нужно сделать файл обновление исполняемым - chmod +x update_immich.sh.

Запуск

Теперь можем запускать докер - docker compose up --build -d.

После успешного запуска у вас откроется порт 2283, по которому и будет доступна веб-орда нашего облака. Проверить, что всё запущено, можно командой docker ps.

Настройка

Импорт фотографий и видео

Если у вас есть архив фото и видео где-нибудь на внешних дисках, флешках, или других хранилищах, их можно импортировать в наше домашнее облако. Для этого в папке импорта создаём директорию с именем пользователя (что бы не запутаться), к примеру mkdir -p /mnt/photos/immich-app/import/kaizer. И уже в неё закинуть (через файловый менеджер, FTP или любым удобным способом ваши файлы.

Я загрузил видео и пару фотографий
Я загрузил видео и пару фотографий

Теперь в веб-морде кликаем по аватару и выбираем "Управление сервером". В левом меню переходим в раздел "Внешние библиотеки".

Нажимаем на единственную кнопку по центру экрана
Нажимаем на единственную кнопку по центру экрана
Выбираем пользователя (в нашем случае он один)
Выбираем пользователя (в нашем случае он один)
-5

А теперь внимательно! Нужно указать путь к нашей папке импорта, которую мы создали ранее. НО! Нужно указывать путь внутри докера. Поэтому пишем /usr/src/app/import/ и в конце дописываем имя папки, которую создали. В моём случае kaizer.

Нажимаем "Добавить" и наше хранилище подключено.

-6

Теперь нужно запустить сканирование. Для этого на этой же странице справа от созданного хранилища нажимаем три точки,и выбираем пункт "Сканировать".

После сканирования все файлы из папки импорта появятся в облаке
После сканирования все файлы из папки импорта появятся в облаке

Если у вас в будущем найдётся ещё архив фото/видео, их можно скопировать в ту же папку импорта, и запустить сканирование повторно.

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

Как указано в документации на сайте - есть приложения как под Android, так и под iOS, и находятся в официальных магазинах приложений. Но для Android я рекомендую скачивать релиз с гитхаба при выходе новой версии. О выходе новой версии вас оповестит веб-морда.

С недавних пор в мобильном приложении появилась возможность указывать несколько URL адресов сервера. К примеру, когда вы дома и подключены к Wi-Fi сети - вы используете внутренний адрес, через IP:PORT, а когда не дома, или с мобильной сети, можно указать доменное имя, прикреплённое к нашему облаку.

Проксирование через Nginx

Для того, что бы получить доступ к облаку извне я сделал поддомен, и настроил прокси. Конфиг можно найти та же по ссылке, где и остальные файлы. SSL сертификаты можно получить через certbot. Информации об этом полно в интернете.

Добавление пользователей

Для добавления нового пользователя - в разделе "Управление сервером" выбираем в левом меню пункт "Польозватели"

-8

Вводим необходимые данные и можем авторизоваться под новым аккаунтом. Импорт для нового аккаунта делается аналогично, с указанием имени нового пользователя.

Люди

Лично от себя рекомендую сразу включить отображение раздела "Люди" на боковой панели. Для этого справа сверху кликаем на аватар пользователя, выбираем "Настройки учётной записи", там открываем раздел "Дополнительные возможности" и находим подраздел "Люди", внутри которого и нужно включить отображение на боковой панели.

После импорта фотографий серверу нужно некоторое время, что бы пройтись по всем файлам и просканировать на наличие лиц. Когда сканирование завершится - в разделе "Люди" появятся все обнаруженные лица, которым вы можете дать имена, задать дату рождения, а так же объединить несколько лиц одного человека, в случае ошибки распознавания.

Итоги

Моим облаком в данный момент пользуются все родственники. На текущий момент создано 6 пользователей, у 3 из которых был произведён импорт старой библиотеки. Загрузка с мобильных устройств работает отлично и без сбоев. За 2 года использования данного облака я не наблюдал сильных проблем, которые бы не смог решить за несколько минут чтения документации.

Ставьте лайки, пишите комментарии, делитесь данной статьёй с друзьями. Буду рад вашим добровольным донатам (в конце статьи ссылка, и на главной странице блога кнопка "Поддержать автора"). Буду рад ответить на все вопросы, критику и предложения. Спасибо за проявленный интерес.

Дарим 500 ₽ за оформление Альфа-Стикера по ссылке: https://alfa.me/5gaGGx

Дарим 500 ₽ за оформление Альфа-Карты по ссылке и 30% кэшбэка с Авито Доставкой до 15 октября: https://alfa.me/CDcxYs