diff --git a/install.sh b/install.sh index b756388..70a0df1 100644 --- a/install.sh +++ b/install.sh @@ -196,7 +196,8 @@ show_promo() { echo -e "${MAGENTA}╔══════════════════════════════════════════════════════════════╗${NC}" echo -e "${MAGENTA}║ ХОСТИНГ СО СКИДКОЙ ДО -60% ОТ ANTEN-KA ║${NC}" echo -e "${MAGENTA}╚══════════════════════════════════════════════════════════════╝${NC}" - echo -e "${CYAN} >>> Ссылка: $PROMO_LINK ${NC}" + echo -e "${CYAN} Хостинг #1: $PROMO_LINK ${NC}" + echo -e "${CYAN} Хостинг #2: https://vk.cc/cUxAhj ${NC}" echo -e "\n${MAGENTA}❖ ••••••••••••••••••• АКТУАЛЬНЫЕ ПРОМОКОДЫ •••••••••••••••••• ❖${NC}" printf " ${YELLOW}%-12s${NC} : ${WHITE}%s${NC}\n" "OFF60" "Скидка 60% на ПЕРВЫЙ МЕСЯЦ" printf " ${YELLOW}%-12s${NC} : ${WHITE}%s${NC}\n" "antenka20" "Буст 20% + 3% (оплата за 3 МЕС)" @@ -204,8 +205,10 @@ show_promo() { printf " ${YELLOW}%-12s${NC} : ${WHITE}%s${NC}\n" "antenka12" "Буст 5% + 5% (оплата за 12 МЕС)" echo -e "${MAGENTA}❖ •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• ❖${NC}" if command -v qrencode &>/dev/null; then + echo -e "\n${GREEN}Хостинг #1:${NC}" qrencode -t ANSIUTF8 "$PROMO_LINK" - echo -e "${GREEN}Сканируйте QR для перехода на хостинг${NC}" + echo -e "${GREEN}Хостинг #2:${NC}" + qrencode -t ANSIUTF8 "https://vk.cc/cUxAhj" fi echo "--------------------------------------------------------------" read -p "Нажмите [ENTER] для возврата в меню..." @@ -231,11 +234,22 @@ menu_install() { [[ $(( (i+1) % 2 )) -eq 0 ]] && echo "" done echo "" + echo -e " ${CYAN}21)${NC} Ввести свой домен" + echo "" local d_idx DOMAIN - read -p "Ваш выбор [1-${#domains[@]}]: " d_idx - DOMAIN=${domains[$((d_idx-1))]} - DOMAIN=${DOMAIN:-google.com} + read -p "Ваш выбор [1-21]: " d_idx + if [ "$d_idx" = "21" ]; then + read -p " Введите домен (например, example.com): " DOMAIN + DOMAIN=$(echo "$DOMAIN" | tr -d '[:space:]') + if [ -z "$DOMAIN" ] || ! echo "$DOMAIN" | grep -qE '\.'; then + echo -e " ${RED}Некорректный домен. Используется google.com${NC}" + DOMAIN="google.com" + fi + else + DOMAIN=${domains[$((d_idx-1))]} + DOMAIN=${DOMAIN:-google.com} + fi echo -e " Домен: ${GREEN}$DOMAIN${NC}" # ── Выбор порта с проверкой занятости ──────────────────────────────────── @@ -302,22 +316,27 @@ menu_install() { local SECRET install_steps=5 install_cur=0 - # Шаг 1: pull образа (если нет) + # Шаг 1: pull образа (всегда проверяем/обновляем) install_cur=$((install_cur+1)); progress_bar $install_cur $install_steps "Загрузка образа mtg..." - if ! docker images --format '{{.Repository}}:{{.Tag}}' | grep -q "nineseconds/mtg:2"; then - spinner_start "Загрузка Docker-образа mtg (первый раз — до 1 мин)..." - docker pull nineseconds/mtg:2 >/dev/null 2>&1 - spinner_stop + spinner_start "Загрузка Docker-образа mtg..." + docker pull nineseconds/mtg:2 >/dev/null 2>&1 + spinner_stop + if ! docker images --format '{{.Repository}}:{{.Tag}}' 2>/dev/null | grep -q "nineseconds/mtg"; then + echo -e " ${RED}✗${NC} Не удалось загрузить образ mtg. Проверьте интернет." + read -p "Нажмите Enter..." + return fi echo -e " ${GREEN}✓${NC} Образ mtg готов" # Шаг 2: генерация secret install_cur=$((install_cur+1)); progress_bar $install_cur $install_steps "Генерация secret..." spinner_start "Генерация secret для $DOMAIN..." - SECRET=$(docker run --rm nineseconds/mtg:2 generate-secret --hex "$DOMAIN" 2>/dev/null) + SECRET=$(docker run --rm nineseconds/mtg:2 generate-secret --hex "$DOMAIN" 2>&1) + local secret_rc=$? spinner_stop - if [ -z "$SECRET" ]; then + if [ $secret_rc -ne 0 ] || [ -z "$SECRET" ]; then echo -e " ${RED}✗${NC} Ошибка генерации secret." + [ -n "$SECRET" ] && echo -e " ${RED}$SECRET${NC}" read -p "Нажмите Enter..." return fi