====== Инструкция по решению проблем ====== //Что делать, если что-то сломалось. Диагностика и починка.// ---- ===== 🚨 Бот не отвечает ===== **Симптом:** @shitcoders_club_bot не реагирует на /start, сообщения, кнопки. **Диагностика:** # Проверить статус сервиса systemctl status shitcoders-club # Посмотреть последние ошибки journalctl -u shitcoders-club -n 30 --no-pager **Если сервис упал:** systemctl start shitcoders-club **Если крашится в цикле (Restart):** # Проверить логи journalctl -u shitcoders-club -n 50 --no-pager # Частые причины и решения: * TelegramConflictError — запущен второй инстанс бота → pkill -f shitcoders && systemctl start shitcoders-club * Ошибка БД — повреждён SQLite → sqlite3 /root/shitcoders_club/data/shitcoders.db "PRAGMA integrity_check;" → Если битая — восстановить из бекапа * Закончилось место на диске → df -h, journalctl --vacuum-time=7d, apt clean ===== 🔄 TelegramConflictError ===== **Симптом:** В логах ``TelegramConflictError: terminated by other getUpdates``. **Решение:** pkill -f shitcoders_club && systemctl restart shitcoders-club **Профилактика:** убедись, что нет запущенных экземпляров: ps aux | grep python | grep -i bot ===== 💳 Не приходит вебхук от Prodamus ===== **Симптом:** Пользователь оплатил, деньги списались, но подписка не активировалась. **Диагностика:** # Вебхук-сервер слушает порт? ss -tlnp | grep 8002 # Логи вебхука journalctl -u shitcoders-club -n 50 --no-pager | grep -i webhook # Проверить URL в админке Prodamus → Настройки → URL уведомлений # Там должен быть: http://IP_СЕРВЕРА:8002/webhook/prodamus **Решение:** * Порт 8002 не слушает → перезапустить бота * URL неправильный → исправить в админке Prodamus * Сервер переехал → обновить IP в URL вебхука ===== 💸 Списание после отмены ===== **Симптом:** Отменил подписку через бота, но деньги списались. **Диагностика:** journalctl -u shitcoders-club -n 50 --no-pager | grep setActivity **Решение:** 1. Зайти в админку Prodamus → Подписчики → выключить подписку вручную 2. Проверить PRODAMUS_SECRET_KEY в .env на сервере 3. Проверить логи: почему API-запрос не сработал ===== 🐞 Бот крашится при нажатии кнопки ===== **Симптом:** После нажатия любой кнопки бот перестаёт отвечать. **Диагностика:** journalctl -u shitcoders-club -n 30 --no-pager **Частые причины:** * Битый файл БД * Несовместимость библиотек после обновления * Не хватает памяти/места на диске **Решение:** 1. sqlite3 /root/shitcoders_club/data/shitcoders.db "PRAGMA integrity_check;" 2. pip install -r requirements.txt --upgrade 3. df -h, проверить место 4. systemctl restart shitcoders-club ===== 🌐 Вики не работает (404/502) ===== **Симптом:** https://ivanchepurnov.ru/wiki/ — 404, 502 или пустая страница. **Диагностика:** # PHP жив? systemctl status php8.1-fpm # Nginx жив? nginx -t && systemctl status nginx # Файлы вики на месте? ls -la /var/www/wiki/data/pages/ **Решение:** systemctl restart php8.1-fpm systemctl reload nginx chown -R www-data:www-data /var/www/wiki rm -rf /var/www/wiki/data/cache/* ===== 💾 Быстрая диагностика ===== # Всё одной строкой: systemctl status shitcoders-club --no-pager -l | head -10 echo "---" journalctl -u shitcoders-club -n 10 --no-pager echo "---" ss -tlnp | grep -E "8002|8085" echo "---" df -h / | tail -1 echo "---" sqlite3 /root/shitcoders_club/data/shitcoders.db ".tables"