17

Ответ B.Lebowski в «Домашняя серверная»11

О! Вы своим самодельным NASом мне очередой раз разбередили давнюю мечту. Может посоветуете что-то или соображениями поделитесь как лучше воплотить и стоит ли игра свеч. Вообще любые критические замечания и конструктивные мысли на тему интересуют.



Проблема.


Есть у меня Большая Семья разной глубины и степени родства, частично сконцентрировнная локально, частично разбросанная вплоть до Испании. Ну там уж совсем дальние родственники, но сути дела не меняет.

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

Нао сказать, что гугл  своё время изрядно разгрузил в некоторых аспектах вопрос совместного владения семейным фото-архивом. Можно было всех заставить завести гуглопочту и раскидать ссылки на общие альбомы. Можно нужные фотографии забирать и сохранять себе в альбом и как-то худо-бедно это всё работало, пока гугл не стал ограничивать объёмы хранения фотографий.



Суть идеи такая.


Хочется спроектировать программно-аппаратное решение в виде недорогого специализированного NAS'a, который относительно легко собрать из типовых компонентов и в аккуратной коробочке подарить поставить всем своим родственникам, друзьям и знакомым по домам.

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

Фактически хочется соорудить свой "Google Photo" с домашним хостингом и шлю резервированием на других таких девайсах.
Очень хорошо было бы, если бы фотографии можно было бэкапить ещё и в облаках вроде гугл-фото и яндекс-фото, на холодных стораджах в амазон, на кассетак и т.д.
Однако основной способ резервирования - это совместное владение одними и теми же фотками разных пользователей на разных NAS'aх.


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



Собственно вопросы.


1. Из чего собрать железку? Наверно распбери маловато, хотя хостить нужно простой веб-сервер с веб-галереей и уметь показывать её в брацзере через HDMI на фуллскрин.

2. В угоду дешевизне наверно имеет смысл использовать HDD вместо SSD? Или попробовать делать гибридный вариант заставив  оперативно меняющиеся данные лежать на SSD, а основной объём на HDD?

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



Что есть на текущий момент


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

каталог, флешку, альбом гугл-фото или целый аккаунт; а она проиндексирует всё что там есть, найдёт и свяжет дубли, отметит дублирование в БД, протегирует фото как сможет по отдельным фото-сессиям, по камерам (из exif), по гео-локациям, по размерам и разрешениям, сохранит в БД хеш фотографии, привяжет соответствующий RAW, если имеется, объединит в группы фотографии, похожие на брекетинг, таймапсы, и серийные сессии, отметит битые и не читающиеся фотографии, переименует файлы фотографий по стандартному глобальному формату, разложит по целевым хранилищам.
В общем, наведёт порядок.


Очень рассчитываю, что в комментариях:

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

- предложат как лучше синкать файлы между каталогами и фото-NAS'ами: rsync, торренты, ещё какие-то крутые решения?

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

Хочется избежать вендор-лока от производителя и довести до понимания пользователя. что вся его фото-коллекция в худшем случае доступна в виде USB-storage, что там все файлы и данные не зажаты в какую-то монолитну БД, а лежат в понятной простой структуре по каталогам с датами, что все метаданные хранятся и корректно дублируются в самих файлах и в текстовых мета-файлах рядом с фото. так что пометки и теги не пропадут, формат хранения прост и открыт, а любой, может сделать тривиальный парсер и выгрузить всю коллекцию в любое облако.

Само собой всё должно быть в опенсорс.

Ну что?

Наивно и слишком масштабно для pet-роекта?

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

Не пытаться сражаться с ветряными мельницами? Всё равно не получится сделать достаточно удобно и просто?

А может такое уже есть и в полном объёме, а я тут изобретаю самокат?


Что я делаю не так?=)


P.S. Хочется красивую винтажную коробочку под телефизор или на полку. Выглядела бы она как обычный фото-альбом-книжка, но с HDMI и гнездом для блока питания, а ещё с пультом в корешке и аккуратным QR-одом на форзаце.
По QR-коду ссылка на веб-альбом или настройка на подключение к вайфаю, поднятому самим альбомчиком.