Files
AlexChard 6937d009d4 Обновить setup_gotelegram.sh
Add full GoTelegram uninstall and hide automatic connection details
2026-08-30 13:53:39 +04:00

163 lines
6.2 KiB
Bash

#!/bin/bash
# --- КОНФИГУРАЦИЯ ---
BINARY_PATH="/usr/local/bin/gotelegram"
# --- ЦВЕТА ---
RED='\033[0;31m'
GREEN='\033[0;32m'
CYAN='\033[0;36m'
YELLOW='\033[1;33m'
MAGENTA='\033[0;35m'
BLUE='\033[0;34m'
NC='\033[0m'
# --- СИСТЕМНЫЕ ПРОВЕРКИ ---
check_root() {
if [ "$EUID" -ne 0 ]; then echo -e "${RED}Ошибка: запустите через sudo!${NC}"; exit 1; fi
}
install_deps() {
if ! command -v docker &> /dev/null; then
curl -fsSL https://get.docker.com | sh
systemctl enable --now docker
fi
if ! command -v qrencode &> /dev/null; then
apt-get update && apt-get install -y qrencode || yum install -y qrencode
fi
cp "$0" "$BINARY_PATH" && chmod +x "$BINARY_PATH"
}
get_ip() {
local ip
ip=$(curl -s -4 --max-time 5 https://api.ipify.org || curl -s -4 --max-time 5 https://icanhazip.com || echo "0.0.0.0")
echo "$ip" | grep -E -o '([0-9]{1,3}\.){3}[0-9]{1,3}' | head -n 1
}
# --- ЗАСТАВКА ---
show_berloga() {
clear
echo -e "${GREEN}"
cat <<'BERLOGA'
██████╗ ███████╗██████╗ ██╗ ██████╗ ██████╗ █████╗
██╔══██╗██╔════╝██╔══██╗██║ ██╔═══██╗██╔════╝ ██╔══██╗
██████╔╝█████╗ ██████╔╝██║ ██║ ██║██║ ███╗███████║
██╔══██╗██╔══╝ ██╔══██╗██║ ██║ ██║██║ ██║██╔══██║
██████╔╝███████╗██║ ██║███████╗╚██████╔╝╚██████╔╝██║ ██║
╚═════╝ ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝
VPS INSTALLERS
BERLOGA
echo -e "${NC}"
read -p "Нажмите [ENTER], чтобы войти в меню управления..."
}
# --- ПАНЕЛЬ ДАННЫХ ---
show_config() {
if ! docker ps | grep -q "mtproto-proxy"; then echo -e "${RED}Прокси не найден!${NC}"; return; fi
SECRET=$(docker inspect mtproto-proxy --format='{{range .Config.Cmd}}{{.}} {{end}}' | awk '{print $NF}')
IP=$(get_ip)
PORT=$(docker inspect mtproto-proxy --format='{{range $p, $conf := .HostConfig.PortBindings}}{{(index $conf 0).HostPort}}{{end}}' 2>/dev/null)
PORT=${PORT:-443}
LINK="tg://proxy?server=$IP&port=$PORT&secret=$SECRET"
echo -e "\n${GREEN}=== ПАНЕЛЬ ДАННЫХ (RU) ===${NC}"
echo -e "IP: $IP | Port: $PORT"
echo -e "Secret: $SECRET"
echo -e "Link: ${BLUE}$LINK${NC}"
qrencode -t ANSIUTF8 "$LINK"
}
# --- УСТАНОВКА ---
menu_install() {
clear
echo -e "${CYAN}--- Выберите домен для маскировки (Fake TLS) ---${NC}"
domains=(
"google.com" "wikipedia.org" "habr.com" "github.com"
"coursera.org" "udemy.com" "medium.com" "stackoverflow.com"
"bbc.com" "cnn.com" "reuters.com" "nytimes.com"
"lenta.ru" "rbc.ru" "ria.ru" "kommersant.ru"
"stepik.org" "duolingo.com" "khanacademy.org" "ted.com"
)
for i in "${!domains[@]}"; do
printf "${YELLOW}%2d)${NC} %-20s " "$((i+1))" "${domains[$i]}"
[[ $(( (i+1) % 2 )) -eq 0 ]] && echo ""
done
read -p "Ваш выбор [1-20]: " d_idx
DOMAIN=${domains[$((d_idx-1))]}
DOMAIN=${DOMAIN:-google.com}
echo -e "\n${CYAN}--- Выберите порт ---${NC}"
echo -e "1) 443 (Рекомендуется)"
echo -e "2) 8443"
echo -e "3) Свой порт"
read -p "Выбор: " p_choice
case $p_choice in
2) PORT=8443 ;;
3) read -p "Введите свой порт: " PORT ;;
*) PORT=443 ;;
esac
echo -e "${YELLOW}[*] Настройка прокси...${NC}"
SECRET=$(docker run --rm nineseconds/mtg:2 generate-secret --hex "$DOMAIN")
docker stop mtproto-proxy &>/dev/null && docker rm mtproto-proxy &>/dev/null
docker run -d --name mtproto-proxy --restart always -p "$PORT":"$PORT" \
nineseconds/mtg:2 simple-run -n 1.1.1.1 -i prefer-ipv4 0.0.0.0:"$PORT" "$SECRET" > /dev/null
clear
echo -e "${GREEN}[OK] GoTelegram установлен и запущен.${NC}"
echo "IP и данные подключения не выводятся автоматически."
echo "Чтобы посмотреть их отдельно, выберите пункт 2 в меню."
read -p "Нажмите Enter..."
}
# --- УДАЛЕНИЕ ---
uninstall_gotelegram() {
echo -e "\n${RED}--- Удаление GoTelegram ---${NC}"
echo "Будут удалены контейнер mtproto-proxy и команда gotelegram."
echo "Docker и другие контейнеры останутся без изменений."
read -p "Продолжить? Введите DELETE: " confirm
if [[ "$confirm" != "DELETE" ]]; then
echo "Отменено."
return
fi
if command -v docker >/dev/null 2>&1; then
docker rm -f mtproto-proxy >/dev/null 2>&1 || true
fi
rm -f "$BINARY_PATH"
echo -e "${GREEN}[OK] GoTelegram удалён.${NC}"
exit 0
}
# --- СТАРТ СКРИПТА ---
check_root
if [[ "${1:-}" == "--uninstall" ]]; then
uninstall_gotelegram
fi
install_deps
show_berloga
while true; do
echo -e "\n${MAGENTA}=== GoTelegram Manager ===${NC}"
echo -e "1) ${GREEN}Установить / Обновить прокси${NC}"
echo -e "2) Показать данные подключения${NC}"
echo -e "3) ${YELLOW}Показать заставку BERLOGA${NC}"
echo -e "4) ${RED}Полностью удалить GoTelegram${NC}"
echo -e "0) Выход${NC}"
read -p "Пункт: " m_idx
case $m_idx in
1) menu_install ;;
2) clear; show_config; read -p "Нажмите Enter..." ;;
3) show_berloga ;;
4) uninstall_gotelegram ;;
0) exit 0 ;;
*) echo "Неверный ввод" ;;
esac
done