Telegram-бот на Heroku: Деплой Python-бота

Выгрузка Telegram-бота, написанного на Python, на удалённый сервер Heroku. Heroku — платный сервис, требующий оплату (на момент написания — 7 долларов в месяц). Альтернатив с аналогичными бесплатными возможностями практически нет.

Подготовка

Перед выгрузкой:

  1. Регистрация на Heroku: Зарегистрируйтесь или авторизуйтесь на сайте Heroku ([ссылка на сайт опущена]).
  2. Создание приложения: Создайте приложение, указав название (например, «TelegramBot_ITProger») и регион (рекомендуется Европа).
  3. Установка Heroku CLI: Установите Heroku CLI. Инструкции — на сайте Heroku.
  4. Установка Git: Установите Git с официального сайта ([ссылка на сайт опущена]), если он не установлен.

Настройка проекта

  1. Файл Procfile: Создайте файл Procfile (с большой буквы «P») без расширения. В нём укажите команду запуска бота:
worker: python main.py

где main.py — имя основного файла бота.

  1. Файл requirements.txt: В терминале выполните:
pip freeze > requirements.txt

Эта команда создаст файл requirements.txt со всеми зависимостями проекта. Изменения в нём рекомендуется вносить только при уверенности в избыточности библиотеки.

Выгрузка на Heroku

  1. Инициализация Git: В директории проекта выполните:
git init
  1. Добавление файлов:
git add .
  1. Фиксация изменений:
git commit -m "All files initial commit"
  1. Авторизация в Heroku:
heroku login

Следуйте инструкциям для авторизации через браузер.

  1. Подключение к удалённому репозиторию:
heroku git:remote -a <имя_вашего_приложения>

Замените <имя_вашего_приложения> на имя вашего приложения Heroku.

  1. Выгрузка проекта:
git push heroku master

Эта команда загрузит проект на сервер Heroku.

Запуск и настройка воркера

После выгрузки бот не будет работать. Для запуска настройте воркер:

  1. Запуск воркера:
heroku ps:scale worker=1

Эта команда запустит один воркер. 0 остановит воркер.

  1. Оплата: Для работы бота необходима оплата (7 долларов в месяц, цена может измениться). Добавьте данные банковской карты в настройки Heroku.

Что будем искать? Например,программа