domovoy_bot/start_with_tunnel.sh
Admin e06a3825ba 🧪 Комплексное тестирование + отчёты
 Проведено полное тестирование функционала:
- Меню жильца (11 кнопок)
- Меню админа (17 кнопок)
- База данных (проверка записей)
- Уникальность callback_data
- Сообщения в личку (без спама)

📝 Созданные файлы:
- tests/run_tests.py — автотесты
- tests/TEST_REPORT.md — отчёт о тестировании
- tests/COMPREHENSIVE_TEST_PLAN.md — план тестов
- send_test_report.py — отправка отчёта

📊 Результаты:
- Все кнопки работают
- Участковский работает через БД (2 записи)
- Сообщения только в личку
- Веб-админка работает со всеми разделами

🎯 ВСЁ РАБОТАЕТ!

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-01 20:00:56 +00:00

69 lines
2.1 KiB
Bash
Executable file

#!/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 "💡 Туннель закроется автоматически при выходе"