ShitCoders Club Wiki

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

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


bot-setup

Настройка и развёртывание

Как развернуть бота с нуля на новом сервере.

Требования

  • Сервер с Ubuntu 22.04+
  • Python 3.10+
  • Доступ к Telegram API (сервер за пределами РФ или VPN/SOCKS5 прокси)
  • Аккаунт Prodamus PayForm

Быстрый старт

1. Скопировать код на сервер:

 rsync -avz --exclude ".git" --exclude "data" ./shitcoders_club/ root@SERVER_IP:/root/shitcoders_club/

2. Установить зависимости:

 cd /root/shitcoders_club && pip install -r requirements.txt

3. Настроить .env (файл в корне проекта):

  • BOT_TOKEN — токен от @BotFather
  • ADMIN_ID — твой Telegram ID
  • PRODAMUS_SECRET_KEY — из админки Prodamus
  • PRODAMUS_WEBHOOK_URLhttp://SERVER_IP:8002/webhook/prodamus

4. Разрешить порт 8002 в firewall (если есть):

 ufw allow 8002

5. Запустить:

 systemctl restart shitcoders-club

Systemd сервис

Файл: /etc/systemd/system/shitcoders-club.service

[Unit] Description=ShitCoders Club Bot After=network.target

[Service] Type=simple User=root WorkingDirectory=/root/shitcoders_club ExecStart=/usr/bin/python3 /root/shitcoders_club/bot.py Restart=always RestartSec=5 Environment=PYTHONUNBUFFERED=1

[Install] WantedBy=multi-user.target

Вебхук Prodamus

Бот запускает вебхук-сервер на порту 8002 (FastAPI) в отдельном потоке. В админке Prodamus нужно указать URL уведомлений (адрес сервера + порт 8002 + /webhook/prodamus).

Вебхук обрабатывает:

  • auto_payment — успешное списание (+ реферальный бонус)
  • deactivation — платёж не прошёл
  • finish — подписка завершена
  • auto_payment_reminder — напоминание о списании (логируется)

Обновление кода

1. Изменить код локально 2. Скопировать на сервер: rsync -avz ./shitcoders_club/ root@SERVER_IP:/root/shitcoders_club/ 3. Перезапустить: systemctl restart shitcoders-club 4. Проверить логи: journalctl -u shitcoders-club -n 20 –no-pager

Структура проекта

  • bot.py — точка входа, dispatcher
  • config.py — конфигурация
  • database.py — SQLite, модель данных
  • handlers/ — обработчики команд и кнопок
  • services/prodamus.py — интеграция с Prodamus
  • webhook_server.py — FastAPI-сервер для вебхуков
  • .env — токены и ключи (не в git)
  • requirements.txt — зависимости
bot-setup.txt · Последнее изменение: 127.0.0.1