Вот оно: мой семейный архив фотографий с 2004 года, исходный код проектов, документы и заметки за многие годы, фильмы-сериалы и ещё кое-какая мелочуга. Всё это лежит в гостиной моей квартиры, в тумбочке под телевизором на домашнем сервере, организованном на мини-ПК.

Как это выглядит в реальном мире

И не только лежит, конечно. Хотя, то что оно лежит у меня, и хозяин-властелин своим файлам только я, и никто больше, уже само по себе “киллер-фича”. Но об этом чуть ниже.

Вот описание основных функций:

  • Документы и проекты с рабочего компьютера отправляются на сервер в режиме он-лайн.
  • Телефон отправляет новые фотографии при условии подключения к зарядке и вайфай сети одновременно,
  • Удаленные на устройствах файлы не удаляются на сервере, складываются в некую “корзину”. На всякий случай.
  • Онлайн-фотоальбом. Фотографии индексируются и обрабатываются простенькой нейросетью. Даже подборки получаются. Не такие умные, как предлагает вам телефон (“Смотрите, как вы провели новогодние праздники в прошлом году”), но тоже неплохо.
  • Просмотр медиа-контента осуществляется внутри локальной сети через smb протокол.
  • Ко всем файлам имеется удаленный доступ.
  • Можно делиться файлами и целыми разделами с другими людьми.
  • Все это дело бекапится по расписанию, на случай физической гибели жёсткого диска сервера.
  • Можно бекапить на другие сервера, предварительно зашифровав данные.

Сразу поговорим о деньгах ?

На конец 2022 года аренда одного терабайта Яндекс.Диска в год, стоит 191 рубль в месяц. Это 2292 рубля за один год владения.

Мой 1 Тб Андреев.Диска обошёлся мне гораздо дороже.

  • Мини ПК на i3 7100u + 8 Гб оперативки + 128 Гб SSD: 10000 рублей (на самом деле этот компьютер валялся без дела, но представим, что как будто бы купил);
  • Жёсткий диск на 1 Тб: 3500 рублей.

То есть 13500 рублей за 1 терабайт.

Окупиться через 6 лет ?

(На самом деле не окупиться, если посчитать стоимость всей инфраструктуры. Роутеры, свичи, пачкорды, сетевые фильтры и тд. А ещё ты хочешь купить второй диск для организации RAID-1, док-станцию для этого дела и ИБП. Да и диски нужны больше, чем 1тб. Саша, кого ты обманываешь?)

Но дело, конечно, совсем не в экономической окупаемости.

Сам себе Яндекс.Диск

Дело в по-настоящему-обладанию-своими-же-файлами.

После ухода и/или блокировки некоторых сервисов на территории России я начал с недоверием относится к онлайн-сервисам, и их владельцам-корпорациям… а так же к государствам. (Товарищ майор, тут я говорю с точки зрения проблемы централизации интернета, и минусах связанных с этим. Не более)

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

Во-вторых, сервис(корпорация) может вдруг решит поменять “условия игры” в одностороннем порядке. Например, начнет просто не пускать на свои сервера. Например, потому-что пользователь – русский.

Раньше даже шутка была такая: “тебя что в Гугле забанили?”. А теперь уже и не шутка… Лично мне не приходит СМС от Гугла при прохождении двухфакторной аутентификации. Проблема известная, но Гугл её никак не решает.

Вот такой вот киберпанк.

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

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

Какие есть варианты?

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

NAS на Synology, TerraMaster и тд.

✅ Работает из коробки. Низкий порог входа.

❌ Управляется проприетарным ПО. То есть не избавляет от зависимости от сервиса/корпорации. Такое решение просто не будет работать без серверов компании.

❌ Дороже, чем собрать сервер на основе мини-ПК и свободного ПО самостоятельно.

❌ Не так интересно разбираться.

NextCloud как личное облако.

✅ Свободное ПО

✅ Есть мобильное приложение.

✅ Разграничение прав доступа к файлам за счёт создания пользователей в самом Некстклауд.

❌ Не такие глубокие возможности настройки и автоматизации синхронизации файлов на устройствах.

❌ Для организации облачного фотоальбома есть более удачные решения.

❌ Лично мне “не зашло” под организацию личного облака. Так же мне не удалось совладать с приложением для Андроида. Глючит:(

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

Так-себе личное облако

✅ Необходимый минимум. Базис.

❌ Скудный функционал, фактически только бекапы в ручном режиме.

❌ Нет, или почти нет, возможностей настройки и автоматизации.

Моё решение ?

За этот год я пришел к следующему сетапу:

CasaOs

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

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

Syncthing

Syncthing – программа с одной функцией, но эту функцию она делает изумительно. Умеет тонко настраивать параметры копирования файлов в заданной папке в связанную папку на сервере.

Интерфейс SyncThing

  • Параметры синхронизации: только отправить, только получить, и получить и отправить.
  • Версионность: позволяет настроить, хранить ли версии файлов, если они были изменены на связанном устройстве. Позволяет сохранить версию “в корзину”, если на связанном устройстве файл был удален.
  • Шифрование: можно зашифровать удалённую копию файлов. Удобно, если вы не доверяете удалённому серверу.
  • И много других полезных параметров синхронизации на все случаи жизни.

Я установил Syncthing на сервере, на своем компьютере и на своем телефоне как классические приложения.

Телефон отправляет фотопоток в папку на сервере, при условии, если он заряжается и подключен к вай-фай сети. При установке приложения, оно висит как сервис, что бы Андроид его не выключил. Слегка бесило висящее в Андроиде уведомление активного сервиса, около часов, но с этим можно бороться, просто включив настройку на телефоне “Уведомления - Скрыть беззвучные уведомления в строке состояния”.

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

Компьютер настроен в режиме “только отправить” в папку на сервере. Приложение на Windows запускается при старте системы и висит себе тихонько в трее.

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

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

Изумительно. Я уже говорил?

PhotoPrism

PhotoPrism ещё одно Open Source приложение на сервере. Оно сканирует мои фотографии в определенных папках и добавляет их в свою библиотеку.

Интерфейс PhotoPrism

На борту есть нейросеть, которая индексирует фотографии.

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

FileBrowser

Позволяет поделиться любым файлом либо папкой, если это необходимо, с пользователем из-вне локальной сети. Доступ в “большой” интернет организован через сервис доменных имен KeenDNS на роутере Keenetic. Можно организовать любым другим способом, я просто выбрал бесплатный и самый быстрый?

Smb протокол и VLC-плеер

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

Вместо заключения ?

Да, приходится разбираться и настраивать всё самому.

Может быть, мне было бы все равно, как работает пресловутый ГуглоДиск, где хранит мои фотографии и что с ними делает, если бы оно работало. Как, например, я не вникаю в то, как в деталях работает доставка хлеба в любимый супермаркет у дома. (А для кого-то это очень важно. Даже когда, на мой взгляд, этот сервис работает хорошо и не требует внимания. И это – нормально)

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

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

И, по всей видимости, ждать ещё долго.