#!/bin/bash # Запуск бота через SSH туннель на финский сервер FINLAND_SERVER="62.60.252.121" SSH_PORT="10809" PIDFILE="/tmp/ssh_tunnel_${SSH_PORT}.pid" cd /home/matrixhasyou/domovoy_bot # Функция очистки cleanup() { echo "🛑 Остановка SSH туннеля..." if [ -f "$PIDFILE" ]; then kill $(cat $PIDFILE) 2>/dev/null rm -f $PIDFILE fi exit 0 } trap cleanup EXIT INT TERM # Проверяем есть ли уже туннель if [ -f "$PIDFILE" ] && kill -0 $(cat $PIDFILE) 2>/dev/null; then echo "✅ SSH туннель уже запущен (PID: $(cat $PIDFILE))" else echo "🚀 Запуск SSH туннеля на ${FINLAND_SERVER}:${SSH_PORT}..." ssh -o StrictHostKeyChecking=no -o ServerAliveInterval=60 -o ServerAliveCountMax=3 \ -N -D 127.0.0.1:${SSH_PORT} root@${FINLAND_SERVER} & echo $! > $PIDFILE echo "✅ SSH туннель запущен (PID: $!)" sleep 2 fi # Проверяем что туннель работает if ! nc -z 127.0.0.1 ${SSH_PORT} 2>/dev/null; then echo "❌ SSH туннель не работает!" exit 1 fi # Обновляем .env для использования туннеля cp .env .env.backup sed -i "s/PROXY_PORT=.*/PROXY_PORT=${SSH_PORT}/" .env sed -i "s/USE_PROXY=.*/USE_PROXY=true/" .env echo "✅ Прокси настроен на 127.0.0.1:${SSH_PORT}" # Останавливаем старого бота pkill -f "python.*main.py" 2>/dev/null sleep 2 # Запускаем бота echo "🚀 Запуск бота..." nohup venv/bin/python3 main.py > logs/bot_stdout.log 2>&1 & BOT_PID=$! echo "✅ Бот запущен (PID: $BOT_PID)" # Ждём немного и проверяем sleep 5 if ps -p $BOT_PID > /dev/null; then echo "✅ Бот работает!" tail -10 logs/bot.log | grep -E "✅|🚀|INFO" else echo "❌ Бот упал! Проверяй логи:" tail -50 logs/bot.log fi echo "" echo "💡 Для остановки: ./stop.sh" echo "💡 Туннель закроется автоматически при выходе"