Skip to content

Latest commit

 

History

History
282 lines (210 loc) · 8.57 KB

File metadata and controls

282 lines (210 loc) · 8.57 KB

🚀 Руководство по деплою бота

Чтобы бот работал 24/7 независимо от вашего компьютера, его нужно разместить на сервере.

📋 Варианты хостинга

1️⃣ VPS/VDS Сервер (Рекомендуется)

Самый надежный и гибкий вариант.

Подходящие провайдеры:

  • DigitalOcean - от $4/мес, простой интерфейс
  • Hetzner - от €4/мес, отличная цена/качество
  • Timeweb - от 199₽/мес, российский провайдер
  • REG.RU VPS - от 249₽/мес
  • AWS Lightsail - от $3.5/мес
  • Linode - от $5/мес

Инструкция для VPS:

Шаг 1: Подключитесь к серверу
ssh root@ваш_ip_адрес
Шаг 2: Установите Python и зависимости
# Обновите систему
apt update && apt upgrade -y

# Установите Python 3.11+ и git
apt install python3 python3-pip python3-venv git -y
Шаг 3: Загрузите бота на сервер
# Создайте директорию
mkdir -p /opt/bot
cd /opt/bot

# Загрузите файлы (используйте git или scp)
# Вариант 1: Если у вас есть git репозиторий
git clone https://ваш-репозиторий.git .

# Вариант 2: Загрузите файлы через scp с вашего ПК
# На вашем ПК выполните:
# scp -r C:\bot\* root@ваш_ip:/opt/bot/
Шаг 4: Настройте окружение
# Создайте виртуальное окружение
python3 -m venv venv
source venv/bin/activate

# Установите зависимости
pip install -r requirements.txt
Шаг 5: Настройте .env файл
nano .env
# Скопируйте туда ваши настройки из env_template.txt
Шаг 6: Установите systemd service для автозапуска
# Скопируйте файл службы
cp bot_polya.service /etc/systemd/system/

# Перезагрузите systemd
systemctl daemon-reload

# Включите автозапуск
systemctl enable bot_polya

# Запустите бота
systemctl start bot_polya

# Проверьте статус
systemctl status bot_polya
Управление ботом:
# Просмотр логов
journalctl -u bot_polya -f

# Остановка бота
systemctl stop bot_polya

# Перезапуск бота
systemctl restart bot_polya

2️⃣ Docker (Универсальный)

Работает на любом сервере с Docker.

Запуск через Docker:

# Постройте образ
docker build -t telegram-bot .

# Запустите контейнер
docker run -d --name bot --restart always --env-file .env telegram-bot

Управление:

# Просмотр логов
docker logs -f bot

# Остановка
docker stop bot

# Перезапуск
docker restart bot

3️⃣ Railway.app (Простой и бесплатный*)

*Бесплатный план: $5 в месяц в виде кредитов

Инструкция:

  1. Создайте аккаунт на https://railway.app
  2. Нажмите "New Project" → "Deploy from GitHub repo"
  3. Подключите ваш GitHub репозиторий
  4. Railway автоматически обнаружит Python проект
  5. Добавьте переменные окружения из .env в настройках проекта
  6. Railway автоматически запустит бота

Важно: Загрузите token.json, oauth_client.json, service_account.json через Volume или переменные окружения.


4️⃣ Render.com (Бесплатный план есть)

Инструкция:

  1. Создайте аккаунт на https://render.com
  2. Нажмите "New +" → "Background Worker"
  3. Подключите GitHub репозиторий
  4. Настройки:
    • Environment: Python 3
    • Build Command: pip install -r requirements.txt
    • Start Command: python bot_polya.py
  5. Добавьте переменные окружения

Важно: На бесплатном плане сервис засыпает после 15 минут бездействия.


5️⃣ PythonAnywhere (Бесплатный план ограничен)

⚠️ Важно: Бесплатный план не поддерживает внешние соединения (не подойдет для Telegram бота). Нужен платный план от $5/мес.


6️⃣ Домашний сервер / Raspberry Pi

Если у вас есть старый компьютер или Raspberry Pi:

  1. Установите Linux (Ubuntu/Debian)
  2. Следуйте инструкции для VPS
  3. Настройте автозапуск через systemd
  4. Обеспечьте постоянное питание и интернет

🔐 Безопасность

  1. Никогда не комитьте .env файл в Git!

    # Добавьте в .gitignore:
    .env
    token.json
    service_account.json
    oauth_client.json
    reports.db
    *.db
  2. На сервере используйте отдельного пользователя (не root)

    useradd -m -s /bin/bash botuser
    chown -R botuser:botuser /opt/bot
  3. Настройте firewall

    ufw allow 22/tcp
    ufw enable

📊 Передача файлов на сервер

Вариант 1: SCP (для VPS)

# С вашего Windows ПК (PowerShell):
scp C:\bot\.env root@ваш_ip:/opt/bot/
scp C:\bot\token.json root@ваш_ip:/opt/bot/
scp C:\bot\oauth_client.json root@ваш_ip:/opt/bot/
scp C:\bot\service_account.json root@ваш_ip:/opt/bot/
scp C:\bot\reports.db root@ваш_ip:/opt/bot/

Вариант 2: Git (рекомендуется)

  1. Создайте приватный репозиторий на GitHub
  2. Добавьте файлы (кроме секретных)
  3. На сервере клонируйте репозиторий
  4. Секретные файлы передайте через SCP или настройте через переменные окружения

🔄 Обновление бота на сервере

cd /opt/bot
git pull  # если используете git
systemctl restart bot_polya  # перезапустите службу

🛠 Решение проблем

Бот не запускается:

# Проверьте логи
journalctl -u bot_polya -n 50

# Проверьте статус
systemctl status bot_polya

База данных не найдена:

# Убедитесь, что reports.db находится в /opt/bot/
ls -la /opt/bot/reports.db

Ошибки с Google Sheets:

# Убедитесь, что token.json актуален
# Возможно потребуется повторная авторизация

💰 Стоимость (примерно)

Вариант Цена Плюсы Минусы
VPS (Hetzner) €4-5/мес Полный контроль, надежность Требует настройки
Railway $5/мес кредитов Простота, автодеплой Ограниченные ресурсы
Render $0-7/мес Бесплатный план есть Засыпает на free
Raspberry Pi ~3000₽ один раз Ваше оборудование Зависит от электричества

✅ Рекомендация

Для постоянной работы бота рекомендую VPS от Hetzner или Timeweb:

  • Стабильность 99.9%
  • Простая настройка через systemd
  • Полный контроль
  • Низкая цена

Для быстрого старта без настройки - Railway.app


📞 Поддержка

После настройки хостинга:

  1. Убедитесь, что бот отвечает на команды
  2. Проверьте автоматический экспорт в Google Sheets (если настроен)
  3. Настройте мониторинг (опционально)