Как-то мы лежали в кровати с нашим малышом и жена сказала, что фотографий и видео с ним стало больше и она не хочет использовать платное приложение. Примерно так начинается рассказ создателя Immich – бесплатного open-source решения для хранения фотографий и видео.

Надо сказать, в последние годы я тоже регулярно пытался найти бесплатную self-hosted альтернативу Google Photos и iCloud, однако до сегодняшнего дня функциональных и вместе с тем простых в настройке решений я не встречал. Тот же Nextcloud всегда казался чересчур громоздким. Immich же, напротив, сразу завоевал моё сердце, и вот, после нескольких недель его использования, с радостью делюсь своим рабочим примером:

Так работает моё собственное Immich хранилище фотографий и видео
Так работает моё собственное Immich хранилище фотографий и видео

Установка Immich на ПК

Immich можно поставить одной командой с помощью установочного скрипта практически на любую ОС, где есть Docker. Минимальные требования к железу: 2 ядра CPU и 4GB RAM. Я использовал свой домашний компьютер с Ubuntu 24.04.

После установки и запуска Docker контейнеров видим URL-ы, по которым сервис локально доступен для браузера и мобильных приложений:

Immich установлен и запущен
Immich установлен и запущен

Наша задача сделать так, чтобы хранилище было доступно не только в локальной сети, но и удаленно. Открывать или пробрасывать порты домашнего компьютера наружу – не лучшая идея, поэтому мы используем вариант с VPN.

Следуя этой инструкции, арендуем недорогой виртуальный сервер для VPN, а на домашний компьютер ставим впн-клиент Amnezia.

Как только компьютер подключится к VPN, ему будет назначен внутренний IP адрес в этой виртуальной частной сети. По умолчанию Amnezia использует WireGuard подключение и назначенный адрес будет всегда одинаков. Нам нужно узнать этот IP, так как именно он будет использоваться для доступа к хранилищу.

В терминале Linux выполняем команду ip a и ищем нужный адрес в строке, подобной этой:

inet 10.8.1.4/32 scope global amn0

Для Windows команда называется ipconfig, а искомая строка выглядит примерно так:

 IPv4-адрес . . . . . . . . . . : 10.8.1.4

Теперь домашний компьютер будет всегда подключен к виртуальной частной сети, а Immich доступен через браузер по адресу http://10.8.1.4:2283

При первом открытии этого URL потребуется создать аккаунт администратора, который в дальнейшем сможет добавлять и удалять пользователей.

Установка приложения на телефон

Для настройки Immich на смартфоне нужно:

  1. Установить Immich (Android, iOS) и Amnezia (Android, iOS)

  2. Подключить Amnezia к VPN, как описано здесь

  3. Запустить установленное на телефоне приложение Immich и в поле Server Endpoint URL ввести http://10.8.1.4:2283/api . Учтите, что в вашем случае IP в может быть другой

Опыт использования

Для начала полезный совет перед использованием: если вы планируете работать с хранилищем регулярно, рекомендую в настройках программы Amnezia активировать автоматическое подключение к VPN, чтобы виртуальная частная сеть работала всегда.

Что касается моего личного опыта работы с Immich, я решил представить его в форме субъективного перечня достоинств и недостатков приложения.

Преимущества:

  • полностью бесплатный, с открытым исходным кодом, быстро растущее комьюнити

  • ваши фото и видео хранятся только у вас

  • функции машинного обучения для умного поиска, распознавания лиц, определения дубликатов фото

  • отображение места сделанных фото на карте

  • гибкие настройки сжатия фото и видео

  • готовый скрипт для резервного копирования всех данных по правилу 3-2-1

  • возможно хранение фотографий только на компьютере, что экономит место на смартфоне

  • создание пользователей с автономным хранилищем заданного размера

  • если настроить доступ к Immich как у меня (с VPN на внешнем виртуальном сервере), то бонусом у вас будет свой VPN

Недостатки:

  • нужен свой ПК с минимум 2 ядрами CPU, 4GB RAM и настроенным VPN для безопасного доступа извне

  • проект достаточно новый и быстро развивающийся, и, как следствие, возможны баги

Вывод

Immich – это полноценный комбайн для хранения фото и видео, и вместе с тем простой и интуитивно понятный. Надеюсь, продукт и дальше будет развиваться, оставаясь при этом бесплатным self-hosted решением, ведь, как сказано на сайте разработчика, "конфиденциальность не должна быть роскошью".


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

  1. Онлайн демо версия Immich

  2. Здесь есть удобное табличное сравнение бесплатных open-source фотохранилищ, включая Immich

Комментарии (13)


  1. Andthe
    29.09.2024 19:15

    Цена диска + риски его поломки. Такое себе решение по надёжности.


    1. crims0n_ru
      29.09.2024 19:15

      Диск стоит дешевле, чем облако большого объёма. Диск можно зеркалировать.


  1. BugM
    29.09.2024 19:15
    +2

    Один потоп и прощай архив. Надежность у вас так себе вышла.


  1. BigD
    29.09.2024 19:15

    Насколько я понял по отзывам, ключевой недостаток - при обновлениях сбои бывают.


  1. Araki_Satoshi
    29.09.2024 19:15

    The project is under very active development. Expect bugs and changes. Do not use it as the only way to store your photos and videos!

    Видел этот проект недавно, но отказался после того как увидел это предупреждение.


  1. NAI
    29.09.2024 19:15

     Открывать или пробрасывать порты домашнего компьютера наружу – не лучшая идея, поэтому мы используем вариант с VPN.

    ...и что конкретно сделает VPN к VPS\VDS лучше?

    • Безопасность - нет, т.к. открыты те же порты

    • Надежность - нет, даже ухудшит т.к. появляются две дополнительные точки отказа

    • Дешевле - нет, белый, статический IP - 100\150 р. VPS-ки за такие цены может и есть, но их качество сильно так себе, см. п. выше.

    Можно вообще крамольной мыслью озадачиться - SSL-сертификат + два файрволла (на роутере и на сервере) и никакие VPN'ы не нужны?


    1. askharitonov
      29.09.2024 19:15

      А может и роутер не нужен? По идее, не самый новый компьютер с двумя сетевыми картами, с Linux и настроенным фаерволом и автоматическими обновлениями, должен быть безопаснее, чем отдельный маршрутизатор, прошивка которого обновляется производителем раз в несколько месяцев. При этом, для большей безопасности, веб-сервер с приложением можно поместить в виртуальную машину, не давая ей возможность устанавливать исходящие соединения в локальную сеть.


      1. NAI
        29.09.2024 19:15

        По идее, не самый новый компьютер с двумя сетевыми картами

        Жужжит и ЭЭ жрет больше :) при работе 24/7. ... и карточки должно быть три - wan, lan и wifi

        Но на самом деле если посмотреть в реддит r/selfhosted то, да, большинство селфхостеров сидят с pfsense/opensense, в отдельных контейнерах/VMках/хостах


        1. askharitonov
          29.09.2024 19:15

          Ну я так понял, что свой сервер и так предполагается. А, если это домашний компьютер, то тут вопрос, не будет ли навороченный компьютер для игр потреблять больше электроэнергии, чем старый компьютер со встроенным видео, если говорить про работу 24/7 (домашний компьютер наверное выключается на ночь или когда все на работе/учёбе).


  1. Markscheider
    29.09.2024 19:15

    А можно его поставить только на VPS? Понимаю, что это будет не совсем self-hosted, но все же...


    1. askharitonov
      29.09.2024 19:15

      Вряд ли есть препятствия установить его на своём домашнем сервере :-)


    1. crims0n_ru
      29.09.2024 19:15

      Можно, но дорого выйдет, так как он памяти много ест, да и для фото нужен значительный объём. Для недорогого VPS лучше подойдёт File Browser.


  1. askharitonov
    29.09.2024 19:15

    А он лучше NextCloud в плане работы с видео?

    Я сейчас экспериментирую с NextCloud, и вроде всё более-менее хорошо: фотографии с телефона копируются, музыку можно слушать и с компьютера, и со смартфона, фильмы тоже со смартфона получается смотреть (через файловый менеджер с поддержкой WebDAV), но не хватает возможности смотреть видео одно за другим: есть каталог с видеоклипами, и их бы хотелось смотреть подряд.