From 55134f4864547589d5d2de415fbc3ac0c3caf77f Mon Sep 17 00:00:00 2001 From: anten-ka Date: Mon, 6 Apr 2026 21:06:28 +0300 Subject: [PATCH] =?UTF-8?q?v2.2.1:=20clean=20branch=20=E2=80=94=20only=20v?= =?UTF-8?q?2.2.1=20code=20with=2011=20security=20fixes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 18 ------ IMPROVEMENTS.md | 99 ---------------------------- INSTALL_LINK.md | 80 ----------------------- INSTALL_PRIVATE.md | 146 ------------------------------------------ PUSH_README.txt | 34 ---------- bootstrap_install.sh | 65 ------------------- install_by_key.sh | 22 ------- install_one_liner.txt | 5 -- push_to_github.bat | 54 ---------------- 9 files changed, 523 deletions(-) delete mode 100644 .gitignore delete mode 100644 IMPROVEMENTS.md delete mode 100644 INSTALL_LINK.md delete mode 100644 INSTALL_PRIVATE.md delete mode 100644 PUSH_README.txt delete mode 100644 bootstrap_install.sh delete mode 100644 install_by_key.sh delete mode 100644 install_one_liner.txt delete mode 100644 push_to_github.bat diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 0fd7284..0000000 --- a/.gitignore +++ /dev/null @@ -1,18 +0,0 @@ -# Секреты и конфиг с токенами -.env -*.env.local -config.local.env - -# Python -__pycache__/ -*.py[cod] -venv/ -.venv/ -*.egg-info/ -.eggs/ - -# Временные и системные -.DS_Store -Thumbs.db -*.log -*.tmp diff --git a/IMPROVEMENTS.md b/IMPROVEMENTS.md deleted file mode 100644 index e691080..0000000 --- a/IMPROVEMENTS.md +++ /dev/null @@ -1,99 +0,0 @@ -# Предложения по улучшению GoTelegram MTProxy - -## Анализ текущего скрипта - -Скрипт уже хорошо структурирован: проверка root, установка зависимостей, меню, работа с Docker (nineseconds/mtg). Ниже — конкретные улучшения. - ---- - -## 1. Безопасность и надёжность - -### 1.1 Валидация порта -- **Сейчас:** при выборе "свой порт" можно ввести нечисло или порт вне диапазона. -- **Предложение:** проверять число в диапазоне 1–65535 и повторять запрос при ошибке. - -```bash -while true; do - read -p "Введите порт (1-65535): " PORT - [[ "$PORT" =~ ^[0-9]+$ ]] && (( PORT >= 1 && PORT <= 65535 )) && break - echo "Неверный порт." -done -``` - -### 1.2 Проверка занятости порта -- Перед запуском контейнера проверять, что порт свободен (например, `ss -tlnp | grep -q ":$PORT "`), и выводить понятное сообщение, если порт занят. - -### 1.3 Остановка только своего контейнера -- В пункте 4 (удаление) использовать `docker stop mtproto-proxy 2>/dev/null; docker rm mtproto-proxy 2>/dev/null` и проверять код возврата, чтобы не путать с отсутствием контейнера. - ---- - -## 2. Функциональность - -### 2.1 Свой домен для Fake TLS -- В списке доменов добавить пункт "Свой домен" с вводом произвольной строки и базовой проверкой (например, наличие точки, длина). - -### 2.2 Рестарт прокси -- Отдельный пункт меню "Перезапустить прокси" без пересоздания контейнера: `docker restart mtproto-proxy`. - -### 2.3 Логи -- Пункт "Показать логи" (последние N строк): `docker logs --tail 50 mtproto-proxy`. - -### 2.4 Обновление образа mtg -- Пункт "Обновить образ mtg": `docker pull nineseconds/mtg:2`, затем предложить пересоздать прокси с теми же параметрами (сохранить secret/порт из текущего контейнера). - -### 2.5 Сохранение конфигурации -- Сохранять выбранные домен и порт в файл (например, `/etc/gotelegram.conf` или `~/.gotelegram`), чтобы при обновлении/переустановке не вводить заново. - ---- - -## 3. Удобство и совместимость - -### 3.1 Поддержка RHEL/CentOS -- В `install_deps` для установки `qrencode` использовать `command -v apt-get` / `command -v yum` или `dnf`, а не только `apt-get` и `yum`, чтобы корректно работало на RHEL 8+. - -### 3.2 Неинтерактивный режим -- Поддержка аргументов для автоматической установки, например: - `./setup_gotelegram.sh --domain wikipedia.org --port 443 --no-promo` -- Полезно для скриптов развёртывания и для бота. - -### 3.3 Отключение промо -- Переменная окружения или флаг, например `SKIP_PROMO=1` или `--no-promo`, чтобы при первом запуске не показывать промо (для автоматизации и бота). - ---- - -## 4. Вывод и интерфейс - -### 4.1 Текстовый вывод ссылки для копирования -- В `show_config` выводить ссылку в одну строку без переносов, чтобы удобно копировать из терминала и отправлять в бота/чат. - -### 4.2 Сообщение при отсутствии прокси -- В пункте 2 при отсутствии контейнера не только "Прокси не найден!", но и подсказка: "Выберите пункт 1 для установки." - -### 4.3 Версия скрипта -- В начале или в меню выводить версию (например, из переменной `VERSION="1.0"`), чтобы при обновлениях было проще отлаживать. - ---- - -## 5. Мелкие правки - -### 5.1 Заголовок промо -- В рамке промо текст "ХОСТИНГ СО СКИДКОЙ..." разной длины — выровнять по ширине рамки или центрировать, чтобы рамка не "прыгала". - -### 5.2 Имя контейнера -- Сейчас жёстко `mtproto-proxy`. Имеет смысл вынести в переменную в начале скрипта (например, `CONTAINER_NAME="mtproto-proxy"`), чтобы при необходимости можно было менять в одном месте. - -### 5.3 Таймауты curl -- В `get_ip` уже есть `--max-time 5`. Можно добавить резервный источник (например, `ifconfig.me` или `ipecho.net/plain`) на случай недоступности основных. - ---- - -## Приоритеты внедрения - -| Приоритет | Улучшение | -|-----------|-----------| -| Высокий | Валидация порта, проверка занятости порта, неинтерактивный режим / отключение промо | -| Средний | Свой домен, рестарт, логи, сохранение конфигурации | -| Низкий | Версия скрипта, выравнивание промо, дополнительные источники IP | - -Эти изменения улучшат устойчивость скрипта в автоматизации и при использовании через Telegram-бота. diff --git a/INSTALL_LINK.md b/INSTALL_LINK.md deleted file mode 100644 index 2264eba..0000000 --- a/INSTALL_LINK.md +++ /dev/null @@ -1,80 +0,0 @@ -# Установка по ссылке (ключ в команде) - -Чтобы клиент или вы могли ставить бота **одной командой**, в неё подставляется ключ (GitHub Personal Access Token). «Ссылка» = эта одна строка, которую копируют и вставляют в терминал сервера. - ---- - -## 1. Одна команда с ключом (готовый шаблон) - -Подставьте свой **GITHUB_TOKEN** (один раз) в команду ниже и сохраните получившуюся строку. Её можно: -- отправить клиенту (пусть вставит в SSH-сессию и запустит); -- сохранить у себя как «ссылку для установки». - -**Шаблон (замените `ghp_ВАШ_ТОКЕН` на свой токен):** - -```bash -GITHUB_TOKEN=ghp_ВАШ_ТОКЕН bash -c 'git clone --depth 1 "https://${GITHUB_TOKEN}@github.com/anten-ka/gotelegram_pro.git" /tmp/gp && sudo -E /tmp/gp/install_gotelegram_bot.sh' -``` - -**Важно:** переменная `GITHUB_TOKEN` задаётся перед `bash -c`, поэтому во внутренней команде `${GITHUB_TOKEN}` подставится на сервере при выполнении. Токен попадёт в `git clone` и в установочный скрипт. - ---- - -## 2. Через скрипт из репозитория (то же самое, но через raw-ссылку) - -Если репозиторий **публичный**, можно дать такую «ссылку» (подставьте свой токен): - -```bash -GITHUB_TOKEN=ghp_ВАШ_ТОКЕН curl -sL https://raw.githubusercontent.com/anten-ka/gotelegram_pro/main/install_by_key.sh | sudo -E bash -``` - -Если репо **приватный**, raw-файл без доступа не откроется, поэтому используйте вариант 1 выше (клонирование по токену в одной команде). - ---- - -## 3. Короткая «ссылка» через публичный Gist (приватный репо) - -Чтобы команда была короче и не светить репо, можно выложить **только** маленький скрипт установки в публичный Gist. Тогда «установка по ссылке» = одна команда с ключом, а скрипт берётся по публичной ссылке. - -### Шаг 1: создать Gist - -1. Перейдите на https://gist.github.com -2. Создайте новый Gist (публичный). -3. Имя файла: `install_gotelegram_pro.sh` -4. Вставьте содержимое (подставьте свой репо, если другой): - -```bash -#!/bin/bash -set -e -T="${GITHUB_TOKEN:?Задайте GITHUB_TOKEN}" -R="https://${T}@github.com/anten-ka/gotelegram_pro.git" -D="/tmp/gp_$$" -trap "rm -rf $D" EXIT -git clone --depth 1 --branch main "$R" "$D" -sudo -E "$D/install_gotelegram_bot.sh" -``` - -5. Нажмите **Create public gist** и скопируйте **Raw**-ссылку на файл (например `https://gist.githubusercontent.com/USER/ID/raw/xxx/install_gotelegram_pro.sh`). - -### Шаг 2: «ссылка» для установки - -Вы даёте клиенту одну команду (вместо `ghp_ВАШ_ТОКЕН` — свой токен, вместо `ССЫЛКА_НА_RAW_GIST` — ссылку из шага 1): - -```bash -GITHUB_TOKEN=ghp_ВАШ_ТОКЕН curl -sL ССЫЛКА_НА_RAW_GIST | sudo -E bash -``` - -Пример: - -```bash -GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxx curl -sL https://gist.githubusercontent.com/anten-ka/xxxxxxxx/raw/xxx/install_gotelegram_pro.sh | sudo -E bash -``` - -Клиент только копирует эту строку, вставляет в терминал сервера и запускает — установка идёт по ключу из команды. - ---- - -## 4. Безопасность - -- Токен в команде виден в истории shell на сервере. Для разовой установки это допустимо; после установки можно отозвать токен или использовать токен с коротким сроком жизни. -- Не публикуйте готовую команду с реальным токеном в открытый доступ (сайт, чат, репо). Делитесь ею только с тем, кому доверяете установку на сервер. diff --git a/INSTALL_PRIVATE.md b/INSTALL_PRIVATE.md deleted file mode 100644 index ebdf7ff..0000000 --- a/INSTALL_PRIVATE.md +++ /dev/null @@ -1,146 +0,0 @@ -# Установка из закрытого GitHub-репозитория (по ключу) - -Инструкция для размещения проекта в **приватном** репозитории и установки на сервер **по SSH-ключу** или **по токену (PAT)**. - -**Установка одной командой с ключом («ключ в ссылке»):** см. **[INSTALL_LINK.md](INSTALL_LINK.md)** — одна строка с подставленным токеном для копирования в терминал. - ---- - -## 1. Размещение в закрытом репозитории - -### 1.1 Создать приватный репозиторий - -1. GitHub → **New repository**. -2. Имя, например: `gotelegram_pro`. -3. Выберите **Private**. -4. Не добавляйте README, .gitignore и лицензию, если пушите существующий проект. - -### 1.2 Загрузить код (с локальной машины) - -```bash -cd "Скрипт mtproxy" -git init -git remote add origin git@github.com:ВАШ_ЛОГИН/gotelegram_pro.git -git add . -git commit -m "GoTelegram MTProxy + bot" -git branch -M main -git push -u origin main -``` - -Если репо уже есть и вы только добавляете remote: - -```bash -git remote add origin git@github.com:ВАШ_ЛОГИН/gotelegram_pro.git -git push -u origin main -``` - -### 1.3 Настроить доступ «по ключу» - -Доступ к приватному репо с сервера возможен двумя способами. - -| Способ | Когда использовать | -|--------|--------------------| -| **SSH-ключ** | На сервере уже настроен `ssh-agent` и ключ добавлен в GitHub (Deploy key или ваш SSH key). | -| **Personal Access Token (PAT)** | Удобно для одноразовой установки или CI; токен передаётся в переменной окружения. | - ---- - -## 2. Установка по SSH-ключу - -### 2.1 Добавить SSH-ключ в GitHub - -**На сервере** (или с машины, с которой будете клонировать): - -```bash -# Сгенерировать ключ (если ещё нет) -ssh-keygen -t ed25519 -C "server-gotelegram" -f ~/.ssh/gotelegram_deploy -N "" -cat ~/.ssh/gotelegram_deploy.pub -``` - -- **Личный репо:** GitHub → **Settings → SSH and GPG keys → New SSH key** → вставить содержимое `.pub`. -- **Организация:** добавить ключ как **Deploy key** в настройках репозитория (Read-only достаточно). - -Проверка: - -```bash -ssh -T git@github.com -``` - -### 2.2 Клонировать и установить - -**Вариант А:** скопируйте `bootstrap_install.sh` на сервер (через scp или вставьте содержимое в файл), затем: - -```bash -chmod +x bootstrap_install.sh -GIT_REPO_SSH="git@github.com:ВАШ_ЛОГИН/gotelegram_pro.git" sudo bash bootstrap_install.sh -``` - -**Вариант Б:** клонировать репо вручную и запустить установку: - -```bash -git clone git@github.com:ВАШ_ЛОГИН/gotelegram_pro.git /tmp/gotelegram_pro -sudo /tmp/gotelegram_pro/install_gotelegram_bot.sh -``` - ---- - -## 3. Установка по токену (PAT) - -### 3.1 Создать Personal Access Token - -1. GitHub → **Settings → Developer settings → Personal access tokens**. -2. **Tokens (classic)** → **Generate new token**. -3. Права: минимум **repo** (полный доступ к приватным репо). -4. Скопировать токен (один раз показывается). - -### 3.2 Установка одной командой (bootstrap) - -Скопируйте **bootstrap_install.sh** на сервер (scp или создайте файл и вставьте содержимое из репо). Затем: - -```bash -# Подставьте свой токен и репо -export GITHUB_TOKEN="ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -export GIT_REPO_HTTPS="https://github.com/ВАШ_ЛОГИН/gotelegram_pro.git" -sudo -E bash bootstrap_install.sh -``` - -`-E` сохраняет переменные окружения (в т.ч. `GITHUB_TOKEN`) при sudo. - -Вариант без экспорта (токен в истории не сохраняйте в продакшене): - -```bash -GITHUB_TOKEN=ghp_xxx GIT_REPO_HTTPS=https://github.com/USER/gotelegram_pro.git sudo -E bash bootstrap_install.sh -``` - -### 3.3 Установка через install_gotelegram_bot.sh - -Если скрипт **install_gotelegram_bot.sh** уже лежит на сервере (скопирован из репо), но папки **gotelegram-bot** рядом нет, скрипт сам попытается клонировать репо по токену: - -```bash -export GITHUB_TOKEN="ghp_xxxxxxxxxxxx" -export GOTETELEGRAM_BOT_REPO="https://github.com/ВАШ_ЛОГИН/gotelegram_pro" -sudo -E ./install_gotelegram_bot.sh -``` - -Токен в процессе установки **не сохраняется** на диск, только используется для `git clone`. - ---- - -## 4. Безопасность - -- **SSH:** используйте отдельный ключ (Deploy key) с доступом только к этому репо и при необходимости только на чтение. -- **PAT:** не коммитьте токен в репо и не оставляйте в истории shell. Для повторных установок лучше SSH или новый токен. -- После установки можно удалить клонированную папку: `rm -rf /tmp/gotelegram_pro*`. - ---- - -## 5. Краткая шпаргалка - -| Задача | Команда | -|--------|--------| -| Установка по SSH (репо уже клонирован) | `sudo ./install_gotelegram_bot.sh` | -| Установка по SSH (bootstrap) | `GIT_REPO_SSH=git@github.com:USER/REPO.git sudo bash bootstrap_install.sh` | -| Установка по токену (bootstrap) | `GITHUB_TOKEN=ghp_xxx GIT_REPO_HTTPS=https://github.com/USER/REPO.git sudo -E bash bootstrap_install.sh` | -| Установка по токену (только install-скрипт) | `GITHUB_TOKEN=ghp_xxx sudo -E ./install_gotelegram_bot.sh` | - -Вместо `USER/REPO` подставьте свой логин и имя репозитория. diff --git a/PUSH_README.txt b/PUSH_README.txt deleted file mode 100644 index e0c90b0..0000000 --- a/PUSH_README.txt +++ /dev/null @@ -1,34 +0,0 @@ -═══════════════════════════════════════════════════════════════ - Как выложить проект в GitHub (ключ давать никому не нужно) -═══════════════════════════════════════════════════════════════ - -1. Создайте репозиторий на GitHub - • Откройте: https://github.com/new - • Repository name: gotelegram_pro - • Выберите Private (или Public) - • НЕ добавляйте README, .gitignore, License — нажмите Create repository - -2. Настройте доступ к GitHub с этого компьютера (один раз) - - Вариант А — по SSH (удобно навсегда): - • Установите Git: https://git-scm.com/download/win - • Создайте ключ: в терминале (Git Bash или PowerShell): - ssh-keygen -t ed25519 -C "your@email" -f "%USERPROFILE%\.ssh\id_ed25519" -N "" - • Скопируйте публичный ключ в буфер: - type %USERPROFILE%\.ssh\id_ed25519.pub - • GitHub → Settings → SSH and GPG keys → New SSH key → вставьте ключ - • Проверка: ssh -T git@github.com - - Вариант Б — по токену (разовый или если не хотите SSH): - • GitHub → Settings → Developer settings → Personal access tokens - • Generate new token (classic), право: repo - • Скопируйте токен (ghp_...) - • При первом push Git спросит логин и пароль — в пароль вставьте этот токен - • Или: git remote set-url origin https://ВАШ_ТОКЕН@github.com/anten-ka/gotelegram_pro.git - -3. Запустите выкладку - • Дважды щёлкните: push_to_github.bat - • Подтвердите отправку (y) - • Если всё настроено — код уйдёт в репо без ввода ключа в чат - -Ключ или токен нужны только на вашем компьютере в настройках Git — никому (и ни в какой чат) их передавать не нужно. diff --git a/bootstrap_install.sh b/bootstrap_install.sh deleted file mode 100644 index d60d42a..0000000 --- a/bootstrap_install.sh +++ /dev/null @@ -1,65 +0,0 @@ -#!/bin/bash -# Bootstrap: клонирует приватный репозиторий (по SSH или по токену) и запускает установку. -# Использование: -# По SSH-ключу: GIT_REPO_SSH=git@github.com:USER/REPO.git bash bootstrap_install.sh -# По токену: GITHUB_TOKEN=ghp_xxx GIT_REPO_HTTPS=https://github.com/USER/REPO.git bash bootstrap_install.sh -# Или задайте репо по умолчанию ниже и запустите: sudo bash bootstrap_install.sh - -set -e -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -NC='\033[0m' - -# Репозиторий по умолчанию (подставьте свой) -REPO_SSH="${GIT_REPO_SSH:-git@github.com:anten-ka/gotelegram_pro.git}" -REPO_HTTPS="${GIT_REPO_HTTPS:-https://github.com/anten-ka/gotelegram_pro.git}" -BRANCH="${GIT_BRANCH:-main}" -CLONE_DIR="/tmp/gotelegram_pro_install_$$" - -cleanup() { rm -rf "$CLONE_DIR"; } -trap cleanup EXIT - -echo -e "${GREEN}[*] Установка GoTelegram Bot из приватного репозитория${NC}" - -if ! command -v git &>/dev/null; then - echo -e "${YELLOW}[*] Установка git...${NC}" - if command -v apt-get &>/dev/null; then - apt-get update && apt-get install -y git - elif command -v dnf &>/dev/null; then - dnf install -y git - elif command -v yum &>/dev/null; then - yum install -y git - else - echo -e "${RED}Установите git вручную.${NC}" - exit 1 - fi -fi - -if [ -n "$GITHUB_TOKEN" ]; then - echo -e "${GREEN}[*] Клонирование по токену (HTTPS)...${NC}" - # Подставляем токен в URL для доступа к приватному репо - if [[ "$REPO_HTTPS" == https://github.com/* ]]; then - CLONE_URL="https://${GITHUB_TOKEN}@github.com/${REPO_HTTPS#https://github.com/}" - else - CLONE_URL="$REPO_HTTPS" - fi - git clone --depth 1 --branch "$BRANCH" "$CLONE_URL" "$CLONE_DIR" -elif [ -n "$GIT_REPO_SSH" ]; then - echo -e "${GREEN}[*] Клонирование по SSH...${NC}" - git clone --depth 1 --branch "$BRANCH" "$GIT_REPO_SSH" "$CLONE_DIR" -else - echo -e "${GREEN}[*] Клонирование по SSH (ключ по умолчанию)...${NC}" - git clone --depth 1 --branch "$BRANCH" "$REPO_SSH" "$CLONE_DIR" -fi - -if [ ! -f "$CLONE_DIR/install_gotelegram_bot.sh" ]; then - echo -e "${RED}В репозитории не найден install_gotelegram_bot.sh${NC}" - exit 1 -fi - -chmod +x "$CLONE_DIR/install_gotelegram_bot.sh" -# Передаём токен в установочный скрипт, если использовали HTTPS (для совместимости) -export GITHUB_TOKEN -echo -e "${GREEN}[*] Запуск установки...${NC}" -exec sudo "$CLONE_DIR/install_gotelegram_bot.sh" diff --git a/install_by_key.sh b/install_by_key.sh deleted file mode 100644 index ca16caa..0000000 --- a/install_by_key.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash -# Установка по ключу «в ссылке»: одна команда с токеном. -# Вариант 1 — подставьте свой GITHUB_TOKEN в команду и дайте её клиенту: -# GITHUB_TOKEN=ghp_ВАШ_ТОКЕН bash -c 'curl -sL https://raw.githubusercontent.com/anten-ka/gotelegram_pro/main/install_by_key.sh | sudo -E bash' -# Вариант 2 — если этот файл выложен в публичный Gist, «ссылка» будет короче (см. INSTALL_LINK.md). - -set -e -REPO="${GOTETELEGRAM_REPO:-https://github.com/anten-ka/gotelegram_pro.git}" -BRANCH="${GIT_BRANCH:-main}" -DIR="/tmp/gotelegram_pro_$$" -trap "rm -rf $DIR" EXIT - -if [ -z "$GITHUB_TOKEN" ]; then - echo "Задайте GITHUB_TOKEN. Пример:" - echo " GITHUB_TOKEN=ghp_xxx curl -sL ВАША_ССЫЛКА | sudo -E bash" - exit 1 -fi - -echo "[*] Клонирование репозитория..." -git clone --depth 1 --branch "$BRANCH" "https://${GITHUB_TOKEN}@${REPO#https://}" "$DIR" -echo "[*] Запуск установки..." -exec sudo -E "$DIR/install_gotelegram_bot.sh" diff --git a/install_one_liner.txt b/install_one_liner.txt deleted file mode 100644 index 6cc9fd4..0000000 --- a/install_one_liner.txt +++ /dev/null @@ -1,5 +0,0 @@ -# Готовая ссылка в формате kaskad -# Замените YOUR_GITHUB_TOKEN на свой токен (https://github.com/settings/tokens, право repo) -# Токен нужен дважды: в curl (скачать скрипт) и в конце (чтобы скрипт скачал файлы бота из приватного репо). - -curl -sL -H "Authorization: token YOUR_GITHUB_TOKEN" https://raw.githubusercontent.com/anten-ka/gotelegram_pro/main/install.sh -o /usr/local/bin/gotelegram && chmod +x /usr/local/bin/gotelegram && systemctl restart gotelegram-bot 2>/dev/null; gotelegram YOUR_GITHUB_TOKEN diff --git a/push_to_github.bat b/push_to_github.bat deleted file mode 100644 index e232da9..0000000 --- a/push_to_github.bat +++ /dev/null @@ -1,54 +0,0 @@ -@echo off -chcp 65001 >nul -setlocal -cd /d "%~dp0" - -set REMOTE=git@github.com:anten-ka/gotelegram_pro.git -set BRANCH=main - -echo [*] Репозиторий: https://github.com/anten-ka/gotelegram_pro -echo [*] Папка: %CD% -echo. - -where git >nul 2>nul -if errorlevel 1 ( - echo Ошибка: git не найден. Установите Git for Windows. - pause - exit /b 1 -) - -if not exist ".git" ( - echo [*] Инициализация репозитория... - git init -) - -git remote remove origin 2>nul -git remote add origin %REMOTE% -git branch -M %BRANCH% -git add . -git status - -set /p CONFIRM="Закоммитить и отправить на GitHub? (y/n): " -if /i not "%CONFIRM%"=="y" ( - echo Отменено. - pause - exit /b 0 -) - -git commit -m "GoTelegram MTProxy + bot (gotelegram_pro)" 2>nul || git commit --allow-empty -m "Update" -echo [*] Отправка на origin/%BRANCH%... -git push -u origin %BRANCH% - -if errorlevel 1 ( - echo. - echo Не удалось отправить. Проверьте: - echo 1. Репо создан на GitHub: https://github.com/anten-ka/gotelegram_pro - echo 2. Доступ по SSH: ssh -T git@github.com - echo 3. Или настройте токен: git remote set-url origin https://ВАШ_ТОКЕН@github.com/anten-ka/gotelegram_pro.git - pause - exit /b 1 -) - -echo. -echo Готово: https://github.com/anten-ka/gotelegram_pro -pause