Перейти к содержанию

Рекомендуемые сообщения

Опубликовано (изменено)

Приложения SmartUtils, SmartRoute, SmartPhoto из Snakelair Keenetic Entware OPKG Repository

Для себя создавал ряд приложений, все оптимизированы для того чтобы не подвешивать Giga, Hooper на ARM

📸 SmartPhoto — Персональный Google Photos на роутере Keenetic и сервере
SmartPhoto — это легковесный медиасервер на чистом Go с веб-интерфейсом в стиле Google Photos, мобильным приложением для Android и клиентом для ПК. Он превращает обычный роутер с подключенным USB-диском в личное облачное хранилище фото и видео без сторонних подписок и передачи данных третьим лицам.
🌐 Серверная часть (Роутер / NAS / Linux / Windows)
Работает на любом роутере: экстремально низкое потребление RAM (от 30 МБ) и 0% CPU в режиме простоя.
Бережное отношение к флеш-памяти: кольцевой буфер логов в RAM, пакетная запись метаданных на диск, отсутствие износа накопителя.
Умная обработка видео: мгновенное чтение встроенных обложек MP4/MOV и файлов экшн-камер (GoPro/DJI .THM) на чистом Go, поддержка легкого ffmpeg-mini (1 поток, в 10 раз меньше RAM).
Сверхбыстрая синхронизация: сжатие трафика Gzip, кэширование структуры папок в памяти, быстрая работа через KeenDNS и мобильный интернет.
Автораскладка по папкам (Auto-Organizer): автоматическая сортировка медиафайлов по настраиваемым шаблонам дат (ГГГГ/ММ/ДД) со встроенной защитой от повторной загрузки дубликатов.
🖼 Веб-интерфейс (SPA-галерея)
Интерфейс в стиле Google Photos: адаптивная плиточная лента, плавная шкала быстрой прокрутки по годам и месяцам (Date Scrubber) без лагов.
Таймлайн, Альбомы и Дерево папок: гибкий просмотр как единой хронологической лентой, так и по физической структуре каталогов на диске.
Автодетекция путешествий (Trips & Travels): умное объединение многодневных поездок и туров выходного дня с отображением дат, дней и количества снимков.
Офлайн-геокодинг по GPS: встроенная база городов и горных курортов (определение мест без обращения к внешним серверам), ссылки на Яндекс Карты, Google Maps и OSM.
Полноэкранный просмотрщик: зум колесиком мыши, поворот, слайд-шоу и подробная панель метаданных EXIF.
📱 Мобильное приложение (Android)
Автоматическая синхронизация: фоновая выгрузка новых фото и видео со смартфона на домашний роутер по расписанию, зарядке или Wi-Fi.
Докачка больших файлов: чанковая передача тяжелых видеороликов с защитой от обрывов связи.
Просмотр удаленного архива: мгновенный доступ к фото на роутере с локальным кэшированием и офлайн-режимом.
Удобная навигация: центрированный зум жестом (Pinch-to-Zoom), быстрый поиск, просмотр внутри альбомов, открытие геолокации в приложении Яндекс/Google Карт.
🖥 Настольный клиент (SmartPhoto Desktop) (В процессе внутреннего теста)
Системный просмотрщик по умолчанию: нативное приложение для Windows 10/11 с мгновенным открытием фото и видео любых форматов.
Режим PowerBoost: обработка медиатеки на мощном многоядерном процессоре ПК (до 32 потоков) напрямую через сетевую папку роутера (SMB) — ПК быстро строит миниатюры, а роутер отдает готовое с нулевой нагрузкой.
Работа в системном трее: статус подключения к роутеру, быстрая синхронизация и запуск в режиме отдельного компактного окна.
Поддерживаемые платформы: Entware / Keenetic (MIPSMIPSELARMv7AArch64x86_64), Linux, Windows, macOS, Android (7.0+).

Спойлер

image.thumb.png.96c4209f691aa8737a7323f88830220a.png

image.thumb.png.1f50ccb9588116fc725d0042d4a2425e.png

image.thumb.png.7b0c7b40bea6b214a8df4e76b559fffb.png

image.thumb.png.9f429b0274efd5371d6fcceb04277624.png

image.thumb.png.d3b9c791ace327f25516b3056658ef21.png

image.thumb.png.6b336209ae6acbc99de0b3b8561e0972.png

image.thumb.png.bf1b4f015437ecca7dec5afc41e0ea9f.png

image.thumb.png.b4a6a6c4917940234a97d6f5b03abaf0.png

image.thumb.png.90d225f2d5c172fd0cc60502d6decc7b.png

🌐 Smart-Route — Краткий перечень возможностей
🔄 Бесшовный Failover Relay (TCP/UDP) — автоматический перехват сбойных соединений (TCP RST, таймаут SYN, сброс TLS по SNI от ТСПУ/DPI) и прозрачное переключение на резервные каналы (WireGuard, OpenVPN, Sing-box, Xray, модем, второй WAN) без обрыва сессии в браузере.
️ Аппаратная разгрузка ядра (IPSET / Hardware NAT) — при первом успехе IP заносится в ipset ядра Linux. Все последующие пакеты маршрутизируются ядром на полной аппаратной скорости без нагрузки на процессор. Есть авто-агрегация подсетей (CIDR) и настраиваемый TTL.
🛡 Встроенный DNS-прокси (DoT / DoH / UDP / TCP) — поддержка шифрованного DNS с постоянным пулом TLS-соединений, оптимистичный кэш (Stale-While-Revalidate, отдача < 0.1 мс), автоматический обход блокировок DNS-аплинков через VPN и нативная интеграция с KeeneticOS (dns-overrideiptables перехват или автономный порт 530).
🚫 Блокировка рекламы и трекеров (DNS Filter) — встроенный каталог черных списков (AdGuard, HaGeZi, OISD, Steven Black и др.) на базе сверхбыстрого 128-битного in-memory фильтра, поддержка белых списков и живой журнал запросов (Query Log).
🎯 Маршрутизация по спискам доменов и приоритет специфичности — поддержка каталогов v2fly, масок поддоменов и интеллектуальный алгоритм приоритетов (точные правила для доменов работают поверх широких зон исключений вроде .ru).
🕳 Интерфейс BlackHole (Sink) — создание виртуальных системных интерфейсов OpkgTun/OpkgTap с автовыбором свободных слотов для глухого сброса рекламы, телеметрии и мусорного трафика без расхода VPN-ресурсов.
💻 Автономный Web-интерфейс (:8088) — стильная панель управления (Glassmorphism), полностью работающая без интернета и CDN: мониторинг, таблица маршрутов, настройка интерфейсов, живые логи (WebSocket/SSE) и диагностика доступности (Prober).
🪶 Максимальная легковесность — написан на чистом Go без сторонних зависимостей, потребляет < 15 МБ RAM и готов к работе на всех процессорах Keenetic (MIPSARMv7ARM64x86_64).

Спойлер

image.thumb.png.04829b6905d04d3a65dfe87fc8d118d1.png

image.thumb.png.85368bb27365b6122944d47883617052.png

image.thumb.png.971e0b0be5562329b728f7c13e59536a.png

image.thumb.png.26781c6418f0ee3138ef85e58cb4d646.png

image.thumb.png.23a683a73bd476bad390d434e30a8f64.png

image.thumb.png.9780816fa23218529a25c2b3554c0d15.png

image.thumb.png.308b0b8c5ee99ca48582fc5a8a2f5a87.png

image.thumb.png.86f828c609876355f9b94d9cbb25bc4c.png

image.thumb.png.8a5a7211656ae94f585f2eb988b286f4.png

image.thumb.png.5fbfcdd249e1442f363f41b4f1740208.png

image.thumb.png.d372bf8a54a765e54de8ee9f708b217c.png

image.thumb.png.d52aeebdf1ff5aaf129250f61c68d2ba.png

image.thumb.png.6baeac969fc1c46a4896e500f03741c4.png

image.thumb.png.5c914f9e8e825bfe1205ce8585b85cac.png

🌐 Smart-Utils — Краткий перечень возможностей
📁 Двухпанельный файловый менеджер: Total Commander в браузере с клавишами F3–F10, редактором конфигов (Ctrl+S), архиватором (tar.gz/zip), сменой прав (chmod) и Drag & Drop загрузкой.
💻 Два веб-терминала: полноценная консоль Linux PTY Shell (SSH) и командная строка KeeneticOS (ndmc).
📊 Монитор системы и Top процессов: графики CPU (по ядрам), памяти, сети, дисков и таблица процессов с поиском, автообновлением и кнопкой Kill.
⚙️ Диспетчер служб Entware: запуск, остановка, перезапуск и управление автозагрузкой демонов /opt/etc/init.d/ в один клик.
Планировщик Cron: визуальный конструктор расписания системных задач роутера с проверкой запуска.
📦 Менеджер пакетов OPKG: каталог популярных репозиториев, поиск, установка и удаление пакетов с живым логом.
💾 Бэкап и восстановление: создание и откат архивов конфигураций /opt/etc/, экспорт списка пакетов для миграции на новый роутер.
️ Экономия ресурсов роутера: единый бинарник на Go, минимум RAM, логирование в память (/tmp) без износа flash-накопителя (порт 8090).

Спойлер

image.thumb.png.7de8156ac627ba4b0434a8deec79fc6e.png

image.thumb.png.9e91b137fbbd488c5476348a2fe4d4e1.png

image.thumb.png.2a359c5939ad9cd6daa30edc25dc4cef.png

image.thumb.png.2d1c8e12b1a4834bb60667ac2f031b7c.png

image.thumb.png.924a94410e6e845b3c503149aa79643a.png

image.thumb.png.cd96ead131c5ad27a28631b58083fcb6.png

image.thumb.png.614e31cd634d013c62ef5390312e7a40.png

image.thumb.png.2514d7ad94a283212a805c56ecc12e56.png

image.thumb.png.e3772608d5336903e6c26572e9f90829.png

image.thumb.png.a6dd42533690a7e804b51e8b4f17f958.png

Установка и удаление и описано в репозитории

https://github.com/snakelair/Keenetic

Все делалось для себя, поэтому вполне могут быть баги. Пишите поправлю. smart-utils делал для отладки первых двух, и больше особо не пользовал сам...

Изменено пользователем snakelair
Опубликовано (изменено)
# Установить Smart-Utils (Веб-панель, Терминалы, Файловый менеджер, OPKG):
curl -sSL https://raw.githubusercontent.com/snakelair/Keenetic/main/install.sh | sh -s smart-utils

# Установить Smart-Route (Маршрутизация и обход блокировок):
curl -sSL https://raw.githubusercontent.com/snakelair/Keenetic/main/install.sh | sh -s smart-route

# Установить Smart-Photo (Персональная фотогалерея на USB):
curl -sSL https://raw.githubusercontent.com/snakelair/Keenetic/main/install.sh | sh -s smart-photo
Изменено пользователем snakelair
Отступы
Опубликовано (изменено)
# Интерактивное меню удаления:
curl -sSL https://raw.githubusercontent.com/snakelair/Keenetic/main/uninstall.sh | sh

# Быстрое удаление конкретного пакета (с очисткой службы, правил и конфигов):
curl -sSL https://raw.githubusercontent.com/snakelair/Keenetic/main/uninstall.sh | sh -s smart-utils
curl -sSL https://raw.githubusercontent.com/snakelair/Keenetic/main/uninstall.sh | sh -s smart-route
curl -sSL https://raw.githubusercontent.com/snakelair/Keenetic/main/uninstall.sh | sh -s smart-photo
Изменено пользователем snakelair
Отступы
Опубликовано (изменено)

📱 Приложения для Android и Android TV

📸 SmartPhotoSync    Фоновая автосинхронизация фото и видео со смартфона на USB-накопитель роутера    

📸 SmartPhotoSync Фоновая автосинхронизация фото и видео со смартфона на USB-накопитель роутера SmartPhotoAndroid.apk QR SmartPhotoSync
📺 SmartPhotoTV Фотогалерея и медиаплеер для смарт-телевизоров и приставок Android TV с пультом ДУ SmartPhotoTV.apk QR SmartPhotoTV

 

Изменено пользователем snakelair
Опубликовано

@snakelair добрый день!

У меня к вам две просьбы:

1. переименуйте, пожалуйста, репозиторий. Cейчас он скромно называется Keenetic, что может ввести в заблуждение тех, кто его найдет, например, через поиск в гугле или яндексе. Еще, на мой взгляд, некорректно писать:

Цитата

Официальный публичный репозиторий пакетов OPKG для роутеров Keenetic с установленной средой Entware.

Репозиторий пакетов Entware находится здесь: https://bin.entware.net/

2. уберите, пожалуйста, все скриншоты в ваших сообщениях под спойлер. Либо, оставьте по одному под каждый пакет, а под спойлер положите все остальные. Уверен, что если так сделать, то большее количество пользователей форума действительно сможет понять, как использовать ваши пакеты.

Опубликовано

Было бы полезно в "списках" smart-route иметь возможность выбирать конкретный тунель (например для сайтов с geoip и т.п.). 

Опубликовано
7 часов назад, de_MAX сказал:

Было бы полезно в "списках" smart-route иметь возможность выбирать конкретный тунель (например для сайтов с geoip и т.п.). 

можно попробовать, у меня все туннели в одну страну поэтому не было нужды. В след версии попробую сделать.

Опубликовано (изменено)

@snakelair, ещё какая-то непонятка происходит со smart-photo: при синхронизации с телефона>сервер, выбрано две папки (camera, telegram) - на сервере создаются дубликаты файлов с "conflict" в имени. Могу предположить, что некоторые файлы отправлялись через телеграм и они дублировались, но есть файлы, которые есть только в одной папке (дублей быть не должно), а всё равно создаются дубли. При том, в приложении пишется, что выгружено столько-то, ошибок 0.

P.S. Настройку политики разрешения конфликтов нашёл, попробую поиграться с ней.

Изменено пользователем de_MAX
Опубликовано

Я пока у себя не встречал дубли но и несколько папок не пробовал, только DCIM бэкаплю. Понаблюдаю.
+ Я добавил в smart-route в списки выбор интерфейсов, но толком проверить не могу так как сейчас один впн у меня рабочий.

Опубликовано
1 час назад, snakelair сказал:

Я добавил в smart-route в списки выбор интерфейсов

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

Опубликовано (изменено)

В общем, покопался я на 2-х впн и убрал режим гибридный так как он не рабочий, оставил чистый ndm или ipset. Добавил чистку и статус маршрутов . Плюс сделал возможность настраивать родной pingcheck кинетик на впн тунели. Ну и куча улучшений по  интерфейсу.

Изменено пользователем snakelair
Опубликовано

# Удалить Smart-Utils (веб-панель, терминалы, файловый менеджер):
curl -sSL https://raw.githubusercontent.com/snakelair/Keenetic/main/uninstall.sh | sh -s smart-utils
# Удалить Smart-Route (очистка службы, сброс iptables и таблиц ipset):
curl -sSL https://raw.githubusercontent.com/snakelair/Keenetic/main/uninstall.sh | sh -s smart-route
# Удалить Smart-Photo (очистка службы, конфигов и кэша):
curl -sSL https://raw.githubusercontent.com/snakelair/Keenetic/main/uninstall.sh | sh -s smart-photo

Опубликовано

SmartRoute
Проект получил масштабный цикл обновлений с версии v1.0.34 до v1.0.71:

🌐 Сетевые политики KeeneticOS и маршрутизация (v1.0.68 – v1.0.69)
Policy Egress Binding (SO_MARK): реализована полная интеграция с политиками маршрутизации KeeneticOS — привязка клиентского трафика и сохранение выхода политики клиента.
Приоритеты подключений (v1.0.65): добавлена возможность настройки системного приоритета (ip global) для интерфейсов.
Мульти-интерфейсные маршруты и Failover (v1.0.40 – v1.0.41): накопление маршрутов для победивших интерфейсов при автоматическом переключении каналов.
Производительность NDM и стабильность (v1.0.63, v1.0.66, v1.0.67)
Сериализация ndmc: все вызовы CLI Keenetic защищены мьютексом, что полностью устранило таймауты сокета и дублирующие запросы.
Оптимизация ipset: убрано избыточное логирование DelIP, ускорена очистка устаревших/осиротевших статических маршрутов KeeneticOS.
Синхронизация подсетей: исправлена синхронизация родительских подсетей и добавлен интеллектуальный поиск по CIDR.
🔍 Пресеты списков и каталоги (v1.0.60, v1.0.70 – v1.0.71)
Каталог v2fly Community: реализован парсинг и вкладки популярных готовых пресетов доменных списков.
Синхронизация списков: добавлено модальное окно прогресса резолвинга/синхронизации, устранены состояния гонки (race conditions).
Исправлены баги повторного открытия модального окна и переключения вкладок.
🩺 Управление интерфейсами и Ping Check (v1.0.59 – v1.0.64)
Native Ping Check: интеграция с проверкой доступности интерфейсов в KeeneticOS, асинхронный опрос и исправление ложного статуса Fail для WireGuard/VPN.
Понятные имена интерфейсов (Friendly Names): автоподстановка красивых названий интерфейсов в бейджах, фильтрах, списках и таблице недавних маршрутов.
🎨 UI / UX и стандартизация
Скрыты системные технические интерфейсы (например, ezcfg0), обновлены чипы выбора интерфейсов и таблица маршрутов NDM.
 

Опубликовано (изменено)

Smart-photo при каждой синхронизации повторно выгружает все видео с телефона (из указанной папки) на сервер. В настройках выбрал "Только бэкап", поэтому дубликатов нет, просто каждый раз перезаписывает файлы, на сколько я понял. В чём может быть причина?

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

Изменено пользователем de_MAX
Опубликовано

Список изменений Smart-Route (v1.0.71 → v1.0.81):
Встроенный легковесный DNS-сервер и кэш (RFC 1035) на чистой стандартной библиотеке Go (< 15 МБ RAM, Zero Dependencies).
Поддержка современных защищённых протоколов DNS-over-TLS (tls://), DNS-over-HTTPS (https://), а также стандартных UDP и TCP.
Условная маршрутизация DNS по доменным зонам (например, [/ru/], [/рф/]) на выделенные локальные резолверы.
Оптимистичный кэш (Stale-While-Revalidate) с мгновенным ответом (< 0.1 мс) из оперативной памяти и фоновым обновлением записей.
Блокировка рекламы и трекеров с поддержкой популярных каталогов (AdGuard Filters Registry, Steven Black, HaGeZi, OISD и др.).
Модальное окно каталога фильтров с выбором категорий и поддержкой ручных правил (форматы AdBlock ||domain^ и hosts 0.0.0.0 domain).
Высокоскоростная фильтрация на базе суффиксного дерева O(1) O(1) в памяти (< 1 мкс на проверку) с поддержкой белых списков.
Выбор режима блокировки: возврат 0.0.0.0 (Null IP) или флага NXDOMAIN.
Три режима интеграции с KeeneticOS: standalone (порт 530), dns_override (порт 53 с авто-вызовом opkg dns-override через NDM CLI) и iptables_hijack (прозрачный перехват Netfilter REDIRECT 53 → 530).
Демон самовосстановления правил фаервола (Self-healing Guardian) для защиты правил перехвата при перезапуске сетевых интерфейсов.
Встроенный Bootstrap DNS для пред-резолва хостов DoT/DoH без обращения к системному DNS роутера (устранена задержка 15–50 мс).
Таблица статических IP (0 мс) для популярных провайдеров DoT/DoH (Cloudflare, Google, Quad9, AdGuard, Yandex).
Пул постоянных TLS-соединений (dotPool), исключающий повторные TLS handshake при каждом запросе.
Защита от циклической взаимоблокировки (DNS Deadlock) и изолированный HTTP-транспорт для бесперебойной загрузки списков в режиме dns_override.
Автоматический фоллбэк на резервные DNS-аплинки при временной недоступности основных серверов.
Журнал последних DNS-запросов (Live Query Log) на 50 записей в реальном времени с типами записей, статусом (Blocked / Cached / Upstream) и латентностью.
Статистика по топ-15 клиентам локальной сети с подсчётом объёма запросов и процента заблокированной рекламы.
24-часовая аналитика DNS с графиками объёма запросов, кэш-хитов и средней задержки в Web UI.
Удалён устаревший Rate Limit, а оптимистичный кэш теперь активирован по умолчанию.
Синхронизированы ссылки на сообщество и поддержку проекта на официальный канал t.me/SmartKeenetic.

Опубликовано (изменено)

после попытки сменить порт SSH в настройках появляется вечная крутилка на кнопке "сохранить", настройки не сохраняются. при этом служба smartutil показывает весьма странную утилизацию проца, файловый менеджер тоже висит, см. скрины.

Снимок экрана 2026-09-11 100555.png

Снимок экрана 2026-09-11 100522.png

Снимок экрана 2026-09-11 100454.png

UPD если попытаться обновить страницу браузера, то она не загружается. веб-морда и другие сервисы на роутере при этом работают.

Изменено пользователем Storm43
Опубликовано (изменено)

1) утилизацию проца он для многоядерных показывает некорректно я в курсе, будет исправленно
2) он изначально неправильно определил ваш порт ssh? я проверю эту ситуацию.

Изменено пользователем snakelair
Опубликовано

Серверная часть и веб-интерфейс для роутера (Smart-Photo v1.0.56 – v1.0.72)
🚀 Производительность и синхронизация (v1.0.72)
Сквозная Gzip-компрессия на порту синхронизации (18089):
Внедрен gzipMiddleware для мобильного API. Объем ответов для альбомов снижен с 2.1 МБ до ~120 КБ (в 18 раз), а дерева папок — с 230 КБ до ~20 КБ.
Полностью устранены сбои и обрывы соединений (SSLHandshakeException: connection closed) при синхронизации через облачные туннели KeenDNS (netcraze.link).
Кэширование дерева папок в RAM (cachedFolderTree):
Иерархическое дерево каталогов теперь строится один раз во время фоновой индексации и хранится в оперативной памяти.
Запрос дерева папок от мобильного приложения отдается за 0.001 мс с нулевой нагрузкой на CPU роутера (без повторного обхода 85 000 фото).
Единый сжатый каталог коллекций (/api/v1/sync/catalog):
Добавлен легковесный эндпоинт, отдающий все альбомы, папки, путешествия, места и категории в одном Gzip-пакете (<40 КБ) за ~100 мс.
✈️ Автодетекция путешествий и отпусков (Trips & Travels) (v1.0.58 – v1.0.66)
Консолидация многодневных поездок:
Устранено дробление отпусков на 1-дневные мини-папки. Фотографии из соседних папок с разрывом до 96 часов автоматически объединяются в единое путешествие (например, «✈️ Путешествие в Анталью 2013 Сентябрь» на 493 фото вместо четырех отдельных папок).
Поддержаны короткие мини-путешествия и туры выходного дня (Ярославль, Тула, окрестные выезды).
Офлайн-геокодинг горных курортов и туристических мест:
Добавлено более 60 курортов и городов: Домбай, Теберда, Архыз, Терскол, Эльбрус, Красная Поляна, курорты Крыма, Алтая, Байкала и Золотого кольца. Снимки из ущелий и склонов теперь точно атрибутируются к курорту, а не к далеким равнинным центрам.
Интеграция в веб-интерфейс:
Glassmorphism-баннеры путешествий в таймлайне и карточки в разделе «Альбомы».
Интерактивные чипы поездок в поиске с мягким переключением (toggle off), изолированной фильтрацией и автоскроллом к фото.
Прямые ссылки на Яндекс КартыGoogle Maps и OpenStreetMap в панели свойств EXIF.
🎬 Оптимизация работы с видео и FFmpeg-mini (v1.0.61 – v1.0.63)
Мгновенное извлечение встроенных обложек (Pure Go):
Чтение файлов-спутников экшн-камер (.THM от GoPro/DJI) и встроенных постеров из контейнеров MP4/MOV (covr) напрямую на чистом Go за 0.1 мс при 0% CPU.
Поддержка и приоритет ffmpeg-mini:
Поддержка статического 1-поточного ffmpeg-mini (1.1 МБ на диске) с декодированием исключительно ключевых I-кадров (-skip_frame nokey).
Потребление оперативной памяти снижено в 10 раз, исключен нагрев роутера и просадки Wi-Fi при генерации превью видео.
В веб-интерфейс добавлен удобный селектор движка обработки видео с отображением статуса.
📁 Автоматическая раскладка по шаблону даты (Auto-Organizer) (v1.0.69)
Правила раскладки медиафайлов:
Возможность автоматического распределения файлов из папки загрузки (например, Mobile) по структуре папок на базе даты (yyyy год/yyyy-MM-ddyyyy/MMMM с русскими названиями месяцев и др.).
Безопасный режим предпросмотра (Dry-Run), атомарный перенос между файловыми системами (AtomicMoveFile), защита от затирания файлов.
Универсальная дедупликация при синхронизации:
Если файл был перемещен Auto-Organizer в архив или другую папку, мобильный клиент при проверке не будет закачивать его повторно: сервер находит оригинал в RAM по размеру и заголовкам за O(1) и сообщает UpToDate.

Мобильное приложение для Android (SmartPhoto App v1.0.9 – v1.0.12)
️ Высокоскоростная сжатая синхронизация каталога (v1.0.12)
Поддержка Gzip-компрессии:
Мобильный клиент автоматически запрашивает сжатие трафика, благодаря чему все коллекции передаются в разы быстрее даже при слабом мобильном интернете.
Загрузка каталога в один запрос (/api/v1/sync/catalog):
Приложение скачивает структуру альбомов, дерево папок сервера, путешествия, места и категории одним пакетом вместо десятков последовательных сетевых запросов.
Офлайн-фоллбэк:
Если роутер временно недоступен вне дома, приложение мгновенно отображает сохраненные локально коллекции и структуру папок из локальной SQLite БД.
🖼 Навигация и просмотр медиа (v1.0.10 – v1.0.11)
Просмотр фото внутри альбомов:
При клике на фото внутри любого альбома, папки или поездки открывается полноэкранный просмотрщик именно этого набора файлов со счетчиком («15 из 142») и кнопкой «Назад», возвращающей пользователя прямо в текущий альбом.
Центрированный зум щепоткой (Centroid Pinch-to-Zoom):
Масштабирование фотографии жестом двух пальцев теперь центрируется строго в точку касания, как в Google Фото.
Обновленная навигация:
Оптимизирован порядок вкладок в нижней панели (Bottom Navigation Bar).
Интегрирована удобная панель поиска в шапке (Searchable Header Bar) для быстрой фильтрации по годам, местам и категориям.
🗺 Карты и пресеты автоорганизации (v1.0.9)
Навигация в Яндекс Карты и Google Maps:
В шторке свойств фото (EXIF) добавлены нативные кнопки открытия геолокации в установленном приложении Яндекс Карты (yandexmaps://) или Google Карты, а также кнопка копирования точных GPS-координат в буфер обмена.
Пресеты шаблонов автоорганизации в Настройках:
Добавлены готовые чипы быстрой вставки шаблонов путей («Стандартный», «По дням», «По месяцам», «Компактный») с подсказками переменных ({device}{yyyy}{MM}{dd}{filename}).

Опубликовано

SmartUtils
Глубокая оптимизация оперативной памяти (Low-RAM Tuning):

Тюнинг Go Runtime: установлены GOGC=30 и мягкий лимит памяти GOMEMLIMIT=24MiB в приложении и init-скрипте службы S99smart-utils.
Возврат памяти ОС: фоновый процесс периодически вызывает debug.FreeOSMemory(), возвращая неиспользуемые страницы кучи ядру Linux роутера.
Потоковый разбор базы OPKG: исключена загрузка многомегабайтных файлов в память и strings.Split; потоковое сканирование поверх gzip.Reader снизило пиковые аллокации с 25–40 МБ до ~64 КБ.
Кэширование статуса пакетов: метод GetCachedPackage() для мгновенного опроса статуса без повторного сканирования базы.
Защита от переполнения RAM при загрузке файлов: буфер памяти ParseMultipartForm урезан до 4 МБ (вместо 128–256 МБ) со стримингом на диск и принудительной очисткой временных файлов.
Zero-allocation WebSocket: упаковка сетевых заголовков на стеке без создания временных срезов в куче.
Оптимизация системного анализатора: линейный разбор /proc/meminfo без создания map[string]int64, кэширование объёма RAM роутера и устранение дублирующего обхода дерева /proc.
Пул буферов копирования: использование sync.Pool (32 КБ) для файловых операций и возврат памяти ядру после архивации.
Логирование: сокращение кольцевого буфера логов до 250 записей и авторотация лог-файла в /tmp при 256 КБ (защита tmpfs).
Отказоустойчивость установщика и интеграция (v1.0.30):
Улучшен скрипт install.sh и развертывание: интерактивный выбор портов, автоопределение SSH-ключей, восстановление поврежденных сценариев OPKG.
Доработка отправки багрепортов (bugreport.js) с автодиагностикой и маскированием чувствительных данных.
Сборка и публикация репозитория (v1.0.31):
Собраны пакеты OPKG под 5 архитектур (mipsel-3.4armv7-3.2aarch64-3.10x86_64mips-3.4).
Обновлен общий репозиторий snakelair/Keenetic с полным сохранением пакетов smart-routesmart-photosmart-vpn и документации.
Кэширование процессов и умное автообновление (Top / Processes):
Серверный микро-кэш (1.5 сек): запросы к /api/system/processes троттлятся в памяти для защиты слабого CPU роутера и обеспечения стабильной базы для точного расчета CPU%.
Кэширование cmdline: неизменяемые аргументы процессов считываются с диска только при первом появлении PID, исключая ~100 системных вызовов чтения на каждый такт.
Инвалидация при Kill: мгновенный сброс кэша при отправке сигнала процессу для немедленного обновления таблицы.
Автообновление в UI:
Селектор интервала: Авто: [ Выкл | 2 сек | 3 сек (по умолч.) | 5 сек ] с сохранением выбора в localStorage.
Зеленый пульсирующий светодиодный маячок активности.
Zero Background Load: таймер автообновления работает только при активной вкладке «Монитор / Система» и видимом окне браузера; при переходе на другие вкладки или сворачивании браузера опрос полностью засыпает (0% паразитной нагрузки).
Плавная перерисовка с сохранением строки поиска, сортировки колонок и позиции скролла.

Опубликовано

️ Список изменений Smart-Route (с v1.0.81 по v1.0.88):
Колоссальная оптимизация оперативной памяти (с 153 МБ до 27 МБ): потребление RAM снижено более чем в 5 раз даже при загрузке тяжелых списков блокировки рекламы (~185 000 правил) — служба работает плавно и практически не нагружает память роутера.
Автоматический обход блокировок DNS через VPN: если провайдер или ТСПУ глушит зашифрованные DoT-серверы (порт 853) на основном подключении, роутер бесшовно направляет DNS-запросы через резервный VPN-канал с запоминанием рабочего интерфейса.
Комплексная диагностика доменов в Web UI: прямо во вкладке «Диагностика» можно протестировать любой домен — увидеть ответы всех настроенных DNS-серверов с точным пингом, используемый канал (WAN/VPN), статус в кэше и правила блокировки (с переходом в 1 клик прямо из логов).
Белый список доменов (Whitelist): добавлена возможность указывать домены-исключения, которые гарантированно никогда не будут блокироваться фильтрами рекламы.
Честный обратный отсчёт времени жизни (TTL): DNS-кэш теперь динамически уменьшает TTL каждую секунду и отдает подключенным устройствам точное актуальное время жизни записей.
Детектирование скрытых блокировок ТСПУ (DPI): сканер маршрутов научился распознавать «тихий» сброс и глушение пакетов со стороны ТСПУ на этапе TLS Handshake (DPI_SNI_DROP / DPI_SNI_RST).
Улучшение веб-интерфейса: убрана лишняя горизонтальная полоса прокрутки в таблицах DNS, скрыты недействительные сетевые интерфейсы, а напротив серверов наглядно отображается текущий рабочий маршрут (🟢 WAN или 🟣 VPN).

Опубликовано (изменено)

Актуальная нагрузка на KN-1012, 85000 фото, 2 тонеля, 1013 уникальных маршрутов, объединены в 513 NDM, DNS кэш 5 аплинков, 185 788 правил фильтрации DNS, ... ndm 9прц из-за открытой страницы мониторинга top

Спойлер

image.thumb.png.8741229086e066619fdec3820a2ac81c.png

 

Изменено пользователем snakelair
  • snakelair изменил название на Приложения SmartUtils, SmartRoute (Маршрутизация NDM), SmartPhoto (Персональный Google Photos)
Опубликовано

Всем привет!

Небольшой статус по проектам:
SmartRoute: сейчас сам на постоянной основе сижу исключительно на этой схеме маршрутизации. Все мои сценарии закрыты полностью, работает как часы, так что под свои нужды острой необходимости что-то допиливать больше не вижу.
При этом проект не закрыт — если у вас есть интересные идеи, не хватает каких-то фич или есть конкретные хотелки, пишите, с удовольствием выслушаю и возьму на заметку.
SmartPhoto: Есть планы касательно прав доступа внутри галереи и Desktop клиента - буду реализовывать в сторону закрытого гуглом моего любимого офлайн гугл фото, + баги находятся в процессе использования мобильного клиента.
SmartUtils: В них нуждаюсь исключительно во время разработки и вношу то чего не хватает.

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.