? Идея
Всё началось с простой, но насущной проблемы: я хотел быстро передать файлы между своими устройствами — без интернета, без 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)
CryInt
08.08.2025 14:44Без https, а его на скриншотах нет, пароль уходит моментально и смысла в нем вообще нет
space2pacman
Без ИИ уже совсем нельзя написать статью?
l1kus
Понимаю, что для человека технической специальности написание статей изначально трудная задача, но любой взрослый человек должен уметь свободно формировать свои мысли и излагать их в форме эссе — хотя бы этот полезный навык включает школьная программа. Лично мне неприятно видеть, как авторы применяют ИИ, порой не видоизменяя текст, или даже не убирая конструкции взаимодействия с пользователем (причём не только на платформах, подобных Хабру).