Restructure menu: WARP key / 3X-UI / AmneziaWG / Bot / Other sections; auto-confirm wgcf

Made-with: Cursor
This commit is contained in:
anten-ka
2026-03-20 15:48:42 +03:00
parent 29a4f168a7
commit 0a4b0c4620
2 changed files with 97 additions and 87 deletions

102
warp.sh
View File

@@ -492,14 +492,13 @@ awg_install_wgcf() {
awg_ensure_account() {
if [ ! -f "$WGCF_ACCOUNT" ]; then
echo -e "${YELLOW}Регистрация WARP через wgcf...${NC}"
echo -e "${WHITE}Если попросит подтверждение — введите ${GREEN}y${NC}"
(cd /root && ./wgcf register)
(cd /root && yes | ./wgcf register 2>/dev/null)
fi
[ -f "$WGCF_ACCOUNT" ] || { echo -e "${RED}Не создан $WGCF_ACCOUNT${NC}"; return 1; }
}
awg_generate_profile() {
(cd /root && ./wgcf generate)
(cd /root && yes | ./wgcf generate 2>/dev/null)
[ -f "$WGCF_PROFILE" ] || { echo -e "${RED}Не создан профиль.${NC}"; return 1; }
}
@@ -1135,7 +1134,7 @@ bot_handle_callback() {
else
docker exec "$CONTAINER" sh -c "wg-quick down '$AWG_WARP_CONF' 2>/dev/null || true"
rm -f "$WGCF_ACCOUNT"
(cd /root && ./wgcf register --accept-tos 2>/dev/null && ./wgcf generate 2>/dev/null)
(cd /root && yes | ./wgcf register 2>/dev/null && yes | ./wgcf generate 2>/dev/null)
if [ -f "$WGCF_PROFILE" ]; then
local ep; ep=$(awg_resolve_endpoint 2>/dev/null)
if [ -n "$ep" ]; then
@@ -1467,57 +1466,66 @@ show_menu() {
sc="$RED"; [[ "$st" == "Подключён" ]] && sc="$GREEN"; [[ "$st" == "Отключён" ]] && sc="$YELLOW"
local mode_label="3X-UI"; [ "$MODE" = "amnezia" ] && mode_label="AmneziaWG"
echo -e "${MAGENTA}******************************************************"
echo " anten-ka · WARP Manager v${WARP_VERSION} (${mode_label})"
echo " YouTube: https://www.youtube.com/@antenkaru"
echo -e "******************************************************${NC}"
echo -e "${WHITE}IP сервера: ${GREEN}${MY_IP}${NC} ${WHITE}WARP: ${sc}${st}${NC}"
echo -e "${MAGENTA}╔══════════════════════════════════════════════════════╗"
echo -e " anten-ka · WARP Manager v${WARP_VERSION} "
echo -e " YouTube: https://www.youtube.com/@antenkaru"
echo -e "╚══════════════════════════════════════════════════════╝${NC}"
echo -e " ${WHITE}IP сервера:${NC} ${GREEN}${MY_IP}${NC} ${WHITE}Режим:${NC} ${CYAN}${mode_label}${NC}"
echo -e " ${WHITE}WARP:${NC} ${sc}${st}${NC}"
if [ "$MODE" = "3xui" ] && is_warp_running; then
echo -e "${WHITE}SOCKS5: ${CYAN}127.0.0.1:${SOCKS_PORT}${NC}"
echo -e " ${WHITE}SOCKS5:${NC} ${CYAN}127.0.0.1:${SOCKS_PORT}${NC}"
fi
if [ "$MODE" = "amnezia" ]; then
echo -e "${WHITE}Контейнер: ${CYAN}${CONTAINER:-N/A}${NC}"
if [ "$MODE" = "amnezia" ] && [ -n "${CONTAINER:-}" ]; then
echo -e " ${WHITE}Контейнер:${NC} ${CYAN}${CONTAINER}${NC}"
fi
echo -e "------------------------------------------------------"
echo -e " 1) ${GREEN}Установить WARP${NC}"
echo -e " 2) ${CYAN}Запустить WARP${NC}"
echo -e " 3) ${YELLOW}Остановить WARP${NC}"
echo -e " 4) 📊 ${WHITE}Статус${NC}"
echo -e "\n${CYAN}── WARP-ключ ──────────────────────────────────────────${NC}"
echo -e " 1) ${GREEN}Установить WARP${NC}"
echo -e " 2) ${CYAN}Запустить WARP${NC}"
echo -e " 3) ${YELLOW}Остановить WARP${NC}"
echo -e " 4) 📊 Статус"
echo -e " 5) 🔑 ${YELLOW}Перевыпуск ключа${NC}"
if [ "$MODE" = "3xui" ]; then
echo -e " 5) 📋 ${CYAN}JSON для 3X-UI${NC}"
echo -e " 6) 🔑 ${YELLOW}Перевыпуск ключа${NC}"
echo -e " 7) 🔧 ${WHITE}Изменить порт SOCKS5${NC}"
else
echo -e " 5) ${GREEN} Добавить клиентов в WARP${NC}"
echo -e " 6) ${YELLOW} Убрать клиентов из WARP${NC}"
echo -e " 7) 👥 ${WHITE}Показать клиентов${NC}"
echo -e "12) 🔑 ${YELLOW}Перевыпуск ключа${NC}"
echo -e "13) 🔄 ${CYAN}Перезапуск контейнера${NC}"
echo -e "\n${CYAN}── 3X-UI ──────────────────────────────────────────────${NC}"
echo -e " 6) 📋 ${CYAN}JSON конфиг для 3X-UI${NC}"
echo -e " 7) 🔧 ${WHITE}Изменить порт SOCKS5${NC}"
fi
echo -e " 8) 🤖 ${CYAN}Telegram Bot${NC}"
echo -e " 9) ${YELLOW}PROMO${NC}"
echo -e "10) ${MAGENTA}📚 Инструкция${NC}"
echo -e "11) ${RED}⚠ Полное удаление${NC}"
echo -e " 0) Выход"
echo -e "------------------------------------------------------"
read -p "Выбор: " ch
if [ "$MODE" = "amnezia" ]; then
echo -e "\n${CYAN}── AmneziaWG ──────────────────────────────────────────${NC}"
echo -e " 6) ${GREEN} Добавить клиентов в WARP${NC}"
echo -e " 7) ${YELLOW} Убрать клиентов из WARP${NC}"
echo -e " 8) 👥 ${WHITE}Показать клиентов в WARP${NC}"
echo -e " 9) 🔄 ${CYAN}Перезапуск контейнера${NC}"
fi
echo -e "\n${CYAN}── Telegram-бот ───────────────────────────────────────${NC}"
echo -e " 10) 🤖 ${CYAN}Настройка и управление ботом${NC}"
echo -e "\n${CYAN}── Прочее ─────────────────────────────────────────────${NC}"
echo -e " 11) ${YELLOW}PROMO${NC}"
echo -e " 12) ${MAGENTA}📚 Инструкция${NC}"
echo -e " 13) ${RED}⚠ Полное удаление${NC}"
echo -e " 0) Выход"
echo -e "${CYAN}──────────────────────────────────────────────────────${NC}"
read -p " Выбор: " ch
case $ch in
1) [ "$MODE" = "3xui" ] && install_warp_3xui || install_warp_awg ;;
2) [ "$MODE" = "3xui" ] && start_warp_3xui || start_warp_awg ;;
3) [ "$MODE" = "3xui" ] && stop_warp_3xui || stop_warp_awg ;;
4) [ "$MODE" = "3xui" ] && show_status_3xui || show_status_awg ;;
5) [ "$MODE" = "3xui" ] && show_xui_json || awg_add_clients_ssh ;;
6) [ "$MODE" = "3xui" ] && rekey_warp_3xui || awg_remove_clients_ssh ;;
7) [ "$MODE" = "3xui" ] && change_port_3xui || awg_show_clients_ssh ;;
8) bot_menu ;;
9) show_promo ;;
10) show_info ;;
11) full_uninstall ;;
12) [ "$MODE" = "amnezia" ] && rekey_warp_awg ;;
13) [ "$MODE" = "amnezia" ] && awg_restart_container ;;
0) exit 0 ;;
1) [ "$MODE" = "3xui" ] && install_warp_3xui || install_warp_awg ;;
2) [ "$MODE" = "3xui" ] && start_warp_3xui || start_warp_awg ;;
3) [ "$MODE" = "3xui" ] && stop_warp_3xui || stop_warp_awg ;;
4) [ "$MODE" = "3xui" ] && show_status_3xui || show_status_awg ;;
5) [ "$MODE" = "3xui" ] && rekey_warp_3xui || rekey_warp_awg ;;
6) [ "$MODE" = "3xui" ] && show_xui_json || awg_add_clients_ssh ;;
7) [ "$MODE" = "3xui" ] && change_port_3xui || awg_remove_clients_ssh ;;
8) [ "$MODE" = "amnezia" ] && awg_show_clients_ssh ;;
9) [ "$MODE" = "amnezia" ] && awg_restart_container ;;
10) bot_menu ;;
11) show_promo ;;
12) show_info ;;
13) full_uninstall ;;
0) exit 0 ;;
esac
done
}