ShitCoders Club Wiki

Закрытый клуб разработчиков

Инструменты сайта


troubleshooting

Инструкция по решению проблем

Что делать, если что-то сломалось. Диагностика и починка.


🚨 Бот не отвечает

Симптом: @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"
troubleshooting.txt · Последнее изменение: 127.0.0.1