
Привет! Сегодня вам расскажу, как я полностью отказался от Google Photos и настроил своё собственное хранилище фотографий на базе Immich с кучей функций, не уступающих тем, что есть у популярных представителей данных сервисов.
Это не обзор ради обзора, а мой реальный кейс. У меня дома стоит свой собственный домашний сервер, который я собрал не так давно, куда я уже перенес все свои фотографии и видео.
1. Почему я отказался от Google Photos
Когда-то я был доволен Google Photos и пользовался им на протяжении 7+ лет. У меня был семейный тариф на 200 ГБ за адекватные как по мне деньги. И сервис очень удобный, фото всегда под рукой, синхронизация с телефоном работает идеально. Но однажды лимит закончился, и Google предложил перейти на более дорогой тариф.
Цены конечно же стали менее комфортными, и тут я уже задумался, а не проще ли вложиться один раз в железо (жёсткие диски и сервер), чем годами платить подписку? Ведь кол-во фотографий и видео с каждым годом будет только расти. Но так же и не хотелось терять всех возможностей, которые предоставляет Google Photos.
Поэтому нужно было решение, которое хотя бы частично покрывает мои потребности:
Доступность с телефона
Синхронизация фото и видео
Распознавание лиц
Хранение файлов в файловой системе будущего собранного сервера
Не требует денег каждый месяц
В поисках альтернативы я наткнулся на open source проект Immich, который давно решает данные задачи и его можно запустить на собственном железе. И тогда я понял, это именно то, что я искал.
2. Что такое Immich
Immich — это полноценная альтернатива Google Photos. Признаюсь, до знакомства с проектом я немного сомневался, всё-таки open source ассоциировался с «сухими» интерфейсами и минимумом удобств. Но мои опасения оказались напрасными, дизайн Immich приятно удивил - интерфейс выглядит современно, а пользоваться им действительно удобно.
Команда разработчиков проделала огромную работу, и за это им хочется сказать отдельное большое спасибо.
Что проект уже умеет:
Автоматически синхронизирует фото с телефона
Узнаёт лица и группирует фото по людям
Поддерживает альбомы, поиск (по английски), карту, таймлайн
Доступен с любого устройства (веб, Android, iOS)
Работает быстро и стабильно, даже с десятками тысяч фото
Поддерживает локальное хранилище, можно держать оригиналы фото и видео прямо на своём диске, без ограничений
До недавнего времени, пользователи жаловались на проблемы при переходе на новые версии Immich.
Совсем недавно проект выпустили в версии 2.0, где ребята сообщили, что это первая стабильная версия. Так же они сообщают, что будут уделять первостепенное внимание совместимости. Ожидаем с этих пор минимум проблем при обновлениях!
3. Интерфейс и возможности
Для начала покажу, как выглядит мобильное приложение. Оно простое и удобное, а весь основной функционал доступен прямо с телефона:
📱 Внешний вид мобильного приложения

А дальше для демонстрации возможностей перейдем к веб-версии Immich. Она почти не отличается от мобильной, но именно здесь доступны дополнительные и административные функции. Пройдёмся по основным разделам без излишних подробностей, этого хватит, чтобы оценить функциональность и понять, на что способен immich.
3.1. 📸 Галерея в веб-версии Immich

Видно, как Immich организует фотографии в привычном таймлайне, снимки автоматически группируются по датам, и можно быстро перемещаться между годами и месяцами. Слева находится боковое меню с основными разделами: поиск, карта, люди, публичные ссылки, альбомы, архив, корзина и утилиты. В нижней части — информация о доступном месте на диске и версия сервера.
3.2. 🔍 Страница поиска

На скриншоте показана страница поиска. Здесь сервис автоматически группирует найденные результаты:
Люди — Immich определяет лица на фотографиях и позволяет их переименовать, чтобы удобнее искать в будущем.
Места — снимки автоматически распределяются по геолокации: города, районы и даже конкретные точки.
Таким образом, можно быстро найти нужные фото по человеку или месту, даже если у вас десятки тысяч файлов.
3.3. 🔍 Демонстрация работы поиска

На скриншоте показан результат запроса «gray t-shirt». Immich не просто находит совпадения, но и сортирует результаты по релевантности, в самом верху отображаются фото, которые наиболее точно соответствуют запросу. В случае с видео, поиск идет по превью.
В моём случае первым в выдаче оказалось видео с серой футболкой. Такой подход делает поиск максимально удобным - нужный результат чаще всего оказывается в первых строках.
💡 Это особенно полезно, когда у вас десятки тысяч фотографий, и пролистывать их вручную просто нереально.
3.4. 🗺️ Карта

Один из самых наглядных способов путешествовать по своим воспоминаниям - это карта. На скриншоте видно, как Immich группирует фотографии по геолокации: каждая цифра в кружке показывает количество снимков, сделанных в определённом регионе.
При увеличении масштаба кластеры раскрываются, и можно вплоть до улицы увидеть, где именно был сделан кадр.
Например, все фотографии из поездки в Казань собраны в один кластер, а снимки из Москвы — в другой.
Это особенно удобно для тех, кто часто путешествует: достаточно открыть карту, чтобы вспомнить поездку в нужное место, и Immich сам покажет все фото, сделанные там.
💡 Но на фоне того, что в Москве глушат сеть, у меня вышло так, что некоторые фотографии тянуться аж до Шереметьево)
Фотографии, тянущиеся до Шереметьево

3.5. 🙂 Вкладка «Люди»

Immich автоматически анализирует фотографии и группирует их по лицам. На скриншоте видно, как сервис выделяет каждого человека в отдельный блок.
Пользователь может:
присвоить имя человеку
объединить несколько группировок, если сервис ошибочно разделил одно и то же лицо
выбирать фотографию на превью человека
Эта функция особенно ценна, если у вас много фотографий с друзьями или семьёй, достаточно один раз подписать человека, и Immich сам будет добавлять новые фото в его коллекцию.
3.6. 📂 Альбомы

На скриншоте показан раздел «Альбомы». Здесь фотографии и видео можно объединять в коллекции по событиям, темам или датам.
Immich поддерживает:
группировку альбомов по годам
создание как личных, так и общих альбомов
гибкое управление — можно редактировать название, описание и открывать доступ другим пользователям или по публичной ссылке.
Это удобно, когда хочется быстро вернуться к какому-то событию, не листая весь таймлайн.
Чтобы поделиться доступом к альбому, предусмотрено создание публичных ссылок, где есть много параметров для гибкой настройки
Создание публичной ссылки

3.7. 🛠️ Утилиты для работы с фото и видео

Immich позволяет не только хранить фотографии, но и поддерживать порядок в коллекции. В разделе «Утилиты» доступны полезные инструменты:
Разбор дубликатов — поиск одинаковых файлов. Можно оставить одну копию или сгруппировать фото, что особенно актуально после импорта фото из разных источников (например, Google Photos и мессенджеров).
Обзор больших файлов — быстрый способ найти «тяжёлые» фото и видео, которые занимают много места. Удобно, если хранилище ограничено по объёму.
Управление местами съёмки — позволяет редактировать или корректировать геоданные. Это полезно, если координаты были записаны неверно или отсутствуют.
Разбор дубликатов

Обзор больших файлов

Управление местами съемки

3.8. 👤 Управление учётной записью в Immich

В разделе настроек Immich собраны все ключевые параметры, связанные с управлением аккаунтом и персональными возможностями. Раздел довольно обширный, поэтому советую пройтись по нему самостоятельно и выбрать то, что пригодится именно вам.
3.9. ⚙️ Администрирование сервера
Помимо пользовательских функций, Immich предоставляет полноценный раздел для администрирования сервера. Здесь представлено следующее:
управление пользователями
выполнение задач
настройки сервера
работа с внешними библиотеками
мониторинг статистики.
👥 Вкладка «Пользователи»

Здесь администратор может доб��влять новых участников, редактировать их данные, ограничивать объём хранилища или сбрасывать пароль и PIN-код. Это удобно, если Immich используется не только вами, но и вашими знакомыми.
⚡ Вкладка «Задачи»

Immich автоматически выполняет множество процессов в фоне:
создаёт миниатюры
извлекает метаданные
индексирует файлы для поиска и т.д.
Всё это можно контролировать во вкладке «Задачи».
У каждой задачи есть статус: выполняется ли она сейчас, сколько элементов в очереди и сколько уже обработано. При необходимости можно запускать задачи вручную или регулировать параллельность их выполнения, если нужно ускорить обработку при первичной загрузке большой фотоколлекции.
📊 Статистика сервера

Эта вкладка позволяет администратору получить полное представление о том, как используется хранилище Immich. В верхней части отображается общая статистика:
количество загруженных фото
количество видео
общий объём занятого дискового пространства.
Ниже приведена детализация по каждому пользователю:
сколько фотографий и видео он загрузил
общий объём файлов, — текущее использование квоты (если она была ограничена).
4. Как установить Immich
Теперь давайте посмотрим, как развернуть Immich у себя. Процесс установки достаточно простой: понадобится сервер с Docker и несколько базовых настроек. Вся установка займёт 10–15 минут.
Вы можете самостоятельно установить immich по инструкции у них на сайте. Но так же продублирую его тут, если кто-то сомневается.
Для запуска Immich необходимо минимум 2 CPU и 4 ГБ RAM. Если у вас уже есть домашний сервер или VPS, скорее всего, этого будет достаточно.
4.1. Подготовка окружения
Создадим рабочую директорию, куда положим файлы конфигурации:
mkdir ./immich
cd ./immich
Дальше скачиваем docker-compose.yml
и пример .env
:
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
4.2. Настройка .env
В .env
меняем эти основные параметры:
# Путь, где будут храниться фото
UPLOAD_LOCATION=./library
# Путь для базы данных (Postgres)
DB_DATA_LOCATION=./postgres
# Часовой пояс
TZ=Europe/Moscow
# Версия Immich
IMMICH_VERSION=release
# Пароль для базы данных
DB_PASSWORD=postgres
4.3. Запуск контейнеров
Запускаем Immich командой:
docker compose up -d

После скачивания образов сервис будет доступен по адресу http://<ip-сервера>:2283
.
4.4. Создание учётной записи администратора
При первом входе Immich предложит зарегистрировать админ-аккаунт. Этот пользователь сможет:
добавлять других пользователей,
управлять хранилищем,
настраивать сервер.

Нужно не забывать про бэкапы!
Важно понимать
база данных хранит только метаданные (имена, даты, альбомы),
сами фото лежат в папке
UPLOAD_LOCATION
. Поэтому для надёжности нужно делать резервное копирование этой папки (например, с помощью rsync или ZFS снапшотов).
Безопасность
Авторы не рекомендуют напрямую обращаться к сервису. Лучше использовать ВПН или прокси. Подробнее здесь.
5. Как перенести фото из Google Photos
Я переносил ~70 ГБ фотографий и видео из Google Photos в Immich, и это оказалось проще, чем мне казалось. Эта инструкция подойдёт и для iCloud, принцип тот же.
Добавлять метаданные через консольные команды
1. Получить архив из Google Takeout
Заходим в Google Takeout, выбираем «Google Фото»
Скачиваем архивы
.zip
- в них фото и.json
с метаданными
2. Переименовать .json
По умолчанию метаданные лежат в отдельных файлах. Будет проще, если .json будут называться точно так же, как файл фото/видео.
Используем такой скрипт:
find . -type f -name '*.json' | while read -r f; do
nojson="${f%.json}"
original=$(echo "$nojson" | sed -E 's/(.*\.[a-zA-Z0-9]+)(\..*)?$/\1/')
if [ -f "$original" ]; then
new_json="${original}.json"
mv "$f" "$new_json"
echo "[OK] $f → $new_json"
else
echo "[SKIP] $f — оригинал '$original' не найден"
fi
done
3. Применить метаданные: даты, геолокация и т.п.
Для этого понадобится консольная утилиа exiftool
(необходимо установить отдельно):
find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.gif" -o -iname "*.mp4" \) | while read f; do
j="$f.json"
if [ -f "$j" ]; then
photo=$(grep '"photoTakenTime"' "$j" -A3 | grep '"timestamp"' | head -n1 | sed -E 's/[^0-9]//g')
create=$(grep '"creationTime"' "$j" -A3 | grep '"timestamp"' | head -n1 | sed -E 's/[^0-9]//g')
if [ -n "$photo" ] && [ -n "$create" ]; then
exiftool -overwrite_original \
"-DateTimeOriginal=$(date -r $photo '+%Y:%m:%d %H:%M:%S')" \
"-CreateDate=$(date -r $photo '+%Y:%m:%d %H:%M:%S')" \
"-FileCreateDate=$(date -r $create '+%Y:%m:%d %H:%M:%S')" \
"-FileModifyDate=$(date -r $create '+%Y:%m:%d %H:%M:%S')" \
"$f"
echo "[OK] Обновлён: $f"
else
echo "[WARN] Не удалось извлечь timestamp из $j"
fi
fi
done
4. Загрузить фото в Immich
Заходим в веб-интерфейс Immich и заливаем обработанные файлы.
Загрузка файлов

5. Восстановить альбомы
Google сохраняет структуру альбомов, но Immich не может подтянуть её автоматически.
Поэтому необходимо:
Создать каждый альбом вручную в интерфейсе.
Перетянуть нужные папки с фото и видео.
Добавлять метеданные через готовые решения от сообщества
Есть более простой способ перенести архивы из Google Фото в Immich - с помощью консольной утилиты Immich-Go. Нужно указать API-ключ вашего аккаунта Immich и путь к архивам Google Фото. Пр��грамма сама загрузит все снимки вместе с метаданными, без необходимости вручную сращивать их с фотографиями.
Эту утилиту и другие полезные инструменты можно найти в разделе Community Projects на сайте Immich.
6. Настройка зеркалирования дисков через ZFS
Фото — это память. Потеря одного диска может стать катастрофой. Поэтому я сразу сделал зеркалирование с помощью ZFS.
1. Почему ZFS
выдерживает выход из строя одного диска
объём = размер одного диска (2×4 ТБ → 4 ТБ полезного)
встроенная проверка целостности
снапшоты и сжатие
работает напрямую с «сырыми» дисками
2. Конфигурация моего сервера
Ubuntu Server
2×4 ТБ HDD под зеркало
ОС на отдельном NVMe
3. Установка и настройка
sudo apt update
sudo apt install zfsutils-linux
Проверка:
zfs version
Находим диски:
lsblk -o NAME,SIZE,MODEL
Вывод:
NAME SIZE MODEL
sda 3,6T WDC WD43PURZ-74B
├─sda1 3,6T
└─sda9 8M
sdb 3,6T WDC WD43PURZ-74B
├─sdb1 3,6T
└─sdb9 8M
nvme0n1 119,2G SBSSD128-HLX-M2P3
├─nvme0n1p1 1G
├─nvme0n1p2 2G
└─nvme0n1p3 116,2G
└─ubuntu--vg-ubuntu--lv 58,1G
Находим два нужных диска (например: sda и sdb в моем случае)
⚠️ ВНИМАНИЕ: все данные на них будут удалены!
Создаём зеркало:
sudo zpool create tank mirror /dev/sda /dev/sdb
tank — это имя пула, можешь выбрать любое.
Теперь у нас будет надёжный ZFS-пул, работающий как RAID1.
Проверим пул:
zpool status
Вывод:
NAME USED AVAIL REFER MOUNTPOINT
tank 301M 3.51T 96K /tank
4. Расширение пула
Если нужно больше места — просто добавляем вторую пару дисков:
sudo zpool add tank mirror /dev/sdc /dev/sdd
ZFS сам расширит пул, объединив зеркала.
Какие диски подойдут:
Размер не меньше, чем у других пар в пуле
Лучше использовать одинаковые по размеру и скорости Пример: Уже есть зеркало 2×4 ТБ → добавляем новое зеркало 2×6 ТБ Общий объём пула станет 4 ТБ + 6 ТБ = 10 ТБ, т.к. ZFS просто складывает зеркала.
7. Финансовая выгода
Попробуем разобраться, во что реально обходится собственный сервер с Immich по сравнению с облачными хранилищами, и почему даже при всех нюансах это выгоднее, особенно в долгосрочной перспективе и с учетом использования полученного сервера под другие цели.
Без деталий рассчетов
Вариант | 2 ТБ (5 лет) | 6 ТБ (5 лет) | Особенности |
---|---|---|---|
Собственный сервер (Immich) | ≈36 132 ₽ | ≈45 132 ₽ | Разовые вложения, свой RAID, резерв, приватность |
Google One | 34 950 ₽ | — | максимум 2 ТБ, зависимость от аккаунта Google |
iCloud+ | 35 940 ₽ | 209 400 ₽ | высокая цена на 6 ТБ, только для Apple |
Яндекс.Диск 360 | 19 000 ₽ | 71 928 ₽ | тарифы на 1 пользователя, ограниченные возможности совместного доступа |
Стоит отметить, что собственный сервер — это не просто альтернатива облаку, а полноценная платформа, которую можно развивать под свои нужды.
Он позволяет подключить любое количество пользователей — членов семьи, друзей или занкомых(возможн даже за определенную плату), без ограничений и дополнительных подписок. Кроме того, этот же сервер легко использовать для других задач: запуск Nextcloud, локальных бэкапов или систем автоматизации дома.
Таким образом, даже если экономия по цифрам выглядит незначительной, по возможностям и контролю личное решение по моему мнению выигрывает.
Рассчеты
1. Методика расчета
Для честного сравнения возьмём усреднённые параметры домашнего сервера (на базе Mini-PC или старого системного блока) и популярных облачных решений.
Горизонт расчёта — 5 лет.
Это типичный срок службы HDD, и именно столько в среднем работает сервер без серьёзных апгрейдов. Через 5 лет диски всё равно лучше поменять.
Надёжность:
Используем схему RAID1 (зеркало) + отдельный офлайн-бэкап.
Иными словами, чтобы хранить 1 ТБ данных безопасно, нужно 3 ТБ физического пространства:
2 ТБ — зеркалирование (RAID1)
+1 ТБ — резервная копия (например, на внешнем HDD или в облаке холодного хранения). Это увеличивает стартовые затраты, но сильно снижает риск потери данных.
2. Стоимость серверного решения
Электроэнергия
Глубокий анализ разных вариантов и характеристик мини пк выходит за рамки этой статьи, я беру средние цифры после небольшого личного ресерча.
Современный энергоэффективный Mini-ПК потребляет:
10–15 Вт в простое,
25–30 Вт под нагрузкой.
Возьмём среднее — 20 Вт в час.
За год:
0,02 кВт × 24 ч × 365 дн × 5 лет = 876 кВт·ч
При тарифе 7 ₽/кВт·ч — получаем ≈ 6 132 ₽ за 5 лет.
Базовая конфигурация без дисков
Компонент | Описание | Цена, ₽ |
---|---|---|
Mini-ПК | готовое устройство (Beelink, Minisforum и аналоги) | 15000 |
Электроэнергия (5 лет) | ~876 кВт·ч × 7 ₽ | 6 132 |
Итого (без HDD) | — | ≈ 21 132 ₽ |
Добавим стоимость дисков
Объём (чистый) | Схема хранения | Стоимость дисков | Стоимость дисков и пк | Ежемесячные затраты (5 лет) |
---|---|---|---|---|
2 ТБ | 3×2 ТБ = 6 ТБ HDD × ≈ 5 000 ₽/шт | 15 000 ₽ | 21 132 + 15 000 = 36 132 ₽ | ≈ 586 ₽/мес |
6 ТБ | 3×6 ТБ = 18 ТБ HDD × ≈ 8 000 ₽/шт | 24 000 ₽ | 21 132 + 24 000 = 45 132 ₽ | ≈ 753 ₽/мес |
3. Стоимость облачных хранилищ
Для сравнения возьмём официальные цены облачных сервисов в 2025 году:
Сервис | Объём | Цена в год | Цена за 5 лет | Примечание |
---|---|---|---|---|
Google One | 2 ТБ | 6900 ₽ | 34 950 ₽ | - |
Google One | 6 ТБ | - | - | максимум 2 ТБ |
iCloud+ | 2 ТБ | 7 188 ₽ | 35 940 ₽ | - |
iCloud+ | 6 ТБ | 41 880 ₽ | 209 400 ₽ | - |
Яндекс Диск 360 | 3 ТБ | 5 700 ₽ | 28 500 ₽ в пересчете на 2 ТБ ≈ 19 000 ₽ | на 1 человека |
Яндекс Диск 360 | 5 ТБ | 11 988 ₽ | 59 940 ₽ в пересчете на 6 ТБ ≈ 71 928 ₽ | на 1 человека |
Так же учтем, что в google и icloud можно пригласить лишь до 5-6 участников.
4. Сравниваем цены личного сервера и подписок
Рассматривая полученные цифры, становится видно, что по чистым расходам личный сервер не всегда даёт большую экономию, особенно при небольших объёмах хранения. Однако ситуация меняется, если рассматривать большие объемы хранения.
Вариант | 2 ТБ (5 лет) | 6 ТБ (5 лет) | Особенности |
---|---|---|---|
Собственный сервер (Immich) | ≈36 132 ₽ | ≈45 132 ₽ | Разовые вложения, свой RAID, резерв, приватность |
Google One | 34 950 ₽ | — | максимум 2 ТБ, зависимость от аккаунта Google |
iCloud+ | 35 940 ₽ | 209 400 ₽ | высокая цена на 6 ТБ, только для Apple |
Яндекс.Диск 360 | 19 000 ₽ | 71 928 ₽ | тарифы на 1 пользователя, ограниченные возможности совместного доступа |
Что сразу бросается в глаза? При 2 ТБ затраты на собственный сервер практически равны стоимости подписки Google или iCloud, а при 6 ТБ выгоднее собрать собственное решение.
Главное различие в том, что:
облачные подписки нужно платить постоянно, иначе доступ к данным может быть ограничен
возможны блокировки иностранных сервисов
сервер — это капитальное вложение, вы платите один раз, а пользуетесь сколько угодно лет.
чем больше объем, тем выгода существенней.
Кроме того, свой Immich-сервер не имеет искусственных ограничений, можно подключить любое количество пользователей и не зависеть от чужих политик.
А если добавить, что тот же сервер можно использовать для других сервисов (Nextcloud, резервные копии и т. д.), становится понятно, что реальная ценность личного решения гораздо выше простой арифметики.
Затраты на мой сервер
Я не покупал готовое решение, а собирал полноценный ПК(коробка).
Характеристики вышли следующие:
14 ядер, 28 потоков
оперативка 64 ГБ
Системный диск — NVMe 128 ГБ
Хранилище — 2×HDD по 4 ТБ (под бекапы пока что не закладывался) Собирал с запасом, чтобы развернуть на сервере все, что душе угодно, не спотыкаясь в системные ограничения, образная песочница для экспериментов.
Посчитаем затраты
Электроэнергия: среднее потребление возьмем под мою сборку — 90 Вт в час, сервер не всегда под нагрузкой. В сутки это 2.16 кВт, за 5 лет накапает 3 942 кВт. По средней цене 7.16 ₽/кВт⋅ч (для моего случая). Итого за 5 лет я заплачу 28 100 руб, в год это 5 620 ₽
Сборка обошлась в 40 000 ₽ На диски ушло 12 000 руб за штуку, итого 24 000 руб на диски.
Итого выходит за 5 лет — 6 8 100 руб. Тут подробнее про мою сборку — ссылка
Итог
Если коротко — личный сервер с Immich выгоден на дистанции. При 2 ТБ расходы сопоставимы с подписками Google или iCloud, но уже при 6 ТБ и выше свой сервер обходится дешевле.
При этом вы получаете полный контроль над данными, не зависите от политик и тарифов облаков и можете использовать сервер для других задач — от Nextcloud до резервных копий.
Один раз заплатил и пользуешься годами.
Пока он не сломался или не сгорел) Но это уже выходит за рамки этой статьи.
8. Итоги
Immich полностью заменил мне Google Photos.
Все фото хранятся у меня.
Данные защищены ZFS-зеркалом.
Перенос из Google Photos оказался проще, чем я думал.
Если устали платить за облако, то попробуйте Immich.
9. Полезные ссылки
Официальный сайт Immich
Демо-версия — ссылка
Поддержать проект - ссылка
Русское сообщество Immich - ссылка
Мой домашний сервер — ссылка
Мое видео про immich (кому удобней видео формат) — ссылка
Контакты для связи: Тг, Тг канал
Так же за полезный фитбек и активность в комментариях хочу поблагодарить: @aik, @porok, @DragonZet, @max9, @Kostiavn, @Pavel7.
Благодарность могу выразить лишь плюсом в карму, спасибо вам.