diff --git a/banner.sh b/banner.sh old mode 100644 new mode 100755 index 86b3658..39bc452 --- a/banner.sh +++ b/banner.sh @@ -1,30 +1,152 @@ #!/bin/bash -# Proxy-Core Banner +# Proxy-Core Beautiful Banner +# Version: 2.1.1 # Author: houseassassin -show_banner() { +# Colors +CYAN='\033[0;36m' +MAGENTA='\033[0;35m' +YELLOW='\033[1;33m' +GREEN='\033[0;32m' +BLUE='\033[0;34m' +RED='\033[0;31m' +WHITE='\033[1;37m' +GRAY='\033[0;90m' +NC='\033[0m' + +# Gradient effect +show_gradient_banner() { clear - echo -e "\033[1;36m" - cat << "EOF" -╔═══════════════════════════════════════════════════════════════════╗ -║ ██████╗ ██████╗ ██████╗ ██╗ ██╗██╗ ██╗ ██████╗ ██████╗ ║ -║ ██╔══██╗██╔══██╗██╔═══██╗╚██╗██╔╝╚██╗ ██╔╝ ██╔════╝██╔═══██╗║ -║ ██████╔╝██████╔╝██║ ██║ ╚███╔╝ ╚████╔╝█████╗██║ ██║ ██║║ -║ ██╔═══╝ ██╔══██╗██║ ██║ ██╔██╗ ╚██╔╝ ╚════╝██║ ██║ ██║║ -║ ██║ ██║ ██║╚██████╔╝██╔╝ ██╗ ██║ ╚██████╗╚██████╔╝║ -║ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ║ -║ ║ -║ Advanced VPN & Proxy Panel Auto-Installer ║ -╚═══════════════════════════════════════════════════════════════════╝ -EOF - echo -e "\033[0m" - echo -e "\033[1;32mVersion: 2.0.0\033[0m" - echo -e "\033[1;33mAuthor: houseassassin\033[0m" - echo -e "\033[1;34mGitHub: https://github.com/houseassassin/proxy-core\033[0m" echo "" - echo -e "\033[0;36m────────────────────────────────────────────────────────────────────\033[0m" + echo -e "${CYAN}╔═══════════════════════════════════════════════════════════════════════╗${NC}" + echo -e "${CYAN}║${MAGENTA} ██████╗ ██████╗ ██████╗ ██╗ ██╗██╗ ██╗ ██████╗ ██████╗ ${CYAN}║${NC}" + echo -e "${CYAN}║${MAGENTA} ██╔══██╗██╔══██╗██╔═══██╗╚██╗██╔╝╚██╗ ██╔╝ ██╔════╝██╔═══██╗ ${CYAN}║${NC}" + echo -e "${CYAN}║${BLUE} ██████╔╝██████╔╝██║ ██║ ╚███╔╝ ╚████╔╝█████╗██║ ██║ ██║ ${CYAN}║${NC}" + echo -e "${CYAN}║${BLUE} ██╔═══╝ ██╔══██╗██║ ██║ ██╔██╗ ╚██╔╝ ╚════╝██║ ██║ ██║ ${CYAN}║${NC}" + echo -e "${CYAN}║${CYAN} ██║ ██║ ██║╚██████╔╝██╔╝ ██╗ ██║ ╚██████╗╚██████╔╝ ${CYAN}║${NC}" + echo -e "${CYAN}║${CYAN} ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ${CYAN}║${NC}" + echo -e "${CYAN}║ ║${NC}" + echo -e "${CYAN}║${WHITE} 🚀 Advanced VPN & Proxy Panel Auto-Installer 🚀 ${CYAN}║${NC}" + echo -e "${CYAN}╚═══════════════════════════════════════════════════════════════════════╝${NC}" + echo "" + echo -e " ${GREEN}┌─────────────────────────────────────────────────────────────────┐${NC}" + echo -e " ${GREEN}│${NC} ${YELLOW}Version:${NC} ${WHITE}2.1.1${NC} ${GREEN}│${NC}" + echo -e " ${GREEN}│${NC} ${YELLOW}Author:${NC} ${WHITE}houseassassin${NC} ${GREEN}│${NC}" + echo -e " ${GREEN}│${NC} ${YELLOW}GitHub:${NC} ${BLUE}https://github.com/houseassassin/proxy-core${NC} ${GREEN}│${NC}" + echo -e " ${GREEN}└─────────────────────────────────────────────────────────────────┘${NC}" echo "" } -show_banner +# Animated loading +show_loading() { + local text="$1" + local duration=${2:-2} + local frames=("⠋" "⠙" "⠹" "⠸" "⠼" "⠴" "⠦" "⠧" "⠇" "⠏") + local end=$((SECONDS + duration)) + + while [ $SECONDS -lt $end ]; do + for frame in "${frames[@]}"; do + echo -ne "\r ${CYAN}${frame}${NC} ${text}" + sleep 0.1 + done + done + echo -ne "\r ${GREEN}✓${NC} ${text}\n" +} + +# Progress bar +show_progress() { + local current=$1 + local total=$2 + local width=50 + local percentage=$((current * 100 / total)) + local completed=$((width * current / total)) + local remaining=$((width - completed)) + + echo -ne "\r ${CYAN}[" + printf "%${completed}s" | tr ' ' '█' + printf "%${remaining}s" | tr ' ' '░' + echo -ne "]${NC} ${WHITE}${percentage}%${NC}" + + if [ $current -eq $total ]; then + echo "" + fi +} + +# Success box +show_success() { + local message="$1" + echo "" + echo -e " ${GREEN}╔═══════════════════════════════════════════════════════════════╗${NC}" + echo -e " ${GREEN}║${NC} ${WHITE}✓${NC} ${message}${GREEN}" + echo -e " ${GREEN}╚═══════════════════════════════════════════════════════════════╝${NC}" + echo "" +} + +# Error box +show_error() { + local message="$1" + echo "" + echo -e " ${RED}╔═══════════════════════════════════════════════════════════════╗${NC}" + echo -e " ${RED}║${NC} ${WHITE}✗${NC} ${message}${RED}" + echo -e " ${RED}╚═══════════════════════════════════════════════════════════════╝${NC}" + echo "" +} + +# Info box +show_info() { + local message="$1" + echo "" + echo -e " ${BLUE}╔═══════════════════════════════════════════════════════════════╗${NC}" + echo -e " ${BLUE}║${NC} ${WHITE}ℹ${NC} ${message}${BLUE}" + echo -e " ${BLUE}╚═══════════════════════════════════════════════════════════════╝${NC}" + echo "" +} + +# Warning box +show_warning() { + local message="$1" + echo "" + echo -e " ${YELLOW}╔═══════════════════════════════════════════════════════════════╗${NC}" + echo -e " ${YELLOW}║${NC} ${WHITE}⚠${NC} ${message}${YELLOW}" + echo -e " ${YELLOW}╚═══════════════════════════════════════════════════════════════╝${NC}" + echo "" +} + +# Menu header +show_menu_header() { + local title="$1" + echo "" + echo -e " ${MAGENTA}╔═══════════════════════════════════════════════════════════════╗${NC}" + echo -e " ${MAGENTA}║${NC} ${WHITE}${title}${MAGENTA}" + echo -e " ${MAGENTA}╚═══════════════════════════════════════════════════════════════╝${NC}" + echo "" +} + +# Menu item +show_menu_item() { + local number="$1" + local icon="$2" + local text="$3" + local description="$4" + + echo -e " ${CYAN}${number}.${NC} ${icon} ${WHITE}${text}${NC}" + if [ -n "$description" ]; then + echo -e " ${GRAY}${description}${NC}" + fi +} + +# Separator +show_separator() { + echo -e " ${GRAY}─────────────────────────────────────────────────────────────────${NC}" +} + +# Export functions +export -f show_gradient_banner show_loading show_progress +export -f show_success show_error show_info show_warning +export -f show_menu_header show_menu_item show_separator + +# Run if executed directly +if [ "${BASH_SOURCE[0]}" = "${0}" ]; then + show_gradient_banner +fi diff --git a/install.sh b/install.sh index ee667bc..e9b7793 100755 --- a/install.sh +++ b/install.sh @@ -15,7 +15,7 @@ SCRIPT_VERSION="2.1.1" PROJECT_DIR="/opt/proxy-core" LANG_FILE="${PROJECT_DIR}/.selected_language" -# Colors +# Colors and styles RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' @@ -23,32 +23,61 @@ BLUE='\033[0;34m' MAGENTA='\033[0;35m' CYAN='\033[0;36m' GRAY='\033[0;90m' +WHITE='\033[1;37m' NC='\033[0m' +# Styles +BOLD='\033[1m' +DIM='\033[2m' +UNDERLINE='\033[4m' +BLINK='\033[5m' + +# Background colors +BG_RED='\033[41m' +BG_GREEN='\033[42m' +BG_BLUE='\033[44m' +BG_MAGENTA='\033[45m' +BG_CYAN='\033[46m' + # Create project directory first mkdir -p "$PROJECT_DIR" # Logging LOGFILE="${PROJECT_DIR}/installer.log" -log() { echo -e "${GREEN}[INFO]${NC} $1" | tee -a "$LOGFILE"; } -warn() { echo -e "${YELLOW}[WARN]${NC} $1" | tee -a "$LOGFILE"; } -error() { echo -e "${RED}[ERROR]${NC} $1" | tee -a "$LOGFILE"; exit 1; } -success() { echo -e "${GREEN}[SUCCESS]${NC} $1" | tee -a "$LOGFILE"; } +log() { + echo -e " ${CYAN}ℹ${NC} ${WHITE}$1${NC}" + echo "[$(date '+%Y-%m-%d %H:%M:%S')] [INFO] $1" >> "$LOGFILE" 2>/dev/null +} + +warn() { + echo -e " ${YELLOW}⚠${NC} ${YELLOW}$1${NC}" + echo "[$(date '+%Y-%m-%d %H:%M:%S')] [WARN] $1" >> "$LOGFILE" 2>/dev/null +} + +error() { + echo -e " ${RED}✗${NC} ${RED}$1${NC}" + echo "[$(date '+%Y-%m-%d %H:%M:%S')] [ERROR] $1" >> "$LOGFILE" 2>/dev/null +} + +success() { + echo -e " ${GREEN}✓${NC} ${GREEN}$1${NC}" + echo "[$(date '+%Y-%m-%d %H:%M:%S')] [SUCCESS] $1" >> "$LOGFILE" 2>/dev/null +} # Spinner animation spinner() { local pid=$1 local text=$2 - local spinstr='⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏' + local frames=("⠋" "⠙" "⠹" "⠸" "⠼" "⠴" "⠦" "⠧" "⠇" "⠏") while kill -0 "$pid" 2>/dev/null; do - for (( i=0; i<${#spinstr}; i++ )); do - printf "\r${GREEN}[%s]${NC} %s" "${spinstr:$i:1}" "$text" + for frame in "${frames[@]}"; do + printf "\r ${CYAN}${frame}${NC} ${WHITE}%s${NC}" "$text" sleep 0.1 done done - printf "\r\033[K" + printf "\r ${GREEN}✓${NC} ${WHITE}%s${NC}\n" "$text" } # Language support @@ -631,34 +660,94 @@ EOF # Main menu show_main_menu() { - clear - echo -e "${MAGENTA}╔════════════════════════════════════════╗${NC}" - echo -e "${MAGENTA}║ $(L MENU_TITLE) ║${NC}" - echo -e "${MAGENTA}║ Version: ${SCRIPT_VERSION} ║${NC}" - echo -e "${MAGENTA}╚════════════════════════════════════════╝${NC}" + SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + + # Source banner + if [ -f "$SCRIPT_DIR/banner.sh" ]; then + source "$SCRIPT_DIR/banner.sh" + show_gradient_banner + else + clear + echo -e "${MAGENTA}╔════════════════════════════════════════╗${NC}" + echo -e "${MAGENTA}║ 🚀 Proxy-Core Installer ║${NC}" + echo -e "${MAGENTA}║ Version: ${SCRIPT_VERSION} ║${NC}" + echo -e "${MAGENTA}╚════════════════════════════════════════╝${NC}" + echo "" + fi + + echo -e " ${CYAN}╔═══════════════════════════════════════════════════════════════╗${NC}" + echo -e " ${CYAN}║${NC} ${WHITE}📦 УСТАНОВКА${NC} ${CYAN}║${NC}" + echo -e " ${CYAN}╚═══════════════════════════════════════════════════════════════╝${NC}" echo "" - echo -e "${YELLOW}1.${NC} $(L MENU_INSTALL)" - echo -e "${YELLOW}2.${NC} $(L MENU_MANAGE)" - echo -e "${YELLOW}3.${NC} $(L MENU_BACKUP)" - echo -e "${YELLOW}4.${NC} $(L MENU_UPDATE)" - echo -e "${YELLOW}5.${NC} $(L MENU_UNINSTALL)" - echo -e "${YELLOW}6.${NC} $(L SELFSTEAL)" - echo -e "${YELLOW}9.${NC} Сменить язык / Change language" - echo -e "${YELLOW}0.${NC} $(L MENU_EXIT)" + echo -e " ${YELLOW}1.${NC} 🔧 ${WHITE}Установить панель${NC}" + echo -e " ${GRAY}WireGuard, 3x-ui, Remnawave, Hysteria2, MTProxy${NC}" + echo "" + + echo -e " ${CYAN}╔═══════════════════════════════════════════════════════════════╗${NC}" + echo -e " ${CYAN}║${NC} ${WHITE}⚙️ УПРАВЛЕНИЕ${NC} ${CYAN}║${NC}" + echo -e " ${CYAN}╚═══════════════════════════════════════════════════════════════╝${NC}" + echo "" + echo -e " ${YELLOW}2.${NC} 🎮 ${WHITE}Управление сервисами${NC}" + echo -e " ${GRAY}Запуск, остановка, перезапуск панелей${NC}" + echo "" + echo -e " ${YELLOW}3.${NC} 💾 ${WHITE}Резервное копирование${NC}" + echo -e " ${GRAY}Создание и восстановление бэкапов${NC}" + echo "" + echo -e " ${YELLOW}4.${NC} 🔄 ${WHITE}Обновить компоненты${NC}" + echo -e " ${GRAY}Обновление установленных панелей${NC}" + echo "" + + echo -e " ${CYAN}╔═══════════════════════════════════════════════════════════════╗${NC}" + echo -e " ${CYAN}║${NC} ${WHITE}🌐 ДОПОЛНИТЕЛЬНО${NC} ${CYAN}║${NC}" + echo -e " ${CYAN}╚═══════════════════════════════════════════════════════════════╝${NC}" + echo "" + echo -e " ${YELLOW}5.${NC} 🗑️ ${WHITE}Удалить панель${NC}" + echo -e " ${GRAY}Полное удаление установленных компонентов${NC}" + echo "" + echo -e " ${YELLOW}6.${NC} 🎭 ${WHITE}Установить Selfsteal${NC}" + echo -e " ${GRAY}Маскировка трафика под обычный сайт${NC}" + echo "" + echo -e " ${YELLOW}7.${NC} 🌐 ${WHITE}Настроить Reverse Proxy${NC}" + echo -e " ${GRAY}Nginx, Caddy, HAProxy - установка и настройка${NC}" + echo "" + + echo -e " ${GRAY}─────────────────────────────────────────────────────────────────${NC}" + echo "" + echo -e " ${YELLOW}9.${NC} 🌍 ${WHITE}Сменить язык / Change language${NC}" + echo -e " ${YELLOW}0.${NC} 🚪 ${WHITE}Выход / Exit${NC}" + echo "" + echo -e " ${GRAY}─────────────────────────────────────────────────────────────────${NC}" echo "" } show_install_menu() { clear - echo -e "${GREEN}$(L SELECT_PANEL)${NC}" echo "" - echo -e "${YELLOW}1.${NC} $(L WIREGUARD)" - echo -e "${YELLOW}2.${NC} $(L 3XUI)" - echo -e "${YELLOW}3.${NC} $(L REMNAWAVE)" - echo -e "${YELLOW}4.${NC} $(L HYSTERIA2)" - echo -e "${YELLOW}5.${NC} $(L MTPROXY)" - echo -e "${YELLOW}6.${NC} $(L ALL)" - echo -e "${YELLOW}0.${NC} Назад / Back" + echo -e " ${GREEN}╔═══════════════════════════════════════════════════════════════╗${NC}" + echo -e " ${GREEN}║${NC} ${WHITE}📦 Выберите панель для установки${NC} ${GREEN}║${NC}" + echo -e " ${GREEN}╚═══════════════════════════════════════════════════════════════╝${NC}" + echo "" + echo -e " ${YELLOW}1.${NC} 🔐 ${WHITE}WireGuard VPN${NC}" + echo -e " ${GRAY}Современный, быстрый и безопасный VPN${NC}" + echo "" + echo -e " ${YELLOW}2.${NC} 🌐 ${WHITE}3x-ui Panel${NC}" + echo -e " ${GRAY}VLESS, VMess, Trojan, Shadowsocks${NC}" + echo "" + echo -e " ${YELLOW}3.${NC} 🐳 ${WHITE}Remnawave Panel${NC}" + echo -e " ${GRAY}Современная панель с Docker${NC}" + echo "" + echo -e " ${YELLOW}4.${NC} ⚡ ${WHITE}Hysteria2 Proxy${NC}" + echo -e " ${GRAY}Высокоскоростной прокси с маскировкой${NC}" + echo "" + echo -e " ${YELLOW}5.${NC} 📱 ${WHITE}MTProxy (Telegram)${NC}" + echo -e " ${GRAY}Официальный прокси для Telegram${NC}" + echo "" + echo -e " ${GRAY}─────────────────────────────────────────────────────────────────${NC}" + echo "" + echo -e " ${YELLOW}6.${NC} 🚀 ${WHITE}Установить всё${NC}" + echo -e " ${GRAY}Последовательная установка всех панелей${NC}" + echo "" + echo -e " ${YELLOW}0.${NC} ⬅️ ${WHITE}Назад / Back${NC}" echo "" } diff --git a/reverse-proxy-manager.sh b/reverse-proxy-manager.sh index a4c4e56..6a3b3f4 100755 --- a/reverse-proxy-manager.sh +++ b/reverse-proxy-manager.sh @@ -304,80 +304,126 @@ EOF # Show configuration tips show_tips() { clear - echo -e "${MAGENTA}╔════════════════════════════════════════════════════════════╗${NC}" - echo -e "${MAGENTA}║ Подсказки по настройке Reverse Proxy ║${NC}" - echo -e "${MAGENTA}╚════════════════════════════════════════════════════════════╝${NC}" + echo "" + echo -e "${MAGENTA}╔════════════════════════════════════════════════════════════════════╗${NC}" + echo -e "${MAGENTA}║${NC} ${WHITE}💡 Подсказки по настройке Reverse Proxy${NC} ${MAGENTA}║${NC}" + echo -e "${MAGENTA}╚════════════════════════════════════════════════════════════════════╝${NC}" echo "" - echo -e "${CYAN}📌 Nginx${NC}" - echo " ✓ Лучший выбор для высоких нагрузок" - echo " ✓ Отличное кэширование и обработка статики" - echo " ✓ Гибкая конфигурация" - echo " ✗ Требует ручной настройки SSL" + echo -e " ${CYAN}╔═══════════════════════════════════════════════════════════════╗${NC}" + echo -e " ${CYAN}║${NC} ${WHITE}🔧 Nginx${NC} ${CYAN}║${NC}" + echo -e " ${CYAN}╚═══════════════════════════════════════════════════════════════╝${NC}" + echo -e " ${GREEN}✓${NC} Лучший выбор для высоких нагрузок" + echo -e " ${GREEN}✓${NC} Отличное кэширование и обработка статики" + echo -e " ${GREEN}✓${NC} Гибкая конфигурация" + echo -e " ${RED}✗${NC} Требует ручной настройки SSL" echo "" - echo -e "${CYAN}📌 Caddy${NC}" - echo " ✓ Автоматический SSL из коробки" - echo " ✓ Простая конфигурация" - echo " ✓ HTTP/3 поддержка" - echo " ✗ Меньше производительность чем Nginx" + echo -e " ${CYAN}╔═══════════════════════════════════════════════════════════════╗${NC}" + echo -e " ${CYAN}║${NC} ${WHITE}🚀 Caddy${NC} ${CYAN}║${NC}" + echo -e " ${CYAN}╚═══════════════════════════════════════════════════════════════╝${NC}" + echo -e " ${GREEN}✓${NC} Автоматический SSL из коробки" + echo -e " ${GREEN}✓${NC} Простая конфигурация" + echo -e " ${GREEN}✓${NC} HTTP/3 поддержка" + echo -e " ${RED}✗${NC} Меньше производительность чем Nginx" echo "" - echo -e "${CYAN}📌 HAProxy${NC}" - echo " ✓ Лучший для балансировки нагрузки" - echo " ✓ TCP и HTTP режимы" - echo " ✓ Продвинутые health checks" - echo " ✗ Не обрабатывает SSL (нужен Nginx/Caddy)" + echo -e " ${CYAN}╔═══════════════════════════════════════════════════════════════╗${NC}" + echo -e " ${CYAN}║${NC} ${WHITE}⚖️ HAProxy${NC} ${CYAN}║${NC}" + echo -e " ${CYAN}╚═══════════════════════════════════════════════════════════════╝${NC}" + echo -e " ${GREEN}✓${NC} Лучший для балансировки нагрузки" + echo -e " ${GREEN}✓${NC} TCP и HTTP режимы" + echo -e " ${GREEN}✓${NC} Продвинутые health checks" + echo -e " ${RED}✗${NC} Не обрабатывает SSL (нужен Nginx/Caddy)" echo "" - echo -e "${CYAN}📌 Гибридные решения${NC}" - echo " • Nginx + Caddy: статика + автоSSL" - echo " • HAProxy + Nginx: балансировка + кэш" - echo " • Caddy + HAProxy: автоSSL + балансировка" + echo -e " ${CYAN}╔═══════════════════════════════════════════════════════════════╗${NC}" + echo -e " ${CYAN}║${NC} ${WHITE}🔄 Гибридные решения${NC} ${CYAN}║${NC}" + echo -e " ${CYAN}╚═══════════════════════════════════════════════════════════════╝${NC}" + echo -e " ${BLUE}•${NC} Nginx + Caddy: статика + автоSSL" + echo -e " ${BLUE}•${NC} HAProxy + Nginx: балансировка + кэш" + echo -e " ${BLUE}•${NC} Caddy + HAProxy: автоSSL + балансировка" echo "" - echo -e "${YELLOW}Рекомендации:${NC}" - echo " 1. Для простых VPN панелей: Caddy" - echo " 2. Для высоких нагрузок: Nginx" - echo " 3. Для кластера серверов: HAProxy + Nginx" - echo " 4. Для максимальной автоматизации: Caddy" + echo -e " ${YELLOW}╔═══════════════════════════════════════════════════════════════╗${NC}" + echo -e " ${YELLOW}║${NC} ${WHITE}📋 Рекомендации${NC} ${YELLOW}║${NC}" + echo -e " ${YELLOW}╚═══════════════════════════════════════════════════════════════╝${NC}" + echo -e " ${WHITE}1.${NC} Для простых VPN панелей: ${GREEN}Caddy${NC}" + echo -e " ${WHITE}2.${NC} Для высоких нагрузок: ${GREEN}Nginx${NC}" + echo -e " ${WHITE}3.${NC} Для кластера серверов: ${GREEN}HAProxy + Nginx${NC}" + echo -e " ${WHITE}4.${NC} Для максимальной автоматизации: ${GREEN}Caddy${NC}" echo "" - read -p "Нажмите Enter для продолжения..." + read -p " Нажмите Enter для продолжения..." } # Main menu show_main_menu() { + SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + clear - echo -e "${MAGENTA}╔════════════════════════════════════════════════════════════╗${NC}" - echo -e "${MAGENTA}║ Reverse Proxy Manager ║${NC}" - echo -e "${MAGENTA}║ Version: 2.1.1 ║${NC}" - echo -e "${MAGENTA}╚════════════════════════════════════════════════════════════╝${NC}" + echo "" + echo -e "${CYAN}╔═══════════════════════════════════════════════════════════════════════╗${NC}" + echo -e "${CYAN}║${MAGENTA} 🌐 REVERSE PROXY MANAGER ${CYAN}║${NC}" + echo -e "${CYAN}║${BLUE} Nginx • Caddy • HAProxy ${CYAN}║${NC}" + echo -e "${CYAN}╚═══════════════════════════════════════════════════════════════════════╝${NC}" echo "" local installed=$(detect_installed_proxies) - echo -e "${CYAN}Установлено:${NC} ${installed:-нет}" + if [ -n "$installed" ]; then + echo -e " ${GREEN}✓${NC} ${WHITE}Установлено:${NC} ${CYAN}${installed}${NC}" + else + echo -e " ${GRAY}○${NC} ${GRAY}Ничего не установлено${NC}" + fi echo "" - echo -e "${YELLOW}Установка:${NC}" - echo " 1) Установить Nginx" - echo " 2) Установить Caddy" - echo " 3) Установить HAProxy" + echo -e " ${CYAN}╔═══════════════════════════════════════════════════════════════╗${NC}" + echo -e " ${CYAN}║${NC} ${WHITE}📦 УСТАНОВКА${NC} ${CYAN}║${NC}" + echo -e " ${CYAN}╚═══════════════════════════════════════════════════════════════╝${NC}" + echo "" + echo -e " ${YELLOW}1.${NC} 🔧 ${WHITE}Установить Nginx${NC}" + echo -e " ${GRAY}Высокая производительность и кэширование${NC}" + echo "" + echo -e " ${YELLOW}2.${NC} 🚀 ${WHITE}Установить Caddy${NC}" + echo -e " ${GRAY}Автоматический SSL из коробки${NC}" + echo "" + echo -e " ${YELLOW}3.${NC} ⚖️ ${WHITE}Установить HAProxy${NC}" + echo -e " ${GRAY}Балансировка нагрузки${NC}" echo "" - echo -e "${YELLOW}Настройка:${NC}" - echo " 4) Настроить Nginx для 3x-ui" - echo " 5) Настроить Caddy для 3x-ui" - echo " 6) Настроить HAProxy (балансировка)" - echo " 7) Настроить Nginx + Caddy (гибрид)" + echo -e " ${CYAN}╔═══════════════════════════════════════════════════════════════╗${NC}" + echo -e " ${CYAN}║${NC} ${WHITE}⚙️ НАСТРОЙКА${NC} ${CYAN}║${NC}" + echo -e " ${CYAN}╚═══════════════════════════════════════════════════════════════╝${NC}" + echo "" + echo -e " ${YELLOW}4.${NC} 🌐 ${WHITE}Настроить Nginx для 3x-ui${NC}" + echo -e " ${GRAY}Автоматическая настройка с SSL${NC}" + echo "" + echo -e " ${YELLOW}5.${NC} 🔐 ${WHITE}Настроить Caddy для 3x-ui${NC}" + echo -e " ${GRAY}Автоматический HTTPS${NC}" + echo "" + echo -e " ${YELLOW}6.${NC} ⚖️ ${WHITE}Настроить HAProxy (балансировка)${NC}" + echo -e " ${GRAY}Распределение нагрузки между серверами${NC}" + echo "" + echo -e " ${YELLOW}7.${NC} 🔄 ${WHITE}Настроить Nginx + Caddy (гибрид)${NC}" + echo -e " ${GRAY}Статика + автоматический SSL${NC}" echo "" - echo -e "${YELLOW}Информация:${NC}" - echo " 8) Показать подсказки" - echo " 9) Статус сервисов" + echo -e " ${CYAN}╔═══════════════════════════════════════════════════════════════╗${NC}" + echo -e " ${CYAN}║${NC} ${WHITE}ℹ️ ИНФОРМАЦИЯ${NC} ${CYAN}║${NC}" + echo -e " ${CYAN}╚═══════════════════════════════════════════════════════════════╝${NC}" + echo "" + echo -e " ${YELLOW}8.${NC} 💡 ${WHITE}Показать подсказки${NC}" + echo -e " ${GRAY}Рекомендации по выбору${NC}" + echo "" + echo -e " ${YELLOW}9.${NC} 📊 ${WHITE}Статус сервисов${NC}" + echo -e " ${GRAY}Проверка работы установленных proxy${NC}" echo "" - echo " 0) Выход" + echo -e " ${GRAY}─────────────────────────────────────────────────────────────────${NC}" + echo "" + echo -e " ${YELLOW}0.${NC} 🚪 ${WHITE}Выход${NC}" + echo "" + echo -e " ${GRAY}─────────────────────────────────────────────────────────────────${NC}" echo "" }