✅ Проведено полное тестирование функционала: - Меню жильца (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>
69 lines
2.1 KiB
Bash
Executable file
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 "💡 Туннель закроется автоматически при выходе"
|