✅ Проведено полное тестирование функционала: - Меню жильца (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>
48 lines
1.3 KiB
Bash
Executable file
48 lines
1.3 KiB
Bash
Executable file
#!/bin/bash
|
|
# Автозапуск бота через SSH туннель
|
|
|
|
FINLAND_SERVER="62.60.252.121"
|
|
SSH_PORT="10809"
|
|
PIDFILE="/tmp/ssh_tunnel_${SSH_PORT}.pid"
|
|
BOT_PIDFILE="/tmp/domovoy_bot.pid"
|
|
|
|
cd /home/matrixhasyou/domovoy_bot
|
|
|
|
# Функция очистки
|
|
cleanup() {
|
|
echo "🛑 Остановка..."
|
|
if [ -f "$BOT_PIDFILE" ]; then
|
|
kill $(cat $BOT_PIDFILE) 2>/dev/null
|
|
rm -f $BOT_PIDFILE
|
|
fi
|
|
if [ -f "$PIDFILE" ]; then
|
|
kill $(cat $PIDFILE) 2>/dev/null
|
|
rm -f $PIDFILE
|
|
fi
|
|
exit 0
|
|
}
|
|
|
|
trap cleanup EXIT INT TERM
|
|
|
|
# Проверяем туннель
|
|
if ! nc -z 127.0.0.1 ${SSH_PORT} 2>/dev/null; then
|
|
echo "🚀 Запуск SSH туннеля..."
|
|
ssh -o StrictHostKeyChecking=no -o ServerAliveInterval=60 -o ServerAliveCountMax=3 \
|
|
-N -D 127.0.0.1:${SSH_PORT} -f root@${FINLAND_SERVER}
|
|
echo $! > $PIDFILE
|
|
sleep 2
|
|
fi
|
|
|
|
# Настраиваем .env
|
|
sed -i 's/USE_PROXY=.*/USE_PROXY=true/' .env
|
|
sed -i 's/PROXY_PORT=.*/PROXY_PORT='${SSH_PORT}'/' .env
|
|
|
|
# Запускаем бота
|
|
if ! pgrep -f "python.*main.py" > /dev/null; then
|
|
echo "🚀 Запуск бота..."
|
|
nohup venv/bin/python3 main.py > logs/bot_stdout.log 2>&1 &
|
|
echo $! > $BOT_PIDFILE
|
|
sleep 5
|
|
fi
|
|
|
|
echo "✅ Бот запущен через SSH туннель на ${FINLAND_SERVER}:${SSH_PORT}"
|