gSpotx2f / ruantiblock_openwrt

Обход блокировок в OpenWrt с помощью Tor или VPN
GNU General Public License v3.0
218 stars 20 forks source link

[фича реквест] Добавить в GUI кнопку для установки доп. модуля для загрузки списков #74

Closed remittor closed 2 months ago

remittor commented 3 months ago

Сейчас у меня модули RuAntiBlock встраиваются в прошивку при сборке. Но вот модули питона довольно сильно раздувают образ. Можно ли сделать так, что бы у пользователя была возможность доустановить необходимые модули прям из GUI?

Т.е. что бы при нажатии на кнопку с github скачивался нужный ipk файл и автоматически устанавливался.


Если такая реализация кажется не правильной, то есть и другой способ облегчить жизнь пользователю. Можно на github для модулей RuAntiBlock организовать репозиторий по аналогии вот с этим примером: https://fantastic-packages.github.io/packages/ И пользователю достаточно будет добавить в папку /etc/opkg/keys файл ключа XXXXXXXXXXXXX.pub А затем в файл /etc/opkg/customfeeds.conf добавить такие строчки:

src/gz  ruantiblock_luci       https://ruantiblock.github.io/packages/releases/23.05/packages/<platform>/luci
src/gz  ruantiblock_packages  https://ruantiblock.github.io/packages/releases/23.05/packages/<platform>/packages

Для этих двух действий даже можно отдельно маленький ipk собрать (у меня уже есть пример рабочий).

Да и в этот репозиторий можно положить и все остальные ваши модули для OpenWRT!

gSpotx2f commented 3 months ago

Модули-парсеры взаимозаменяемые, они делают одно и то же (просто реализация на разных языках). Одного lua-модуля вполне достаточно, он компактнее по зависимостям и работает быстрее. Раньше, когда генерировал блэклист на роутере, только его использовал. Python хорош тем, что в стандартной библиотеке уже есть всё необходимое (но и весит >10мб, если не ошибаюсь), а для lua нужно лишь несколько небольших библиотек в зависимостях (сам интерпретатор lua обычно уже установлен в OpenWrt вместе с LuCI).

Можно на github для модулей RuAntiBlock организовать репозиторий по аналогии вот с этим примером: https://fantastic-packages.github.io/packages/

Что мешает вам сделать такой же собственный репозиторий с любыми пакетами на свой вкус? Тем более, вы собираете свои сборки OpenWrt. Сможете сразу в самих сборках добавить его в customfeeds.conf, так юзерам будет ещё проще. Я не собираю образы OpenWrt (вернее, собираю только для себя), поэтому поднимать свой репозиторий ради нескольких пакетов как-то нет особого смысла.

zalessky commented 3 months ago

Можно на github для модулей RuAntiBlock организовать репозиторий

Поддерживаю. Сейчас при сборке прошивки нужно свежую версию руками запихивать. Было бы проще, если бы она автоматом выкачивалась. И обновлять ruantiblock гораздо проще - можно из luci кнопу жамкнуть или opkg upgrade в консоли сделать

gSpotx2f commented 3 months ago

Сейчас при сборке прошивки нужно свежую версию руками запихивать. Было бы проще, если бы она автоматом выкачивалась.

Добавьте в фиды (feeds.conf.default) URL репозитория git с исходниками (src-git ruantiblock https://github.com/gSpotx2f/ruantiblock_openwrt.git) первой строкой и будет подтягиваться с помощью ./scripts/feeds update ruantiblock.

И обновлять ruantiblock гораздо проще - можно из luci кнопу жамкнуть или opkg upgrade в консоли сделать

Плохая идея обновлять пакеты в работающей системе. На офф сайте об этом предупреждают. Конкретно для обновления ruantiblock нужно сначала полностью удалить уже установленный (забэкапив свои кастомные списки и конфиги из /etc/ruantiblock), а потом поставить заново. В новых версиях могут быть изменения не совместимые со старым конфигом и пр. К тому же, установка ruantiblock требует некоторых дополнительных действий, помимо непосредственно установки пакетов, поэтому устанавливать лучше либо скриптом, либо по инструкции из вики.