11#! /bin/bash
22
3- SCRIPT_VERSION=" 2.3.1c "
3+ SCRIPT_VERSION=" 2.3.2 "
44UPDATE_AVAILABLE=false
55DIR_REMNAWAVE=" /usr/local/remnawave_reverse/"
66LANG_FILE=" ${DIR_REMNAWAVE} selected_language"
@@ -84,7 +84,7 @@ set_language() {
8484 [MENU_2]=" Reinstall panel/node"
8585 [MENU_3]=" Manage Panel/Node"
8686 [MENU_4]=" Install random template for selfsteal node"
87- [MENU_5]=" Custom subscriptions by legiz"
87+ [MENU_5]=" Custom extensions by legiz"
8888 [MENU_6]=" Extensions by distillium"
8989 [MENU_7]=" Manage IPv6"
9090 [MENU_8]=" Manage certificates domain"
@@ -375,12 +375,12 @@ set_language() {
375375 [UPLOADING_SUB_PAGE]=" Uploading custom sub page template..."
376376 [ERROR_FETCH_SUB_PAGE]=" Failed to fetch custom sub page template."
377377 [SUB_PAGE_UPDATED_SUCCESS]=" Custom sub page template successfully updated."
378- [SELECT_SUB_PAGE_CUSTOM]=" Select action (0-7 ):"
378+ [SELECT_SUB_PAGE_CUSTOM]=" Select action (0-2 ):"
379379 [SELECT_SUB_PAGE_CUSTOM1]=" Custom Sub Page Templates"
380380 [SELECT_SUB_PAGE_CUSTOM2]=" Custom Sub Page Templates\nOnly run on panel server"
381381 [SELECT_SUB_PAGE_CUSTOM3]=" Custom App Lists for original sub page:"
382382 [SELECT_SUB_PAGE_CUSTOM4]=" Custom Sub Page:"
383- [SUB_PAGE_SELECT_CHOICE]=" Invalid choice. Please select 0-7 ."
383+ [SUB_PAGE_SELECT_CHOICE]=" Invalid choice. Please select 0-2 ."
384384 [RESTORE_SUB_PAGE]=" Restore default sub page"
385385 [CONTAINER_NOT_FOUND]=" Container %s not found"
386386 [SUB_WITH_APPCONFIG_ASK]=" Do you want to include app-config.json?"
@@ -399,6 +399,7 @@ set_language() {
399399 [BRANDING_LOGO_URL_PROMPT]=" Enter your brand logo URL:"
400400 [BRANDING_ADDED_SUCCESS]=" Branding configuration successfully added"
401401 [CUSTOM_APP_LIST_MENU]=" Edit custom application list and branding"
402+ [CUSTOM_APP_LIST_PANEL_MESSAGE]=" Editing custom application list and branding is now done on the panel side"
402403 [CUSTOM_APP_LIST_NOT_FOUND]=" Custom application list not found"
403404 [EDIT_BRANDING]=" Edit branding"
404405 [EDIT_LOGO]=" Change logo"
@@ -498,7 +499,7 @@ set_language() {
498499 [MENU_2]=" Переустановить панель/ноду"
499500 [MENU_3]=" Управление панелью/нодой"
500501 [MENU_4]=" Установить случайный шаблон для selfsteal ноды"
501- [MENU_5]=" Кастомные подписки от legiz"
502+ [MENU_5]=" Кастомные расширения от legiz"
502503 [MENU_6]=" Управление расширениями от distillium"
503504 [MENU_7]=" Управление IPv6"
504505 [MENU_8]=" Управление сертификатами домена"
@@ -788,12 +789,12 @@ set_language() {
788789 [UPLOADING_SUB_PAGE]=" Загрузка пользовательского шаблона страницы подписки..."
789790 [ERROR_FETCH_SUB_PAGE]=" Не удалось получить пользовательский шаблон страницы подписки."
790791 [SUB_PAGE_UPDATED_SUCCESS]=" Пользовательский шаблон страницы подписки успешно обновлён."
791- [SELECT_SUB_PAGE_CUSTOM]=" Выберите действие (0-7 ):"
792+ [SELECT_SUB_PAGE_CUSTOM]=" Выберите действие (0-2 ):"
792793 [SELECT_SUB_PAGE_CUSTOM1]=" Шаблоны страниц подписки"
793794 [SELECT_SUB_PAGE_CUSTOM2]=" Шаблоны страниц подписки\nЗапускать только на сервере с панелью"
794795 [SELECT_SUB_PAGE_CUSTOM3]=" Списки приложений для оригинальной страницы подписки:"
795796 [SELECT_SUB_PAGE_CUSTOM4]=" Кастомные страницы подписки:"
796- [SUB_PAGE_SELECT_CHOICE]=" Недопустимый выбор. Пожалуйста, выберите от 0 до 7 ."
797+ [SUB_PAGE_SELECT_CHOICE]=" Недопустимый выбор. Пожалуйста, выберите от 0 до 2 ."
797798 [RESTORE_SUB_PAGE]=" Восстановить шаблон страницы подписки по умолчанию"
798799 [CONTAINER_NOT_FOUND]=" Контейнер %s не найден"
799800 [SUB_WITH_APPCONFIG_ASK]=" Добавить файл конфигурации app-config.json?"
@@ -812,6 +813,7 @@ set_language() {
812813 [BRANDING_LOGO_URL_PROMPT]=" Введите ссылку на логотип вашего бренда:"
813814 [BRANDING_ADDED_SUCCESS]=" Конфигурация брендирования успешно добавлена"
814815 [CUSTOM_APP_LIST_MENU]=" Редактирование кастомного списка приложений и брендирования"
816+ [CUSTOM_APP_LIST_PANEL_MESSAGE]=" Редактирование кастомного списка приложений и брендирования теперь осуществляется на стороне панели"
815817 [CUSTOM_APP_LIST_NOT_FOUND]=" Кастомный список приложений не найден"
816818 [EDIT_BRANDING]=" Редактирование брендирования"
817819 [EDIT_LOGO]=" Изменить логотип"
@@ -2114,7 +2116,10 @@ manage_custom_legiz() {
21142116 manage_custom_legiz
21152117 ;;
21162118 2)
2117- manage_custom_app_list
2119+ echo -e " "
2120+ echo -e " ${COLOR_GREEN}${LANG[CUSTOM_APP_LIST_PANEL_MESSAGE]}${COLOR_RESET} "
2121+ echo -e " "
2122+ sleep 2
21182123 log_clear
21192124 manage_custom_legiz
21202125 ;;
@@ -2135,17 +2140,9 @@ show_sub_page_menu() {
21352140 echo -e " "
21362141 echo -e " ${COLOR_GREEN}${LANG[SELECT_SUB_PAGE_CUSTOM2]}${COLOR_RESET} "
21372142 echo -e " "
2138- echo -e " ${COLOR_GREEN}${LANG[SELECT_SUB_PAGE_CUSTOM3]}${COLOR_RESET} "
2139- echo -e " ${COLOR_YELLOW} 1. Simple custom app list (clash and sing)${COLOR_RESET} "
2140- echo -e " ${COLOR_YELLOW} 2. Multiapp custom app list${COLOR_RESET} "
2141- echo -e " ${COLOR_YELLOW} 3. HWID only custom app list${COLOR_RESET} "
2142- echo -e " "
2143- echo -e " ${COLOR_GREEN}${LANG[SELECT_SUB_PAGE_CUSTOM4]}${COLOR_RESET} "
2144- echo -e " ${COLOR_YELLOW} 4. Orion web page template (support custom app list)${COLOR_RESET} "
2145- echo -e " ${COLOR_YELLOW} 5. Material web page template (support custom app list)${COLOR_RESET} "
2146- echo -e " ${COLOR_YELLOW} 6. Marzbanify web page template (clash and sing)${COLOR_RESET} "
2143+ echo -e " ${COLOR_YELLOW} 1. Orion web page template (support custom app list)${COLOR_RESET} "
21472144 echo -e " "
2148- echo -e " ${COLOR_YELLOW} 7 . ${LANG[RESTORE_SUB_PAGE]}${COLOR_RESET} "
2145+ echo -e " ${COLOR_YELLOW} 2 . ${LANG[RESTORE_SUB_PAGE]}${COLOR_RESET} "
21492146 echo -e " "
21502147 echo -e " ${COLOR_YELLOW} 0. ${LANG[EXIT]}${COLOR_RESET} "
21512148 echo -e " "
@@ -2230,35 +2227,7 @@ manage_sub_page_upload() {
22302227 local docker_compose_file=" /opt/remnawave/docker-compose.yml"
22312228
22322229 case $SUB_PAGE_OPTION in
2233- 1|2|3)
2234- [ -f " $index_file " ] && rm -f " $index_file "
2235-
2236- echo -e " ${COLOR_YELLOW}${LANG[UPLOADING_SUB_PAGE]}${COLOR_RESET} "
2237- echo -e " "
2238- local primary_url=" https://raw.githubusercontent.com/legiz-ru/my-remnawave/refs/heads/main/sub-page/app-config.json"
2239- local fallback_url=" https://cdn.jsdelivr.net/gh/legiz-ru/my-remnawave@main/sub-page/app-config.json"
2240- if [ " $SUB_PAGE_OPTION " == " 2" ]; then
2241- primary_url=" https://raw.githubusercontent.com/legiz-ru/my-remnawave/refs/heads/main/sub-page/multiapp/app-config.json"
2242- fallback_url=" https://cdn.jsdelivr.net/gh/legiz-ru/my-remnawave@main/sub-page/multiapp/app-config.json"
2243- elif [ " $SUB_PAGE_OPTION " == " 3" ]; then
2244- primary_url=" https://raw.githubusercontent.com/legiz-ru/my-remnawave/refs/heads/main/sub-page/hwid/app-config.json"
2245- fallback_url=" https://cdn.jsdelivr.net/gh/legiz-ru/my-remnawave@main/sub-page/hwid/app-config.json"
2246- fi
2247-
2248- if ! download_with_fallback " $primary_url " " $fallback_url " " $config_file " ; then
2249- echo -e " ${COLOR_RED}${LANG[ERROR_FETCH_SUB_PAGE]}${COLOR_RESET} "
2250- sleep 2
2251- log_clear
2252- return 1
2253- fi
2254-
2255- branding_add_to_appconfig " $config_file "
2256-
2257- /usr/bin/yq eval ' del(.services."remnawave-subscription-page".volumes)' -i " $docker_compose_file "
2258- /usr/bin/yq eval ' .services."remnawave-subscription-page".volumes += ["./app-config.json:/opt/app/frontend/assets/app-config.json"]' -i " $docker_compose_file "
2259- ;;
2260-
2261- 4)
2230+ 1)
22622231 [ -f " $config_file " ] && rm -f " $config_file "
22632232 [ -f " $index_file " ] && rm -f " $index_file "
22642233
@@ -2273,137 +2242,11 @@ manage_sub_page_upload() {
22732242 return 1
22742243 fi
22752244
2276- echo -e " ${COLOR_GREEN}${LANG[SUB_WITH_APPCONFIG_ASK]}${COLOR_RESET} "
2277- echo -e " "
2278- echo -e " ${COLOR_YELLOW} 1. ${LANG[SUB_WITH_APPCONFIG_OPTION1]}${COLOR_RESET} "
2279- echo -e " ${COLOR_YELLOW} 2. ${LANG[SUB_WITH_APPCONFIG_OPTION2]}${COLOR_RESET} "
2280- echo -e " ${COLOR_YELLOW} 3. ${LANG[SUB_WITH_APPCONFIG_OPTION3]}${COLOR_RESET} "
2281- echo -e " "
2282- echo -e " ${COLOR_YELLOW} 0. ${LANG[SUB_WITH_APPCONFIG_SKIP]}${COLOR_RESET} "
2283- echo -e " "
2284- reading " ${LANG[SUB_WITH_APPCONFIG_INPUT]} " SUB_WITH_APPCONFIG
2285-
2286- case $SUB_WITH_APPCONFIG in
2287- 1|2|3)
2288- local primary_config_url=" https://raw.githubusercontent.com/legiz-ru/my-remnawave/refs/heads/main/sub-page/app-config.json"
2289- local fallback_config_url=" https://cdn.jsdelivr.net/gh/legiz-ru/my-remnawave@main/sub-page/app-config.json"
2290- if [ " $SUB_WITH_APPCONFIG " == " 2" ]; then
2291- primary_config_url=" https://raw.githubusercontent.com/legiz-ru/my-remnawave/refs/heads/main/sub-page/multiapp/app-config.json"
2292- fallback_config_url=" https://cdn.jsdelivr.net/gh/legiz-ru/my-remnawave@main/sub-page/multiapp/app-config.json"
2293- elif [ " $SUB_WITH_APPCONFIG " == " 3" ]; then
2294- primary_config_url=" https://raw.githubusercontent.com/legiz-ru/my-remnawave/refs/heads/main/sub-page/hwid/app-config.json"
2295- fallback_config_url=" https://cdn.jsdelivr.net/gh/legiz-ru/my-remnawave@main/sub-page/hwid/app-config.json"
2296- fi
2297-
2298- if ! download_with_fallback " $primary_config_url " " $fallback_config_url " " $config_file " ; then
2299- echo -e " ${COLOR_RED}${LANG[ERROR_FETCH_SUB_PAGE]}${COLOR_RESET} "
2300- sleep 2
2301- log_clear
2302- return 1
2303- fi
2304-
2305- branding_add_to_appconfig " $config_file "
2306- ;;
2307- 0)
2308- [ -f " $config_file " ] && rm -f " $config_file "
2309- [ -f " $index_file " ] && rm -f " $index_file "
2310- ;;
2311- * )
2312- echo -e " ${COLOR_RED}${LANG[SUB_WITH_APPCONFIG_INVALID]}${COLOR_RESET} "
2313- [ -f " $config_file " ] && rm -f " $config_file "
2314- ;;
2315- esac
2316-
23172245 /usr/bin/yq eval ' del(.services."remnawave-subscription-page".volumes)' -i " $docker_compose_file "
23182246 /usr/bin/yq eval ' .services."remnawave-subscription-page".volumes += ["./index.html:/opt/app/frontend/index.html"]' -i " $docker_compose_file "
2319-
2320- if [ -f " $config_file " ]; then
2321- /usr/bin/yq eval ' .services."remnawave-subscription-page".volumes += ["./app-config.json:/opt/app/frontend/assets/app-config.json"]' -i " $docker_compose_file "
2322- fi
23232247 ;;
23242248
2325- 5)
2326- [ -f " $config_file " ] && rm -f " $config_file "
2327- [ -f " $index_file " ] && rm -f " $index_file "
2328-
2329- echo -e " ${COLOR_YELLOW}${LANG[UPLOADING_SUB_PAGE]}${COLOR_RESET} "
2330- echo -e " "
2331- local primary_index_url=" https://raw.githubusercontent.com/legiz-ru/material-remnawave-subscription-page/refs/heads/main/index.html"
2332- local fallback_index_url=" https://cdn.jsdelivr.net/gh/legiz-ru/material-remnawave-subscription-page@main/index.html"
2333- if ! download_with_fallback " $primary_index_url " " $fallback_index_url " " $index_file " ; then
2334- echo -e " ${COLOR_RED}${LANG[ERROR_FETCH_SUB_PAGE]}${COLOR_RESET} "
2335- sleep 2
2336- log_clear
2337- return 1
2338- fi
2339-
2340- echo -e " ${COLOR_GREEN}${LANG[SUB_WITH_APPCONFIG_ASK]}${COLOR_RESET} "
2341- echo -e " "
2342- echo -e " ${COLOR_YELLOW} 1. ${LANG[SUB_WITH_APPCONFIG_OPTION1]}${COLOR_RESET} "
2343- echo -e " ${COLOR_YELLOW} 2. ${LANG[SUB_WITH_APPCONFIG_OPTION2]}${COLOR_RESET} "
2344- echo -e " ${COLOR_YELLOW} 3. ${LANG[SUB_WITH_APPCONFIG_OPTION3]}${COLOR_RESET} "
2345- echo -e " "
2346- echo -e " ${COLOR_YELLOW} 0. ${LANG[SUB_WITH_APPCONFIG_SKIP]}${COLOR_RESET} "
2347- echo -e " "
2348- reading " ${LANG[SUB_WITH_APPCONFIG_INPUT]} " SUB_WITH_APPCONFIG
2349-
2350- case $SUB_WITH_APPCONFIG in
2351- 1|2|3)
2352- local primary_config_url=" https://raw.githubusercontent.com/legiz-ru/my-remnawave/refs/heads/main/sub-page/app-config.json"
2353- local fallback_config_url=" https://cdn.jsdelivr.net/gh/legiz-ru/my-remnawave@main/sub-page/app-config.json"
2354- if [ " $SUB_WITH_APPCONFIG " == " 2" ]; then
2355- primary_config_url=" https://raw.githubusercontent.com/legiz-ru/my-remnawave/refs/heads/main/sub-page/multiapp/app-config.json"
2356- fallback_config_url=" https://cdn.jsdelivr.net/gh/legiz-ru/my-remnawave@main/sub-page/multiapp/app-config.json"
2357- elif [ " $SUB_WITH_APPCONFIG " == " 3" ]; then
2358- primary_config_url=" https://raw.githubusercontent.com/legiz-ru/my-remnawave/refs/heads/main/sub-page/hwid/app-config.json"
2359- fallback_config_url=" https://cdn.jsdelivr.net/gh/legiz-ru/my-remnawave@main/sub-page/hwid/app-config.json"
2360- fi
2361-
2362- if ! download_with_fallback " $primary_config_url " " $fallback_config_url " " $config_file " ; then
2363- echo -e " ${COLOR_RED}${LANG[ERROR_FETCH_SUB_PAGE]}${COLOR_RESET} "
2364- sleep 2
2365- log_clear
2366- return 1
2367- fi
2368- branding_add_to_appconfig " $config_file "
2369- ;;
2370- 0)
2371- [ -f " $config_file " ] && rm -f " $config_file "
2372- [ -f " $index_file " ] && rm -f " $index_file "
2373- ;;
2374- * )
2375- echo -e " ${COLOR_RED}${LANG[SUB_WITH_APPCONFIG_INVALID]}${COLOR_RESET} "
2376- [ -f " $config_file " ] && rm -f " $config_file "
2377- ;;
2378- esac
2379-
2380- /usr/bin/yq eval ' del(.services."remnawave-subscription-page".volumes)' -i " $docker_compose_file "
2381- /usr/bin/yq eval ' .services."remnawave-subscription-page".volumes += ["./index.html:/opt/app/frontend/index.html"]' -i " $docker_compose_file "
2382-
2383- if [ -f " $config_file " ]; then
2384- /usr/bin/yq eval ' .services."remnawave-subscription-page".volumes += ["./app-config.json:/opt/app/frontend/assets/app-config.json"]' -i " $docker_compose_file "
2385- fi
2386- ;;
2387-
2388- 6)
2389- [ -f " $config_file " ] && rm -f " $config_file "
2390-
2391- echo -e " ${COLOR_YELLOW}${LANG[UPLOADING_SUB_PAGE]}${COLOR_RESET} "
2392- echo -e " "
2393- local primary_url=" https://raw.githubusercontent.com/legiz-ru/my-remnawave/refs/heads/main/sub-page/customweb/clash-sing/index.html"
2394- local fallback_url=" https://cdn.jsdelivr.net/gh/legiz-ru/my-remnawave@main/sub-page/customweb/clash-sing/index.html"
2395- if ! download_with_fallback " $primary_url " " $fallback_url " " $index_file " ; then
2396- echo -e " ${COLOR_RED}${LANG[ERROR_FETCH_SUB_PAGE]}${COLOR_RESET} "
2397- sleep 2
2398- log_clear
2399- return 1
2400- fi
2401-
2402- /usr/bin/yq eval ' del(.services."remnawave-subscription-page".volumes)' -i " $docker_compose_file "
2403- /usr/bin/yq eval ' .services."remnawave-subscription-page".volumes += ["./index.html:/opt/app/frontend/index.html"]' -i " $docker_compose_file "
2404- ;;
2405-
2406- 7)
2249+ 2)
24072250 [ -f " $config_file " ] && rm -f " $config_file "
24082251 [ -f " $index_file " ] && rm -f " $index_file "
24092252
0 commit comments