commit ecabc4e778d9f4812c6f728fb795d2f3b0154870 Author: AlexChard Date: Sat Aug 29 13:00:45 2026 +0400 Initial BERLOGA GoTelegram MTProxy release diff --git a/README.md b/README.md new file mode 100644 index 0000000..cb33a99 --- /dev/null +++ b/README.md @@ -0,0 +1,43 @@ +# BERLOGA GoTelegram MTProxy + +Отдельный установщик и менеджер Telegram MTProto Proxy на базе Docker. + +![Заставка BERLOGA в терминале](assets/berloga-terminal.svg) + +## Что изменено + +- удалены рекламные ссылки, промокоды и партнёрский QR-код; +- удалён искусственный отсчёт; +- добавлена фирменная заставка `BERLOGA`; +- полезный QR-код со ссылкой подключения к собственному MTProto Proxy сохранён. + +## Установка + +```bash +wget -O setup_gotelegram.sh https://git.chardb.ru/AlexChard/gotelegram-mtproxy-custom/raw/branch/main/setup_gotelegram.sh && chmod +x setup_gotelegram.sh && sudo ./setup_gotelegram.sh +``` + +Повторный запуск менеджера: + +```bash +sudo gotelegram +``` + +## Возможности + +- автоматическая установка Docker и `qrencode`; +- выбор домена Fake TLS; +- выбор стандартного или собственного порта; +- установка и обновление контейнера MTProto Proxy; +- показ IP, порта, секрета, ссылки и QR-кода подключения; +- удаление прокси. + +## Требования и безопасность + +- Linux VPS; +- права `root` или `sudo`; +- открытый выбранный TCP-порт в firewall и панели хостинга. + +Секрет MTProto создаётся непосредственно на VPS и в репозитории не хранится. + +Исходный проект: diff --git a/assets/berloga-terminal.svg b/assets/berloga-terminal.svg new file mode 100644 index 0000000..a09cb7e --- /dev/null +++ b/assets/berloga-terminal.svg @@ -0,0 +1,19 @@ + + Заставка BERLOGA в терминале + Тёмное окно терминала с зелёной блочной надписью BERLOGA. + + + + + + root@berloga:~# ./install.sh + + ██████╗ ███████╗██████╗ ██╗ ██████╗ ██████╗ █████╗ + ██╔══██╗██╔════╝██╔══██╗██║ ██╔═══██╗██╔════╝ ██╔══██╗ + ██████╔╝█████╗ ██████╔╝██║ ██║ ██║██║ ███╗███████║ + ██╔══██╗██╔══╝ ██╔══██╗██║ ██║ ██║██║ ██║██╔══██║ + ██████╔╝███████╗██║ ██║███████╗╚██████╔╝╚██████╔╝██║ ██║ + ╚═════╝ ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ + + VPS INSTALLERS + diff --git a/setup_gotelegram.sh b/setup_gotelegram.sh new file mode 100644 index 0000000..9c84d3e --- /dev/null +++ b/setup_gotelegram.sh @@ -0,0 +1,143 @@ +#!/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 + show_config + read -p "Установка завершена. Нажмите Enter..." +} + +# --- ВЫХОД --- +show_exit() { + clear + show_config + exit 0 +} + +# --- СТАРТ СКРИПТА --- +check_root +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}Удалить прокси${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) docker stop mtproto-proxy && docker rm mtproto-proxy && echo "Удалено" ;; + 0) show_exit ;; + *) echo "Неверный ввод" ;; + esac +done