Как надёжно хранить фотки у себя, а не в облаках

 Публичный пост
27 июня 2023  6114
Беха ОХУЕННО Держи долор Я понял!

Один из пунктов в моём Todo на 2023-й год звучит (звучал) как "Перенести фотки от Гугла куда-то ещё". Такое важное и почётное место эта задача заняла сразу по целой куче причин. Однако, прежде чем озвучить их, давайте поймём, с чем предстоит работать.

UPD: Да, я в курсе, что любое облако будет дешевле колхоза, описанного ниже. Спасибо за ваше мнение :)

С чем работаем

Я люблю фоткать, много и часто, не как фотограф, а как обыватель, на айфон. "Много и часто" — это значит, что когда я делаю селфач с друзьями, это сразу 5-8 кадров, потому что обязательно кто-нибудь моргнёт, получится ленивый глаз, или ещё что-нибудь. Результат понятный: 200+ гигабайт фоток с 2009 года на одном только Google Photos, который пережимает исходные файлы, и ещё около 150 гигабайт на Яндекс Диске с 2018, понятно, что какой-то процент изображений просто дублируется между двумя сервисами.

Почему и зачем

  1. Я уже давно хочу постепенно уйти от жёсткой привязки к крупным провайдерам. Гугл любит убивать давно работающие сервисы, плюс время от времени всплывают истории о (вроде как) беспричинных банах многолетних юзеров, которые в один момент теряют доступ к почте, фоткам и всем прочим сервисам Гугла. Шансы попасть под раздачу невелики, но рисковать не хочется. Яндекс же — изначально российская компания, и если несколько лет назад это была одна из немногих компаний в РФ, которым я мог бы доверять, то сегодня это уже не так. А значит файлики нужно забирать. И держать где-то у себя.
  2. Мне нравится возиться с домашним сервером. Впервые я этим заморочился сполгода назад, и идея заморочиться с домашним хранилищем для фоток идеально вписывается в сценарий использования хоумлаба. Плюс маленькая прокачка всяких докеров и околосерверных скиллов.
  3. Облака — это дорого. Ну то есть как: 100гб хранилища в Google One (это Drive, почта, Photos и что-то там ещё всё вместе) стоят всего 20 евро в год, 200гб — 30 евро, а дальше уже только 2тб за 100 евро. Учитывая, что я вплотную подхожу к верхнему порогу 20-еврового тарифа, цена будет только расти. Не забываем и про (призрачные) риски выхватить случайный бан: на этот случай нам нужно ещё одно облако. В моём случае это Яндекс Диск, который тоже стоит отдельных денег и который по-прежнему остаётся компанией из РФ со всеми сопутствующими бонусами и рисками.
  4. Бесплатная иллюзия контроля. Размещая фотки у себя, я избавляюсь от рисков, связанных с облачными хостерами и принимаю на себя пачку других, о которых (и об их нивелировании) поговорим ниже. Однако, ощущение чуточку большего контроля над окружающим миром бесценно само по себе.

Хранилище фоток в идеальном мире

Что нам требуется? Опять по пунктам:

  1. Селф-хостед софт
  2. Веб морда с хорошим интерфейсом для просмотра фоток на десктопе
  3. Мобильное приложение (в первую очередь, для аплоада фоток)
  4. Многопользовательсковость (я не один, у меня жена)
  5. Возможность бэкапить файлы куда-то наружу (мы же не думаем, что держать все фотки в одном месте хоть сколь-нибудь безопасно?)
  6. Опционально: умение работать с live-фотками с айфона
  7. Опционально: Реверс геокодинг, чтобы видеть где какая фотка была сделана на карте
  8. Опционально: Лайкание фоток
  9. Опционально: Архивирование фоток (скрытие из основной ленты без удаления)
  10. Опционально: Альбомчики (для меня вообще не обязательный пункт)
  11. Опционально: Рюши вроде сторей в духе "Год назад вы фоткали вот ето"

Итак, если не облака, то что? Когда я впервые задался вопросом содержания домашнего сервера, из опенсорсных решений выделялся, разве что, PhotoPrism. Я поставил его, поигрался, позагружал туда фотки, удобно. Но — совершенно нет многопользовательсковости. Подразумевается, что пользователь всего один, семьи у него нет, а потому и разделение фоток по неймспейсам личных пространств не нужно. По крайней мере, в бесплатном community edition. В целом справедливо, но если я хочу перестать платить за облака, то эээ... Я и за селфхостед софт платить не хочу? Считайте меня жадным, это бесплатно. В общем, юзер менеджмент есть только в версии за 6 евро в месяц. Плюс, у них был какой-то скандал с их комьюнити не так давно, где кто-то как-то некрасиво поступил, но в это я уже не вникал. Фотопризм не вариант.

Дальше мне в r/selfhosted попался Immich. И как-то, кажется, это сразу было попадание в десяточку. Он удовлетворяет всем описанным в пунктах выше требованиях, а ещё умеет распознавать лица и машин лернинг (кажется, пока не очень умело), визуально очень похож на Google Photos (жирнейший плюс для меня), требует не миллион ресурсов на сервере и умеет в поиск по фоткам (очень криво-косо пока что, но и ладно). А, и запускается в Портейнере/Докере/Докер Компоузом/через чёрта лысого, что так же понижает порог входа. В общем, то, что нужно.

А, и ещё нужно, чтобы всё это бэкапилось куда-то наружу. Если вдруг пожар унесёт наш домашний сервер на серверные небеса, наши фотки будут в безопасности. Или там, если просто диск крякнет.

План

С основным инструментом определились, как работает и выглядит всё остальное?

Примерно так:

  • На сервере крутится докер
  • В докере запускается Immich
  • Крон-таска на сервере раз в N часов (дней, недель?) бэкапит БД Immich и сами фотки в облако
  • ???
  • Вы прекрасны!
  • А, и ещё неплохо бы дополнительно бэкапить всё на внешний жёсткий диск. Вдруг серверный диск крякнет.

Воплощение

На практике оказалось, что Immich сам по себе позиционируется как бэкап-тулза, да ещё и в стадии активной разработки (разработчики просят не использовать софтину как единственное средство хранения фоток, но кто их слушает, верно?). Это значит, что, на текущий момент, в Иммихе нет штатного инструмента, который позволял бы по расписанию делать бэкапы базы и файлов куда-нибудь в условный S3. Поэтому бэкапчики придётся костылить самостоятельно.

Что, собственно, не проблема. Друг-системщик подсказал мне утилиту для управления файликами rclone, а я сам нашёл хранилище Backblaze B2 с S3-совместимым апи и более низкими ценами на хранение файлов.

Из чего теперь состоит наш человек-швейцарский нож?

Внутрянка:

  • Связка Docker + Portainer, потому что никто не любит постоянно пердолиться с терминалом
  • Immich для непосредственного хранения и просмотра файлов
  • https://github.com/garzj/google-photos-migrate для приведения фоток в божеский вид после Google Photos (метаданные, теги и так далее)
  • Rclone для синхронизации локальной файлопомойки с бакетом в B2 и внешний HDD/SSD
  • Ansible для того, чтобы хранить весь колхоз в виде перезапускаемых ямлов
  • И всё это крутится на домашнем сервере под управлением Ubuntu, который построил Джек

Внешка:

  • Backblaze B2
  • Внешний HDD/SSD для периодического локального бэкапа данных

Вроде всё? Ну да.

В общем, вчера я выкачал все фотки с Яндекс Диска, сгрузил четыре пятидесятигигабайтных архива из Google Photos, поэкспериментировал с Rclone, убедившись, что он делает всё, что мне необходимо, и процесс пошёл. Для ясности, все описанные ниже шаги зафиксированы в Ансибле, потому что если сделать всё руками и что-то сломается, я скорее забью и навсегда разочаруюсь в идее, чем найду время и силы чинить.

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

После скачивания файлов с Яндекс Диска шаманить с их метаданными не пришлось, потому что они там хранились в исходном виде без пережатия. Загрузил их на сервер и сразу же натравил на них тулзу для импорта фоток в Immich. Иммихь, после поглощения скормленных ему фоток, принялся их переваривать, скрипя фоновыми джобами, которые отвечают за генерацию thumbnails, извлечение метаданных, тегирование объектов на фотках, фейс рекогнишен, и ещё там какие-то. Это происходит без моего участия.

Тем временем с Гугл Фотос выкачались 200гб фоток. Загрузил их на сервер, распаковал из архивов в одну директорию и натравил на них https://github.com/garzj/google-photos-migrate, потому что, как я говорил выше, Гугл пережёвывает фотки на свой лад, а метаданные складывает в одноимённые джейсоны. Эта тулза как раз засовывает их обратно. После того, как засунет, можно будет скормить импорт-тулзе, как и яндексовый архив.

Иммихь крутится, метадата мутится, а значит самое время наладить бэкапы наружу. Запустил ансибл-скрипт, который поставил на сервер Rclone и научил его с помощью крон тасков два раза в сутки брать нужные файлы и сихронизировать их в целевой бакет на B2. Rclone sync не аплоадит существующие файлы, а лишь поддерживает файловую структуру и содержимое на бакете в том виде, в каком они существуют на исходном сервере, а значит этот процесс будет долгим только в первый раз, а дальше всё будет синкаться за секунды. А, и ещё ансибл прописывает крон таск для бэкапа базы данных самого Иммиха, которая будет загружаться в тот же бакет на B2. Таким образом, в случае чего, достаточно будет ресторнуть бэкап БД на новом инстансе Иммиха и ему не придётся жевать метатеги для всех файлов в фоновых задачах по новой.

Ну вот вроде и всё! Кажется, отличный план. Надёжный, как швейцарские часы.

Что ещё предстоит

Чего не хватает? Ну, я пока ещё не купил внешний диск для локального бэкапа. Это ещё предстоит сделать. Как только этот вопрос будет закрыт, в целом, я буду (кажется) удовлетворён схемой бэкапов. Но я в этом деле не эксперт, так что тут как раз настаёт время для конструктивных комментариев: как сделать систему более надёжной без лишнего пердолинга? Я в курсе про схему бэкапов 3-2-1, но заморачиваться с записью данных на плёнку, кажется, пока не готов. Не знаю, буду ли готов вообще, это уже паранойя.

В теории вместо внешнего харда можно было бы заморочиться с настройкой RAID1 или RAID10. На практике я пока этим заниматься не хочу, плюс если физически сервер будет уничтожен (скажем, сгорит квартира), внешний диск может и пострадает, но совершенно не обязательно. Его можно вообще на антресоль засунуть, или куда там понадёжнее можно придумать.

После того, как все данные будут импортированы, метаданные расставлены и в долине больше не останется бандитов, настанет время для того, чтобы медленно и постепенно удалять ненужные дубли и просто плохие фотки. Это совершенно не обязательный шаг (выхватил его из соответствующего видоса: How To Remember Your Life), но я дам ему шанс и планирую иногда тратить на это время.

Ещё через некоторое время было бы неплохо полностью вычистить фотки из облаков, где я хранил их раньше. Потому что облака стоят денег.

А если я хочу так же?

Все свои ансибл-скрипты я складываю в репозиторий https://github.com/Freika/homelab. Там не только про Иммихь, но если вы пришли именно за ним, то вас интересует файл immich.yml. Скопируйте inventory.txt.example в файл inventory.txt, замените все переменные на свои собственные, выполните команду make immich (можно посмотреть в Makefile) и дальше всё будет сделано за вас, simple as that.

А что по бабкам-то?

Разово:

  • Сервер (старая рабочая станция с Ибея) — 62 евро
  • HDD + SSD для сервера — ~100 евро
  • Донат автору Иммиха — 5 евро
  • Внешний HDD на 2TB — ~70 евро

Постоянно:

  • Хранилка для бэкапов Backblaze — ~5 баксов в месяц
  • Поддержание жизни в домашнем сервере — около 6 евро в месяц (на электричество)

Автору Immich сделал разовое пожертвование, возможно, сделаю его регулярным. Да, я знаю, что я говорил выше, что не хочу платить за селфхостед софт, разница в том, сам я хочу красить забор, или меня заставляют.

А по времени как?

Я вожусь с этим всем уже третий день. Большую часть времени всё делается без моего участия: скачиваются архивы экспорта из Google Photos, работает google-photos-migrate, импортируются фотки в сам Иммихь, загружаются бэкапы на B2. Я тем временем вот писал и редактировал этот пост. Если за всё это возьмётесь вы сами, наверное, можно будет управиться за полдня активного времени: поставить Иммихь, загрузить фотки, разобраться с приложенькой на телефон, наладить бэкапы, да и то есть ансибл-плейбук по ссылке немного выше.

Делитесь своим опытом, если колхозили что-то подобное, возможно, я вдохновлюсь и что-то изменю в своём подходе.

Связанные посты
102 комментария 👇

Итак, прошёл месяц с тех пор, как я заселфхостил свои фотки. За это время накопилось некоторое количество выводов и наблюдений.

  1. В изначальной версии ансибл-плейбука у меня неправильно был сконфигурирован крон-таск для бэкапа фоток с помощью Rclone на B2. Починил, теперь всё работает, проверено.
  2. Обнаружил, что вместо 20 тысяч (посчитал по логам) heic изображений у меня сломанные файлы. Не открываются. Ни Иммихом, ничем при скачивании. Однако, когда я переименовывал эти файлы в .mov, они открывались как короткое видео, то есть это изначально лайв-фото. Рабочая версия заключается в том, что google-photos-migrate при работе и попытке вклеить обратно метаданные из джейсона, ломает файлы. Я пробовал заливать исходные файлы из Тейкаута гугла, они считываются нормально (как статичные heic), и как минимум правильно сортируются по дате, насчёт геоданных не знаю. Эксперименты так же показали, что попорченные файлы в моём случае имеют непопорченные копии, потому как я хранил их и в гугл фотос, и в яндекс диске. Версии с Яндекса не поломаны, так что я просто время от времени захожу в Иммих, чтобы почистить сломанные файлы и заодно освежить воспоминания о делах давно минувших дней. Возможно, соберусь и просто набросаю скрипт для удаления их через апи Иммиха толпой, пока лениво.
  3. Получил в подарок толстый внешний SSD, теперь бэкаплю фотки и на него, радостно
  4. Как кто-то справедливо заметил в комментариях, команда rclone sync должна выстроить дифф. Разницу между локальными файлами и файлами на сервере, чтобы дозагрузить недостающие и удалить на сервере файлы, которые были удалены локально. В случае с B2, это достаточно дорогая операция, так что моя изначальная задумка бэкапить всё пару раз в сутки была объективно чрезмерно оптимистичной. Это тупо обойдётся мне неприлично дорого. Переписал конфиг, теперь бэкап происходит пару раз в месяц, меня устраивает. Если будете использовать мой скрипт для своих нужд, не забудьте отредактировать крон-таску.
  5. Бэкапить сто тысяч файлов через канал, который позволяет всего 50мбсек на аплоад, долго и медленно. Ещё дольше и медленнее из-за того, что это мелкие файлы по 1-3 мегабайта в большинстве своём. Бэкапы теперь шуршат только под утро.
  6. HDD шумные. У меня в сервере, который находится в полутора метрах от моего рабочего места, стоит именно HDD, и меня ужасно бесит его хруст, когда он что-нибудь аплоадит, даунлоадит или когда я просто скроллю Иммих. Через время нужно будет обзавестись SSDшниками.
  7. Вопрос с silent data corruption пока не порешал, планирую вернуться к нему, когда куплю пару надёжных SSD по терабайту и смонтирую на них ZFS.
  8. За первый месяц со всеми экспериментами заплатил за Backblaze B2 что-то около 4,58 евро.
  9. У Иммиха активное комьюнити пользователей и разработчиков, так что я успел позадавать глупые вопросы в Дискорде и пополучать на них ответы. За месяц Иммих добрался с версии 1.63.2 до версии 1.70 с маленькими фиксами и даже новыми фичами. Теперь можно, например, мержить лица, если распознавалка посчитала одного и того же человека двумя разными.

@Frey, а как в итоге лучше сделать с heic фаилами после этого скрипта? просто восстановить их обратно? или переименовать в mov?

  Развернуть 1 комментарий

@skywinder, никак :) Возможно в какой-то момент я попробую гугловский тейкаут прогнать через обновлённую тулзу и посмотрю, восстановились ли HEIC, но пока они просто были принесены в жертву, к сожалению

  Развернуть 1 комментарий

Надёжно? получилось что-то похожее из мема ниже :)

Через полгода красноглазые авторы очередной утилиты всё сломают и надо будет начинать по новой

  Развернуть 1 комментарий

@rvrfall, все файлы складываются банально в ФС, так что надёжно

а вот всяческая метадата и МЛ прибамбасы - ну, если надо, то страдай

  Развернуть 1 комментарий

Не забываем настроить логгинг о факте успешного бекапа (например в newrelic) и оповещение если не было успешного бекапа в течении недели ;)

  Развернуть 1 комментарий

@arku31, да, этим планирую несколько позже тоже озаботиться :)

  Развернуть 1 комментарий

итак чтобы не платить 100 евро в год можно платить 11 евро в месяц (132 евро в год).
понял принял.
ловко вы перехитрили всех!

p.s. не ну я понимаю контроль надежность итд но надеюсь вы тоже понимаете иронию!

  Развернуть 1 комментарий
  Развернуть 1 комментарий

А по деньгам получается даже проигрываете по сравнению с облаком, да?
Я когда-то баловался файлохранилищем дома. Тоже хотелось бекапа в облаке на случай ограбления/пожара.
В итоге, пошел по пути наименьшего сопротивления:

  • OneDrive на 1ТБ за 80 фунтов в год
  • На ноуте стоит клиент который хранит полную копию OneDrive (2-way sync)

Если OneDrive решит меня заблочить, то есть копия на ноуте. Если ноут навернется, то есть копия в облаке.

  Развернуть 1 комментарий

@aigoncharov, да, чисто финансово это менее выгодная история. Но пока мне интересно с этим возиться, а разница в стоимости не настолько велика, это не проблема :)

  Развернуть 1 комментарий

Когда читаю очередную статью на эту тему - всегда отмечаю что даже продвинутые айтишники забывают (или не знают?) о silent data corruption https://en.wikipedia.org/wiki/Data_corruption
Для себя эту проблему решил использованием SnapRaid https://www.snapraid.it/

  Развернуть 1 комментарий

@rudenko, поизучаю вопрос, спасибо

  Развернуть 1 комментарий
Ivan Vasilyev Senior Frontend Developer 28 июня 2023

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

Осталось сделать бэкап в облако.

Потихонечку докидываю туда другую функциональность. Например, управление умными девайсами через HomeAssistant.

  Развернуть 1 комментарий
Никита Орлов Julia, Go and Python Developer 28 июня 2023

Будучи номадом в отсутствует возможность купить сервер и поставить его где-нибудь дома (потому что дома нет фюить ха).

Я уже описывал свой сетап вот тут, но с тех пор он претерпел изменения.

Сейчас сетап такой:

  • Выделенная тачка в Hetzner, с 2тб дискового пространства: там подняты Photoprism, Filerun и прочее для домашней лаборатории
  • Hetzner Storage Box -- CIFS/SMB/nameit шара, подмонтированная в сервер: основное место, где хранятся фотографии. Этот стораж обещает, что данные не потеряются от смерти одного диска на их сервере, но ничего больше. Поэтому в планах взять второй сторажбокс в другой локации как бекап
  • Apple Photos :)

Отказался от Backblaze потому что с какого-то момента заливка данных туда становится дорогой: чтобы загрузить файлы, которых в бакете нет, нужно сначала получить список этих самых файлов, что стоит денег :)

Флоу получился следующий: после очередной фотосессии фотографиям проставляется геотег, затем они заливаются на сервак. На серваке скрипт раз в час синхронизирует файлы до стораж бокса. Параллельно, пока файлики есть локально на компьютере происходит их отбор и минимальная обработка. Отобранные фотографии тоже выгружаются на сервер и заливаются в Apple Photos чтобы показывать друзьям на встречах)

По деньгам выходит 37 EUR сервер + 21 EUR/10TB Storage box в месяц. Номадство дело дорогое) Особенно больно видеть как каждая фотография в лушчем качестве с сжатым raw весит под 70МБ.

Сейчас активно смотрю на замены Photoprism, вдруг есть что-то более удобное.

  Развернуть 1 комментарий

@naorlov,

Сейчас активно смотрю на замены Photoprism, вдруг есть что-то более удобное.

Immich кажется одной из немногих альтерантив, думаю его попробовать

  Развернуть 1 комментарий

@naorlov, кстати, а Apple Photos ты бекапишь по крону через https://github.com/icloud-photos-downloader/icloud_photos_downloader ? или есть какие-то более изящные решения?

  Развернуть 1 комментарий

@skywinder, ровно это и использую. Более изящных решений не нашел:(

  Развернуть 1 комментарий

Я пошёл ещё более колхозным путем. Оставил автозагрузку в Google photos, настроил синхронизацию папки с фотками с телефона на комп и на самосборный Nas через https://syncthing.net/

  Развернуть 1 комментарий

@TipTopych, я вот кстати тоже склоняюсь к этому варианту :)

  Развернуть 1 комментарий
Petr Korolev ETHusiast in open-source & privacy 27 февраля в 16:41

Ох, бро! Спасибо за пост. Я только что сам прошел на 90% тот же путь, что и ты, и подписываюсь под каждым твоим выбором. Если бы не было твоего поста, то постарался бы написать почти то же.

  1. Ансибл я еще никогда не настраивал — вот за это спасибо!

  2. Очень круто, ты мне сэкономил время с шаманством над JSON-файлами от Google — я уже хотел сам писать скрипт для их импорта!

  3. Стек у тебя топ (b2 + rclone + immich). А вот что хотел бы добавить в твой пост — так это restic! Он может делать инкрементальные бэкапы, имеет очень простой и удобный интерфейс и позволяет легко восстановить что угодно!

Вот так выглядят наиболее популярные фото-менеджеры.

походу Иммич рулит
походу Иммич рулит

  Развернуть 1 комментарий

@skywinder, спасибо, приятно :) Restic запишу, потрогаю его в свободное время.

Возможно, у тебя порядок действий другой, но я дальше озаботился вопросом доступа к фоткам извне, и если ты ещё его не решил, чекни мой пост об этом: https://frey.today/homelab-with-tailscale-docker-caddy-ssl-cloudflare/ :)

  Развернуть 1 комментарий

@Frey, о, да tailscale - топ! vpn из коробки. Я вот только единсенного что боюсь, что я буду где-то путешествовать. а там авторизация слетит - и все, к серверу не достучусь :)

  Развернуть 1 комментарий

@skywinder, а поясни поподробнее, что значит — слетит авторизация? Чтобы подключить железку к сети тейлскейла, нужно просто аутентифицироваться на ней выбранным способом, и всё, снова всё работает, может я чего-то упускаю?

  Развернуть 1 комментарий

@Frey, ну я пошел по простому пути и там выбрал авторизацию по гитхабу. но не уверен что она не слетит через какое-то время или когда мой сервер перезагрузится.

  Развернуть 1 комментарий

Мне понравилось такое решение https://photoview.github.io

  Развернуть 1 комментарий

@MZaa, выглядит интересно, но демка не открылась :\

  Развернуть 1 комментарий

@Frey, плохо что не открылась :(
скачай потести, тебе понравится

  Развернуть 1 комментарий

@MZaa, удивительно что есть мобильное приложение на айфон, но нет на андроид. Обычно наоборот, ведь на андроид можно apk выложить, а на айфоне обязательно платить за дев.аккаунт 🤔

На сайте не увидел инфы, умеет ли мобильное приложение в авто-аплоад фоток с телефона или оно умеет только показывать, что на сервере лежит сейчас и всё?

  Развернуть 1 комментарий

@MZaa, +1 к photoview. Юзаю его для просмотра фоток, syncthing для синхронизации (с телефона и других источников), pi4 + hdd для хранения, restic для бэкапов на s3

  Развернуть 1 комментарий

Залетел в клуб после твоего поста. По PhotoPrism сделаю небольшое уточнение, которое не очевидно при поверхностном изучении сайта. Помимо платных тарифов Essentials и Plus у них есть грейды повыше: Silver, Gold, Platinum. Эти грейды через определенное время дают lifetime доступ к лицензии Plus. Тот же Gold за 26 евро в месяц через год даст Lifetime Plus.

Конечно, не всем по душе будет и такое, но как опция по-моему вполне.

Мне PhotoPrism симпатичней по следующим причинам:

  • Он жрёт меньше Immich (для норм работы, включая AI примочки, достаточно тачки с 3 гигами RAM)
  • У него на мой взгляд куда более внятное будущее, учитывая модель монетизации.

Думаю позже напишу свой опыт.

  Развернуть 1 комментарий
Константин Кошелев Развиваю NFT продукт и сообщество в VK 27 июня 2023

А для гуманитариев есть альтернативы?

  Развернуть 1 комментарий

@Kosheleffff, боюсь, для гуманитариев лучшей альтернативой будет оставаться таки в облаках, это наиболее беспроблемный с точки зрения затрачиваемых усилий вариант (по крайней мере, мне так кажется)

  Развернуть 1 комментарий

@Kosheleffff, если хочется селфхостед и вы гуманитарий, я бы рекомендовал купить готовый NAS, например от Synology.

Disclaimer: я так не делал, потому что мне сам процесс возиться со всем этим в целом нравится, но если бы мне хотелось чтобы это было дома, но не хотелось возиться, купил бы Synology.

  Развернуть 1 комментарий

@Kosheleffff, я использую iCloud Photos. К домашнему raspberry pi4 подключен ssd и раз в сутки запускается icloud-photos-downloader, который бекапит свежие медиа на ssd.

  Развернуть 1 комментарий

@sobolev, а как у скрипта дела с сохранением метаданных и (особенно) даты создания файла?

Я поймался разок на том, что просто вытащить фото с телефона на мак очень сложно, не сбросив дату создания файла на «сегодня». Нашёл какую-то утилиту, которая не не перетирала дату, но только если скидывать файлы на внутрний ссд мака, на внешний - снова сбрасывалась дата. Пришлось пачками перекидывать фото с телефона на мак, затем на внешний ссд 🤯

  Развернуть 1 комментарий

@MrModest, скрипт дату создания файла точно сохраняет, также из коробки может раскидывать по директориям yyyy/mm/dd

  Развернуть 1 комментарий

@MrModest, стандартная macos утилита image capture сохраняет дату файла (по крайней мере с iphone)

  Развернуть 1 комментарий

@ValeriyIschenko, Вот через неё я из вытаскивал с сохранением даты. Но она сохраняет только если скидывать на внутренний ссд мака. Если кидать сразу на внешний хард/ссд, то также перетирает дату :(

  Развернуть 1 комментарий
Андрей Коваленко Инженер мониторинга 28 июня 2023

Тоже долго думал как это реализовать пару лет назад, но упор был не на фотки, а просто на файлы. Купил HP микросервер на 4 диска, поставил туда TrueNas, рядом поставил неттоп, там NextCloud в контейнере. На хранилке рейд, обе железки воткнуты в ИБП.
у NextCloud много фишечек, многопользовательность, можно документы локально совместно редактировать и всё такое.
В основном я туда автоматически гружу фотки с телефона вместо яндекс облака.
За место куда бекапить спасибо, цены хорошие.

  Развернуть 1 комментарий

О, а я недавно собрал самосборный NAS на оупен-сорсной версии synology.
Все работает быстро, интерфейс приятный, если приложения для андроид и айфона.
В локальной сети просмотр фото с NAS работает также быстро, как на самой машине.
Есть некоторые неудобства с расписанием включение-отключения, а так все прямо оооочень приятно.

  Развернуть 1 комментарий

@Jamon, xpenology? Это, скорее ,«пиратская версия». Они не занимаются дистрибуцией софта и ОС для стороннего железа ;)

  Развернуть 1 комментарий

На практике оказалось, что Immich сам по себе позиционируется как бэкап-тулза, да ещё и в стадии активной разработки (разработчики просят не использовать софтину как единственное средство хранения фоток, но кто их слушает, верно?)

Всё верно, они ломают совместимость только в путь. Где-то полгода назад у меня начали отваливаться сервисы, полез смотреть - а там половину докер композа надо переписывать.

Но я действительно пользуюсь им в основном как бекапом, а не как замене гуглфото.

  Развернуть 1 комментарий

iCloud: 2 TB за 10 долларов

  Развернуть 1 комментарий

@Andrew22,

не в облаках
iCloud

  Развернуть 1 комментарий

@TiraelSedai,

Постоянно:

Хранилка для бэкапов Backblaze — ~5 баксов в месяц

  Развернуть 1 комментарий
Egor Tashchilin Мягкий директоро 30 июня 2023

А никто не придумал как бекапить айклауд нормально? То есть пусть фотки в айфоне фоткаются и синкаются в айклауд (косты ок 2тб), а вот бекап как. делать норм? Идеально с сайнолоджи.
Решение с покупкой мак мини и зеркалить туда всю библиотеку и уже папку синкать куда надо я знаю. Не хочется макмини покупать :(

  Развернуть 1 комментарий

@pihta, о, я как раз в соседней ветке описал, как бекаплю айклауд: тык

  Развернуть 1 комментарий

@pihta, У сайнолоджи апка для айфонов есть photos. Можно настроить синхронизацию фоток по подключению к домашней вафле.

  Развернуть 1 комментарий

https://meichthys.github.io/foss_photo_libraries/ сравнение selfhosted решений для хранения фоток в виде таблицы

  Развернуть 1 комментарий
Aleksandra Usacheva Ебанько Вастрик.Клуба 27 июня 2023

Как быть с надежностью дома? Скачок напряжения и F всей технике, грабеж?

  Развернуть 1 комментарий

@Roniakia, как раз на этот случай всё выгружается в Backblaze B2 :) А оттуда можно всё выкачать на новую железку и восстановить в прежнем виде

  Развернуть 1 комментарий

@Frey, а, пардон. Мне надо отдохнуть, уже не воспринимаю информацию нормально.

  Развернуть 1 комментарий

@Frey, неплохо!

  Развернуть 1 комментарий

@Frey, почему, кстати, B2, а не условный. Glacier?

  Развернуть 1 комментарий

@fCCbp7RUf09pxYkr, очень правильный вопрос, и ответ на него простой — я пока практически ничего не знаю о Glacier кроме концепции и того, что он вроде как сильно дешевле S3. Возможно в будущем в приливе энтузиазма изучу и этот вариант, но пока оставлю как сколхозил :) Плюс, я настроил бэкап на B2 два раза в сутки, не знаю, как у Glacier с такой частотой записи

  Развернуть 1 комментарий

@Frey, Знаю что синоложи прямо из коробки умеет в него, только токен подставь

  Развернуть 1 комментарий

@Frey, Glacier – это не отдельный от S3 сервис, а класс хранения в S3. Отличается более низкой ценой в ущерб скорости выдачи данных.
Вот, сделал примерный расчёт https://calculator.aws/#/estimate?id=2355c280a376befba2e20d2ad4a672ff028a54c3
Чисто хранение 300 гигов данных в самом "глубоком" архиве (время доставания до 2 суток) из расчёта среднего размера файла 10 МБ и запуления 1000 новых в месяц обойдётся меньше долора.

  Развернуть 1 комментарий

@Spaider, о, очень прикольно. А аплоад в любое время?

  Развернуть 1 комментарий

@Frey, Да, запись как запись 🙂

  Развернуть 1 комментарий

@Spaider, Было время, когда Glacier был опасен стоимостью вытаскивания данных из архива. Надеюсь AWS это поправил

  Развернуть 1 комментарий

@Tim, Вроде не так уж и дорого. Тут же случай, когда вытягивать понадобится только в случае, когда остальные бэкапы навернулись. При таком раскладе за восстановление любимы фотонек немножко долоров не жалко 🙂

  Развернуть 1 комментарий

@Spaider, я вот читал такие истории, нашёл сейчас навскидку:

https://www.reddit.com/r/DataHoarder/comments/iukepk/how_much_does_it_cost_to_get_data_out_of_aws/

  Развернуть 1 комментарий

@Spaider, я вот обновил твой рассчёт с учётом выкачивания тех же 300 гб в месяц:

https://calculator.aws/#/estimate?id=d84a54173e60de64532bd7e7d55e69a2555aa958

  Развернуть 1 комментарий

@Tim, так это 300 гигов вытягивать каждый месяц или как? Так-то если один раз вытянуть 300 гигов за 35$ звучить нормально.

  Развернуть 1 комментарий

@Spaider,
Я думаю ты прав, разово $35 за retrieval должно быть ок..

я вот не знаю, как оно будет работать с aws s3 sync надо ли будет вытаскивать данные в S3 standard чтобы синхронизировать и потом положить обратно в Glacier?

  Развернуть 1 комментарий

@Tim, Diff-ы замутить не получится. Но для фоток это и не надо, наверное. Автор не упоминал, что активно фотоньки редактирует. “Положил-и-забыл”.

You store data in Amazon Glacier as an archive. Each archive is assigned a unique archive ID that can later be used to retrieve the data. An archive can represent a single file or you may choose to combine several files to be uploaded as a single archive. You upload archives into vaults. Vaults are collections of archives that you use to organize your data.

  Развернуть 1 комментарий

@Spaider, упоминается sync, что есть дифф по (хотя бы) именам файлов, а то и размерам и датам изменения. Подразумевается(мною), что удалённые локально файлы будут удалены в облаке.

  Развернуть 1 комментарий

@Roniakia, скачок напряжения это легкорешаемая проблема, а вот потоп/пожар это риск который в голове у людей необоснованно занижен

  Развернуть 1 комментарий

@Roniakia, 3-2-1 бэкап, который все равно через облако

KEKW

  Развернуть 1 комментарий

@fCCbp7RUf09pxYkr, Никто не мешает шифровать файлы перед бэкапом

  Развернуть 1 комментарий
Mike Ivanov CTO; highload(golang); Robotics 28 июня 2023

Знакомая Вена на фотках

  Развернуть 1 комментарий

@mike-golden-head, И знакомые лица) Не ожидал здесь увидеть)

  Развернуть 1 комментарий

😱 Комментарий удален его автором...

  Развернуть 1 комментарий

@borisor, на сайте boxcryptor,'а просят расшифровать файлы, так как их Dropbox купил

  Развернуть 1 комментарий

шикарно, спасибо!

  Развернуть 1 комментарий

Комменты не читай - сразу пиши
Я тоже вот уже лет 8 присматриваюсь к мысли вытащить все с Гугла обратно, у меня там как раз "чистовой" архив по альбомам. Хорошая мотивация заняться и заодно поковыряться с софтом и железками.
Спасибо за пост, короче

  Развернуть 1 комментарий

У меня просто стоит старенький Synology (10+ лет), на котором стоит родной плагин для бекапа гугл-фоток.
По итогу:

  1. Продолжаю пользоваться гуглом как бекапы с телефона и как хранение альбомов после поездок, чтобы легко было делиться и искать. Храню пережатые джипеги, поэтому легко влажу в 100гб. Я понял с временем, что мне размер не важен)
  2. Само оттуда бекапится на Синолоджи
  3. Раз в полгода-год, ручками, что не ушло в облако и оседало на компе + все что уходило в облако, бекаплю на карманный ssd.
  Развернуть 1 комментарий
Kosta Korenkov Около-блокчейн и вёб разработка 5 июля 2023

Спасибо за статью. Рассматривал Фотопризм+B2 для своего сетапа, но после этой статьи попробую Имич :).

Подлинкую полезное. Табличка сравнения софта для организации фоток: https://github.com/meichthys/foss_photo_libraries

  Развернуть 1 комментарий

Че-то не очень понял в чем проблема просто купить NAS с несколькими дисками и складывать на него фотки? А диски сделать RAID-массивом, чтобы если одни сломался, то остальные остались на месте.

  Развернуть 1 комментарий

@kkomissarov, Правило 3 2 1 не выполняется

  Развернуть 1 комментарий

@kkomissarov, да нет никакой проблемы :) Пилишь как нравится и кайфуешь, я запилил как мне зашло. Помним только, что рейд != бэкап, а то может печально выйти

  Развернуть 1 комментарий
Dmitrii Medvedev Test Automation Engineer 27 июня 2023

Со старыми фотками из облаков более-менее понятно, а как процессятся новые?

  Развернуть 1 комментарий

@deim, для новых есть мобильная аппка под обе платформы, которая работает по принципу Google Photos: умеет выгружать наружу, а когда всё выгружено, можно удалить фотки с телефона и по необходимости тянуть их с сервера

  Развернуть 1 комментарий

А вот непонятно, как происходит импорт из Google Photo, руками скачаные архивы takeout или как то ещё?

  Развернуть 1 комментарий

@Tim, да, это я не упомянул. Верно, через Takeout запрашиваешь экспорт, через некоторое время на почту падает письмо со ссылками на скачивание архивов с фотками. В архивах же лежат и метаданные от фоток в джейсонах

  Развернуть 1 комментарий

😱 Комментарий удален его автором...

  Развернуть 1 комментарий

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

Как понимаю, щупался только photoprism и immich?

  Развернуть 1 комментарий

@nett00n, Да, дальше Immich смотреть уже не захотелось :) Да и некуда особо, гуглинг без непосредственного опыта использования выдал ещё несколько не очень популярных решений без большой пользовательской базы и/или в заброшенном виде, туда даже лезть не хочется

  Развернуть 1 комментарий

@nett00n, https://github.com/photoview/photoview вот еще неплохое

  Развернуть 1 комментарий

@devpalm, насколько понял, это только гуй. Аплоад там предполагается кем-то кроме, например owncloud. Его тоже себе добавил в выборку

  Развернуть 1 комментарий

@nett00n, вот нашёл большое сравнение:
https://github.com/meichthys/foss_photo_libraries

  Развернуть 1 комментарий

@sergstepanenko, я бы добавил еще один параметр: extensibility (плагины). Все не проверял, пользовался только Piwigo, где плагинов много, и разных :)

  Развернуть 1 комментарий

а кто как тегирует фотки? что бы вот найти фотку машины которую ты снимал на зеркалку.

  Развернуть 1 комментарий

@MZaa, Самый удобный (ручной) таггинг я видел в Piwigo + плагины(tag groups, colored tags, add tags mass)

  Развернуть 1 комментарий
Alexei Tenitski Site Reliability Engineer 7 июля 2023

Ипольщую OneDrive для синхронизации фоток с телефона - он позволяет получить оригиналы, а не то что Гугл там пережал.

Т.о. на телефоне - OneDrive, на локальном сервере - rclone.

Хватает бесплатного плана, так как фотки в OneDrive не хранятся.

  Развернуть 1 комментарий

@alexei, Ну так и гугл фото позволяет загружать оригиналы, лол

  Развернуть 1 комментарий

@TiraelSedai, Гугл пережимает оригиналы. По крайней мере жпеги.

  Развернуть 1 комментарий

  Развернуть 1 комментарий

@TiraelSedai, а, вспомнил почему у меня так - Google Photos это только для просмотра фотографий (на телефонах и всяких умных дисплеях).

Поэтому с телефонов нет смысла забивать место в облаке оригиналами: с телефонов идет ужатая фотка если кому быстро переслать. Оригиналы же через OneDrive прилетают на NAS, который у меня source of truth всей фотоколлекции.

  Развернуть 1 комментарий
Дмитрий Логвиненко Data Engineer и программист странных вещей 6 ноября 2023

Просто сваливал фотографии на жесткие внутри NAS (инкарнации этого NAS — отдельная тема), с клятвой «я обязательно это всё разберу и приведу в порядок».

Когда-то фотки были только с цифровика и приводить в порядок было не очень сложно.

Потом пришли эти чёртовы смартфоны с камерами и возможность фотографировать всегда, всё и в любых количествах, и каталогизация превратилась в филиал ада, а рядом с порядком поселились папки sortme, sortme_dmitry, sortme_samsung etc.

Короче, повелся я на эту рекламу Immich, изрядно повозился с его компоузом (не получилось завести с кастомным пользователем, пришлось дать рута, ну и прочие проблемы с активно разрабатываемым софтом), и скормил ему полтера (55к+ фото, видео, включая равки и скриншоты, прости господи) стаффа в качестве External Library (т. е. он не импортирует с перераскладыванием и просто вносит в базу, индексирует, строит тамбстоунынейлы).

Шли первые сутки, несчастный Celeron в полочку, 8G оперативы под завязочку, дети плачут, что Plex косячит.

Пока из обнаруженного: у MOV с Canon'а нет звука.

  Развернуть 1 комментарий
Petr Korolev ETHusiast in open-source & privacy 27 февраля в 17:12

когда я экспортирую из Google, там еще проблема, что он в экспортном архиве дает кучу дубликатов — на каждый созданный альбом — отдельную копию. Ты с этим что-то делал и сортировал? Или просто удалял эти дубли?

И как раз еще то, чем я хочу разобраться — какую систему для удаления дубликатов использовать. Те что на слуху: fdupes, rdfind, или dupeGuru. Но пока еще не пробовал их использовать. Интересно, если уже есть какой-то опыт с этим.

  Развернуть 1 комментарий

@skywinder, к сожалению, выпиливал руками. Однако, есть cli-тулза immich-go от комьюнити, которая предлагается как альтернатива родной cli-утилите, и она как раз вроде как умеет работать с дублями. Но я просто чистил руками время от времени

  Развернуть 1 комментарий

@Frey, кстати, смотрю PR - походу пофиксили проблему с битыми файилами: https://github.com/garzj/google-photos-migrate/issues/25

хотя там тоже ссылкаются на immich-go cli. :)

  Развернуть 1 комментарий

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб