====== Настройка и развёртывание ====== //Как развернуть бота с нуля на новом сервере.// ===== Требования ===== * Сервер с 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_URL — http://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 — зависимости