#!/usr/bin/env bash # ============================================================================== # Agent Push-Deploy for Pelmeni Shield VPN # Развертывание защищенного VPN-стека на удаленный VPS без открытия локального Git наружу. # ============================================================================== set -euo pipefail REPO_DIR="$(cd "$(dirname "$0")/.." && pwd)" if [[ $# -lt 2 ]]; then echo "Использование: $0 [sub_token] [certbot_email]" echo "Пример: $0 root@176.96.241.196 endpoint.pelmeni-club.com my_secret_token_123" exit 1 fi VPS_TARGET="$1" DOMAIN="$2" SUB_TOKEN="${3:-$(openssl rand -hex 12)}" CERTBOT_EMAIL="${4:-admin@${DOMAIN}}" echo "🚀 === Запуск агентского Push-деплоя Pelmeni Shield ===" echo "🎯 Целевой VPS: ${VPS_TARGET}" echo "🌐 Домен: ${DOMAIN}" echo "🔑 Токен подписок: ${SUB_TOKEN}" echo "" echo "📦 1. Создание каталога на целевом VPS (/opt/pelmeni-shield-vpn)..." ssh "${VPS_TARGET}" "mkdir -p /opt/pelmeni-shield-vpn" echo "🚚 2. Передача проекта на VPS через защищенный SSH-stream..." # Исключаем локальные базы, сертификаты и временные файлы при копировании шаблона tar --exclude='.git' \ --exclude='3x-ui/*.db' \ --exclude='certbot/certs/*' \ --exclude='certbot/www/*' \ --exclude='.env' \ -C "${REPO_DIR}" -czf - . | ssh "${VPS_TARGET}" "tar -xzf - -C /opt/pelmeni-shield-vpn" echo "⚙️ 3. Генерация .env на целевом VPS..." ssh "${VPS_TARGET}" bash -c "cat << 'EOF' > /opt/pelmeni-shield-vpn/.env DOMAIN=${DOMAIN} CERTBOT_EMAIL=${CERTBOT_EMAIL} SUB_TOKEN=${SUB_TOKEN} TELEGRAM_BOT_TOKEN=8065539545:AAECBnyjinUVVGv3vhtoWZ99tUmnT9sze-k TELEGRAM_CHAT_ID=-1004488599816 TELEGRAM_TOPIC_ID=18 EOF" echo "🛡️ 4. Запуск скрипта инициализации на целевом VPS..." ssh "${VPS_TARGET}" "chmod +x /opt/pelmeni-shield-vpn/scripts/*.sh && bash /opt/pelmeni-shield-vpn/scripts/init.sh" echo "" echo "==========================================================================" echo "🎉 СТЕК PELMENI SHIELD УСПЕШНО РАЗВЕРНУТ НА ${VPS_TARGET}!" echo "==========================================================================" echo "🥟 Сайт любителей пельменей: https://${DOMAIN}/" echo "🥟 Секретные подписки: https://${DOMAIN}/api/v1/recipes/secret_${SUB_TOKEN}/" echo "" echo "👉 Безопасный вход в 3X-UI через SSH-туннель:" echo " ssh -L 2053:127.0.0.1:2053 ${VPS_TARGET}" echo " URL в браузере: http://localhost:2053" echo "=========================================================================="