From d70e0460358cc601d0317b027315a090afd45402 Mon Sep 17 00:00:00 2001 From: anten-ka Date: Thu, 9 Apr 2026 11:15:43 +0300 Subject: [PATCH] add bootstrap.sh installer --- bootstrap.sh | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100755 bootstrap.sh diff --git a/bootstrap.sh b/bootstrap.sh new file mode 100755 index 0000000..5734fe2 --- /dev/null +++ b/bootstrap.sh @@ -0,0 +1,115 @@ +#!/bin/bash +# GoTelegram Pro — Bootstrap installer for private repo +# Downloads all files and launches install.sh + +set -euo pipefail + +REPO="anten-ka/gotelegram_pro" +BRANCH="test" +PAT="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" +INSTALL_DIR="/opt/gotelegram" +API="https://api.github.com/repos/${REPO}/contents" + +RED='\033[0;31m' +GREEN='\033[0;32m' +CYAN='\033[0;36m' +YELLOW='\033[1;33m' +NC='\033[0m' +BOLD='\033[1m' + +echo "" +echo -e " ${YELLOW}╔══════════════════════════════════════════════════════╗${NC}" +echo -e " ${YELLOW}║${NC} ${BOLD}GoTelegram Pro — Установка${NC} ${YELLOW}║${NC}" +echo -e " ${YELLOW}║${NC} ${YELLOW}║${NC}" +echo -e " ${YELLOW}║${NC} MTProxy менеджер с Telegram-ботом ${YELLOW}║${NC}" +echo -e " ${YELLOW}║${NC} Stealth-режим, 1800+ шаблонов сайтов ${YELLOW}║${NC}" +echo -e " ${YELLOW}╚══════════════════════════════════════════════════════╝${NC}" +echo "" + +# Check root +if [ "$(id -u)" -ne 0 ]; then + echo -e " ${RED}✗${NC} Запустите от root: ${CYAN}sudo bash bootstrap.sh${NC}" + exit 1 +fi + +# Check dependencies +for cmd in curl jq; do + if ! command -v "$cmd" &>/dev/null; then + echo -e " ${CYAN}↻${NC} Установка $cmd..." + apt-get update -qq && apt-get install -y -qq "$cmd" >/dev/null 2>&1 + fi +done + +download_file() { + local remote_path="$1" + local local_path="$2" + local dir + dir=$(dirname "$local_path") + mkdir -p "$dir" + + local http_code + http_code=$(curl -sL -w "%{http_code}" -o "$local_path" \ + -H "Authorization: token ${PAT}" \ + -H "Accept: application/vnd.github.raw" \ + "${API}/${remote_path}?ref=${BRANCH}") + + if [ "$http_code" != "200" ]; then + echo -e " ${RED}✗${NC} Ошибка загрузки ${remote_path} (HTTP ${http_code})" + return 1 + fi + return 0 +} + +# File list +FILES=( + "install.sh" + "install_gotelegram_bot.sh" + "templates_catalog.json" + "lib/common.sh" + "lib/telemt.sh" + "lib/telemt_config.sh" + "lib/backup.sh" + "lib/website.sh" + "lib/templates_catalog.sh" + "lib/stats.sh" + "gotelegram-bot/bot.py" + "gotelegram-bot/config.example.env" + "gotelegram-bot/requirements.txt" + "gotelegram-bot/README.md" +) + +echo -e " ${CYAN}↻${NC} Загрузка файлов в ${INSTALL_DIR}..." +mkdir -p "${INSTALL_DIR}/lib" "${INSTALL_DIR}/gotelegram-bot" + +failed=0 +for f in "${FILES[@]}"; do + if download_file "$f" "${INSTALL_DIR}/${f}"; then + echo -e " ${GREEN}✓${NC} ${f}" + else + failed=$((failed + 1)) + fi +done + +if [ "$failed" -gt 0 ]; then + echo "" + echo -e " ${RED}✗${NC} Не удалось загрузить ${failed} файл(ов)" + echo -e " ${YELLOW}Проверьте токен доступа и подключение к сети${NC}" + exit 1 +fi + +# Fix permissions and line endings +echo -e " ${CYAN}↻${NC} Настройка прав..." +chmod +x "${INSTALL_DIR}/install.sh" "${INSTALL_DIR}/install_gotelegram_bot.sh" +chmod +x "${INSTALL_DIR}"/lib/*.sh +sed -i 's/\r$//' "${INSTALL_DIR}/install.sh" "${INSTALL_DIR}/install_gotelegram_bot.sh" "${INSTALL_DIR}"/lib/*.sh 2>/dev/null + +# Create symlink +ln -sf "${INSTALL_DIR}/install.sh" /usr/local/bin/gotelegram +echo -e " ${GREEN}✓${NC} Команда ${CYAN}gotelegram${NC} доступна" + +echo "" +echo -e " ${GREEN}✓${NC} Установка завершена! Запуск..." +echo "" + +# Launch +exec bash "${INSTALL_DIR}/install.sh"