Skip to content

kzolotarev95/luci-app-sub-sync666

Repository files navigation

Podcop Sub v666
Подписки • Мониторинг • xHTTP • HY2 • URL Test • LuCI UI •

OpenWrt LuCI Podkop Build


666

✅ Возможности

  • 🔗 Добавление и обработка подписок
  • 🧪 URL Test / проверка серверов
  • 🚀 Поддержка xHTTP для Podkop
  • ⚡ Поддержка HY2 / Hysteria2
  • 🧩 Интеграция прямо в Services → Podkop
  • 🛡 ACL fallback, чтобы LuCI-доступ не ломался
  • 🔁 Retry installer/uninstaller для нестабильного GitHub-соединения
  • 🧹 Полное удаление без мусора
  • 🧼 Удаление темы, ACL, cron, helpers, /etc/sub-sync, LuCI cache
  • 📊 Системные виджеты и статус-блоки
  • 🧠 Guard для восстановления важных патчей
  • 🚫 Без сохранения приватных подписок в GitHub

🚀 Быстрая установка

Рекомендуемый способ установки — через retry-скрипт.
Он сначала скачивает файл, проверяет маркеры и синтаксис, и только потом запускает установку.

wget -O /tmp/install-podcop-sub-v666.sh "https://raw.githubusercontent.com/kzolotarev95/luci-app-sub-sync666/main/install-retry.sh?v=$(date +%s)" && sh /tmp/install-podcop-sub-v666.sh

После установки:

  1. Выйдите из LuCI.
  2. Зайдите обратно.
  3. Сделайте Ctrl + F5.
  4. Откройте:
Services → Podkop

🧹 Полное удаление

Удаление также лучше запускать через retry-скрипт.
Он скачивает проверенный uninstall и полностью чистит файлы модуля.

wget -O /tmp/uninstall-podcop-sub-v666.sh "https://raw.githubusercontent.com/kzolotarev95/luci-app-sub-sync666/main/uninstall-retry.sh?v=$(date +%s)" && sh /tmp/uninstall-podcop-sub-v666.sh

После удаления очищаются:

  • LuCI JS-файлы модуля
  • ACL
  • menu files
  • helpers
  • guard
  • cron
  • /etc/sub-sync
  • theme proton2025
  • временные файлы
  • public backups темы
  • LuCI cache

📦 Что устанавливается

Основные файлы:

/www/luci-static/resources/view/sub_sync/sub_sync.js
/www/luci-static/resources/view/sub_sync/sub_sync_v221.js
/usr/share/rpcd/acl.d/luci-app-sub-sync.json
/usr/bin/sub-sync
/usr/bin/sub-sync.real
/usr/bin/sub-sync-autoadd
/usr/bin/sub-sync-subs-info
/usr/bin/sub-sync-urltest
/usr/bin/podcop-sub-v666-xhttp-patch
/usr/bin/podcop-sub-v666-guard
/etc/init.d/podcop-sub-v666-guard
/etc/sub-sync/

Интеграция в LuCI:

/usr/share/luci/menu.d/luci-app-podkop.json

Тема:

/www/luci-static/proton2025

🔁 Почему используется retry installer

На некоторых роутерах GitHub Raw иногда может отвечать ошибками:

Failed to send request: Operation not permitted
SSL error: SSL - The connection indicated an EOF
Connection timed out
HTTP error 404

Поэтому обычный способ:

wget -O- URL | sh

может оборваться на середине.

Retry installer делает безопаснее:

  1. Скачивает файл в /tmp.
  2. Проверяет маркер версии.
  3. Проверяет синтаксис через sh -n.
  4. Только потом запускает файл.
  5. При ошибке повторяет попытку.

🧪 Проверка после установки

Выполните:

echo "--- module files ---"
ls -l /www/luci-static/resources/view/sub_sync/sub_sync.js
ls -l /www/luci-static/resources/view/sub_sync/sub_sync_v221.js

echo "--- ACL ---"
ls -l /usr/share/rpcd/acl.d/luci-app-sub-sync.json

echo "--- menu refs ---"
grep -RsnE 'sub_sync|Подписки|Мониторинг' /usr/share/luci/menu.d/*.json 2>/dev/null || true

echo "--- theme ---"
uci get luci.main.mediaurlbase 2>/dev/null || true
ls -ld /www/luci-static/proton2025 2>/dev/null || true

echo "--- guard ---"
grep -nE 'PODCOP_SUB_V666_PERSISTENT_GUARD|removed duplicate standalone|restoring Подписки' /usr/bin/podcop-sub-v666-guard 2>/dev/null || true

echo "--- hidden update button ---"
grep -Rsn 'SUBSYNC_HIDE_UPDATE_CHECK_BUTTON_V269B' /www/luci-static/resources/view/sub_sync/sub_sync*.js 2>/dev/null | head

Нормальный результат:

sub_sync.js есть
sub_sync_v221.js есть
ACL есть
menu refs показывает luci-app-podkop.json
/luci-static/proton2025
PODCOP_SUB_V666_PERSISTENT_GUARD есть
SUBSYNC_HIDE_UPDATE_CHECK_BUTTON_V269B есть

📋 Логи для диагностики
logread | grep -Ei 'sub-sync|subsync|theme|protobyzks95|proton2025|podcop-sub-v666-guard|podkop|rpcd|uhttpd|luci|SyntaxError|TypeError|ReferenceError|Access denied|Доступ запрещ|fatal|configuration invalid|Unknown transport|403|Operation not permitted|Connection timed out|download failed|Segmentation fault|duplicate standalone|ACL missing|ACL fallback' | tail -n 300

Критичные ошибки:

SyntaxError
TypeError
ReferenceError
Access denied
Доступ запрещ
fatal
configuration invalid
Unknown transport
ACL missing

Некритичные сетевые ошибки, если retry потом сработал:

Failed to send request: Operation not permitted
Connection timed out
SSL EOF

🧼 Что делает uninstall

Uninstall v275 выполняет полную чистку:

Удаляет модульные LuCI JS-файлы
Удаляет ACL
Удаляет menu-файлы модуля
Удаляет helper scripts
Удаляет guard
Удаляет cron guard
Удаляет /etc/sub-sync
Удаляет тему proton2025
Возвращает LuCI на bootstrap
Удаляет временные файлы
Удаляет public backups темы
Очищает LuCI cache

Проверка после удаления:

ls -ld /www/luci-static/resources/view/sub_sync 2>/dev/null || echo "OK: no sub_sync dir"
ls -l /usr/share/rpcd/acl.d/luci-app-sub-sync.json 2>/dev/null || echo "OK: no ACL"
ls -l /usr/share/luci/menu.d/luci-app-sub-sync.json 2>/dev/null || echo "OK: no duplicate menu"
ls -ld /etc/sub-sync 2>/dev/null || echo "OK: no /etc/sub-sync"
ls -ld /www/luci-static/proton2025 2>/dev/null || echo "OK: no proton2025 theme"
grep -n 'podcop-sub-v666-guard' /etc/crontabs/root 2>/dev/null || echo "OK: no guard cron"

🧩 xHTTP / Podkop patch

Модуль добавляет поддержку xHTTP в Podkop через helper:

/usr/bin/podcop-sub-v666-xhttp-patch

Проверка:

grep -RsnE 'xhttp|sing_box_cm_set_xhttp_transport' \
  /usr/lib/podkop/sing_box_config_facade.sh \
  /usr/lib/podkop/sing_box_config_manager.sh 2>/dev/null || true

При удалении модуль пытается восстановить файлы Podkop обратно.


🎨 Тема ProtoByZKS95 / proton2025

При установке модуль ставит тему:

ProtoByZKS95 / proton2025

Активная тема проверяется так:

uci get luci.main.mediaurlbase

Ожидаемый результат:

/luci-static/proton2025

После uninstall тема удаляется, а LuCI возвращается на:

/luci-static/bootstrap

🔐 Приватность

В публичном GitHub-репозитории нет приватных подписок, приватных серверов, ключей или пользовательских конфигов.

Публично хранятся только:

  • код модуля
  • LuCI UI
  • helper scripts
  • public donor state
  • installer/uninstaller
  • retry scripts

Личные подписки и серверы создаются локально на роутере пользователя.


🛠 Ручные команды для опытных пользователей

Установка напрямую, без retry:

wget -O- "https://raw.githubusercontent.com/kzolotarev95/luci-app-sub-sync666/main/install.sh?v=$(date +%s)" | sh

Удаление напрямую, без retry:

wget -O /tmp/subsync-uninstall.sh "https://raw.githubusercontent.com/kzolotarev95/luci-app-sub-sync666/main/uninstall.sh?v=$(date +%s)"
sh /tmp/subsync-uninstall.sh

Но для обычных пользователей рекомендуется использовать retry-команды.


🧭 После установки

Открыть в LuCI:

Services → Podkop

Если страница не появилась:

rm -rf /tmp/luci-modulecache /tmp/luci-modulecache/* /tmp/luci-indexcache /tmp/luci-indexcache* /tmp/luci-sessions /tmp/luci-sessions/* 2>/dev/null || true
/etc/init.d/rpcd restart
/etc/init.d/uhttpd restart

Затем:

Logout/Login LuCI + Ctrl + F5

⚠️ Важно

  • Не ставьте несколько разных версий подряд без uninstall.
  • После установки обязательно перелогиньтесь в LuCI.
  • При временных ошибках GitHub используйте retry installer.
  • Public install/uninstall не делает большие backup-архивы, чтобы не забивать flash-память роутера.

❤️ Поддержка проекта

Если модуль оказался полезен — Подержать Донатом Сбербанк : 4817760258323256

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors