62 lines
2.9 KiB
Bash
Executable file
62 lines
2.9 KiB
Bash
Executable file
#!/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 <user@vps_ip> <domain> [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}/<subId>"
|
||
echo ""
|
||
echo "👉 Безопасный вход в 3X-UI через SSH-туннель:"
|
||
echo " ssh -L 2053:127.0.0.1:2053 ${VPS_TARGET}"
|
||
echo " URL в браузере: http://localhost:2053"
|
||
echo "=========================================================================="
|