? Идея

Всё началось с простой, но насущной проблемы: я хотел быстро передать файлы между своими устройствами — без интернета, без Bluetooth и без облаков.

Существующие способы были либо медленными, либо ограниченными:

  • Bluetooth — устаревший и слишком медленный для видео и больших папок

  • Облачные сервисы — требуют авторизации, интернета, да ещё и часто сжимают файлы

  • Airdrop — работает только между устройствами Apple

  • Флешка — не всегда под рукой, да и не подходит для телефонов

? Тогда я задал себе вопрос:

Почему нельзя просто открыть ссылку в браузере и мгновенно получить доступ к файлам с другого устройства?

Так появилась идея — создать локальный медиасервер, который:

  • работает по Wi‑Fi, без интернета

  • запускается одним кликом

  • доступен из любого браузера в локальной сети

  • предоставляет простой и понятный файловый интерфейс

Sapar Mini должен был стать локальной альтернативой Google Drive или Airdrop, но полностью офлайн, без регистрации, и максимально лёгким.

⚙️ Реализация

Чтобы идея стала реальностью, мне нужно было три вещи:

  • Запускать локальный сервер на любом компьютере

  • Предоставить простой интерфейс для доступа к файлам

  • Обеспечить доступ к этому серверу с других устройств в сети

? Технологии

Я выбрал стек, который позволяет собрать приложение в виде десктопной программы, но с силой веба:

  • Electron — упаковывает Node.js и фронтенд в одно кроссплатформенное приложение

  • Node.js + Express — локальный HTTP‑сервер, который обрабатывает все запросы к файлам

  • EJS — простая серверная генерация HTML

  • Bootstrap 5 — адаптивный и лёгкий UI без перегрузки

  • Vanilla JS — всё без React/Vue, чтобы было быстро и нативно

? Интерфейс

Главный принцип: максимальная простота без обучения.

  • Отображение файлов и папок в виде списка

  • Drag & drop для загрузки

  • Предпросмотр медиа (видео, изображения) прямо в браузере

  • Создание/удаление/переименование папок

  • Навигация через «хлебные крошки»

  • Адаптивность — интерфейс работает как на ПК, так и на телефоне

? Работа по локальной сети

Когда пользователь запускает приложение:

  • Sapar Mini автоматически определяет локальный IP (например, 192.168.0.104)

  • Использует этот IP в качестве адреса сервера — без порта

  • Сразу открывает интерфейс в браузере, например:

Например, http://192.168.0.104

? Это значит, что тебе не нужно запоминать порт — достаточно просто открыть IP в любом браузере устройства, подключённого к той же Wi‑Fi сети.
Интерфейс мгновенно загружается, и ты получаешь доступ к файлам как к локальному "облаку".

Такой подход особенно удобен:

  • в школах, офисах, поездках

  • при раздаче Wi‑Fi с ноутбука (без роутера)

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

? Безопасность

Несмотря на простоту использования, я сразу понимал: если любой в сети сможет открыть твой IP — это потенциальный риск.

Поэтому в Sapar Mini реализована базовая, но надёжная защита.

? Авторизация

  • При первом запуске Sapar Mini предлагает создать пароль — ты становишься хостом

  • Все последующие входы требуют ввода этого пароля

  • Пароль можно изменить в настройках в любой момент

  • Без ввода пароля доступ к интерфейсу полностью блокируется — даже если кто-то знает IP

? Таким образом, даже в открытой сети никто не сможет подключиться к твоим файлам без разрешения.

?️‍♂️ Приватность по умолчанию

Sapar Mini создан как офлайн-инструмент, а значит:

  • Он не требует интернета

  • Не использует сторонние API или облака

  • Не собирает аналитику и не отправляет данные наружу

Все действия — загрузка, удаление, просмотр — происходят только локально, на твоём устройстве.

Это делает Sapar Mini особенно удобным для:

  • домашних сетей

  • учебных заведений

  • поездок, где нет доступа к интернету

? Разработка

Когда идея была сформулирована, я сразу начал писать код — без долгих планов или сложной архитектуры.
Цель была простая: сделать, чтобы работало.

? Процесс

Всё началось с базового Express-сервера:

  • Отображение файлов из выбранной папки

  • Возможность скачивания

  • Примитивный HTML-шаблон на EJS

  • Отсутствие стилей и авторизации

Постепенно я добавлял функции:

  • загрузку через drag & drop

  • предпросмотр изображений и видео

  • навигацию по папкам

  • авторизацию

  • адаптивный UI с Bootstrap

? MVP

Минимально рабочая версия включала:

  • локальный запуск

  • просмотр папок

  • скачивание файлов

  • простую авторизацию

Даже в таком виде это уже было удобно. Я показал MVP:

  • родственникам (обмен фото и видео)

  • друзьям (стриминг фильмов по локалке)

  • преподавателю, который скинул презентации студентам прямо на телефоны

?️ Отзывы были одинаковыми:

«А почему так не работает по умолчанию на всех устройствах?..»

После этого я понял: проект не только для себя — он реально полезен другим. Так начался путь к полноценному релизу.

? Релиз и будущее

Когда MVP был стабилен, интерфейс стал удобным, а обратная связь — положительной, я понял: пора выпускать.

? Публикация

Я оформил проект как open-source:

  • Описал всё в README.md

  • Добавил лицензию MIT

  • Подключил сборку через GitHub Actions

  • Запустил автосборку для Windows (.exe), macOS (.dmg) и Linux (.AppImage)

  • Выложил всё в Releases

? Теперь любой человек может:

  • скачать готовую версию

  • установить без зависимостей

  • и использовать офлайн сразу после запуска

? Open Source

Я решил сделать Sapar Mini полностью открытым, потому что:

  • хочу, чтобы им могли пользоваться не только разработчики

  • верю в ценность офлайн-инструментов без слежки и рекламы

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

Каждый коммит — прозрачный. Нет скрытых API, нет трекеров, нет подписок. Всё работает локально и навсегда.

? Планы

Sapar Mini уже полезен, но я хочу развивать его дальше:

  • ? Автоопределение сервера через Bonjour (sapar.local)

  • ? Улучшенный UI для телефонов

  • ? Авторизация с сессионным доступом

  • ? Тёмная тема

  • ? Ограничение доступа к выбранным папкам

  • ? Локальный чат между устройствами

  • ? Сборка для Raspberry Pi как автономного медиасервера

Если тебе интересна идея — ⭐ поставь звёздочку на GitHub, напиши фидбэк или просто попробуй.

Спасибо, что дочитал.
Sapar Mini — это маленький шаг для сети, но большой шаг к офлайн‑свободе.

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


  1. space2pacman
    08.08.2025 14:44

    Без ИИ уже совсем нельзя написать статью?


    1. l1kus
      08.08.2025 14:44

      Понимаю, что для человека технической специальности написание статей изначально трудная задача, но любой взрослый человек должен уметь свободно формировать свои мысли и излагать их в форме эссе — хотя бы этот полезный навык включает школьная программа. Лично мне неприятно видеть, как авторы применяют ИИ, порой не видоизменяя текст, или даже не убирая конструкции взаимодействия с пользователем (причём не только на платформах, подобных Хабру).


  1. CryInt
    08.08.2025 14:44

    Без https, а его на скриншотах нет, пароль уходит моментально и смысла в нем вообще нет