Лайфхаки

Маленькие, полезные хитрости

Создание и хостинг телеграм-бота. Хостинг или сервер?

05.08.2023 в 14:46

Создание и хостинг телеграм-бота. Хостинг или сервер?

Часто разработчики ботов сталкиваются с вопросом: бот или его прототип готов, всё отлично работает в локальном окружении, и пора бы запустить бота в проде - но где его захостить?

Конечно, это зависит от языка программирования, на котором написан ваш Telegram-бот.

И конечно, быстрый гугл-поиск подскажет, что если ваш бот написан наPythonилиNode JS, то для его хостинга потребуется аренда сервера.

Но может попробуем обойтись обычным shared-хостингом? Ведь у многих есть бесплатный тестовый период вплоть до 30 дней - вполне можно настроить бота, обкатать MVP и понять, стоит ли двигаться дальше и платить деньги.

Создание и хостинг телеграм-бота. Хостинг или сервер?

С каждым днем появляется всё больше хостинг-провайдеров, которые предоставляют тарифные планы с поддержкой не только PHP, как было раньше, но и таких языков как Python, Ruby, Node JS.

Я создал двух простых ботов, и оба разметил на том же хостинге, на котором работает и этот сайт. Вот этот @hosting_telegram_php_bot - на PHP, и второй бот

Это хостинг Beget . Он поддерживаетPython. И удобен тем, что дает 30 дней для бесплатного теста . А также удобным интерфейсом, так что часть операций можно будет сделать через визуальные настройки, если вы не очень любите работу с консолью (хотя совсем без неё, для бота на Python, обойтись не удастся).

Правда инструкций по настройке Python на обычном хостинге не так много, или они не юзер-френдли, или в них что-то упущено, и настройка окружения превращается в танцы с бубном.

Попробую изложить всё по шагам.

Во-первых, если вы решили разместить телеграм бота на хостинге, вам потребуется доменное имя.

Создание и хостинг телеграм-бота. Хостинг или сервер? 01

Создание и хостинг телеграм-бота. Хостинг или сервер? 02

Бесплатный хостинг для телеграм-бота. Как хостить телеграм-бота (и другие скрипты на Python) на Repl.it бесплатно 24/7 +13

Очень часто возникающий вопрос: где можно разместить скрипты на Python, Flask-приложение, телеграм или дискорд ботов?

Один из вариантов — на своем компьютере при наличии внешнего IP-адреса и опыта в настройке проброса портов на роутере. Или другие сервисы, как правило, требующие платной подписки.

Цель этот статьи - подробная инструкция, как сделать хостинг Python-скриптов бесплатно и доступным 24/7 на примере телеграм-бота

Шаг 0 - регистрация бота

Существует огромное количество туториалов, как получить токен, поэтому все по-простому. Находим в телеграм BotFather, регистрируем нового бота, выбираем ему имя, получаем токен вида: 127466748171:HJfwijfw88jf32lc9FHjwpfkfgwerhjf

Он нам понадобится в дальнейшем

Шаг 1 - регистрируемся на Repl.it

Создаем новый проект на Python

Шаг 2 - Пишем код бота

В проекте будет создан файл main.py. В нем размещаем код бота:

Тут стоит обратить на установку модуля pytelegrambotapi: импортируем сначалаpipи потом выполняем его через:pip.main().

Готовый скрипт бота телеграм Python. Ша. Пишем основу бота


Создаём папку Bot, в которой потом создаём файл bot.py. Здесь будет код нашего бота.Открываем консоль и переходим в директорию с файлом, устанавливаем python-telegram-bot .

pip install python-telegram-bot --upgrade

После установки мы уже можем написать «основу», которая пока что будет просто отвечать однотипными сообщениями. Импортируем необходимые модули и прописываем наш токен API:

Код настроек и импорта

# Настройки from telegram.ext import Updater, CommandHandler, MessageHandler, Filters updater = Updater(token='ВАШ API КЛЮЧ') # Токен API к Telegram dispatcher = updater.dispatcher

Далее напишем 2 обработчика команд. Это callback-функции, которые будут вызываться тогда, когда будет получено обновление. Напишем две таких функции для команды /start и для обычного любого текстового сообщения. В качестве аргументов туда передаются два параметра: bot и update . Bot содержит необходимые методы для взаимодействия с API, а update содержит данные о пришедшем сообщении.

Бесплатный хостинг для телеграм-бота Python. Какой хостинг выбрать и купить для Телеграмм бота, VK, Viber и других?

Мы в ChatLabs не привязываем клиентов к определенному hosting и предлагаем максимально гибкие варианты. В этой статье не делаем обзоры лучших хостингов для ботов на Питоне, Node JS, JAVA и др., а делимся реальным опытом: что использует бизнес в разных нишах (интернет-магазины, стартапы, услуги доставки, отдел кадров и HR, инфобизнес), как подобрать сервер, где выгоднее разместить бота.

Бота для Телеги, Вконтакте, Дискорда делаем под ключ, т.е. сами размещаем на сервере, а вы получаете готовый работающий продукт + исходники. Если в компании есть свой техотдел, можем предоставить только исходники, а вы сами зальете бота на server.

Бесплатные хостинги для ботов Телеграм ограничены по функционалу (проекты, трафик, базы данных). У shared-hosting нюансы с ПО: к примеру, если чат-бот для Телеграм создан на Python с использованием фреймворка Flask или Django, то накатить нужное ПО для работы chat bot не получится. Также для shared-хостинга нужен домен (для VPS необязателен, т.к. можно обращаться по выделенному IP-адресу).

Выделенные сервера (Dedicated Server) только под нужды бота заказывать не стоит: как правило, часть ресурсов просто не используется. Но если у вас есть выделенный сервер под текущие проекты, на него можно поставить Телеграм-бота. Получается, что установка бесплатная (в рамках текущего тарифного плана).

Оптимальный вариант – VPS и VDS с ежедневными бэкапами, хорошим аптаймом, панелью управления или root-доступами для настройки. Один из таких – Fozzy . Но есть тарифы на eg.ru, FirstVDS, Cloud4box, Sprinthost, Timeweb, Simplecloud. Ниже о том, как на них сэкономить.

Бесплатный хостинг для бота телеграм на php. Что такое хостинг

Слово «хостинг» означает некое хранилище. Дело в том, что после написания bot его нужно где-то хранить, чтобы он постоянно функционировал. Хостинги содержатся на общем компьютере, который называют сервером.

Хостинг предполагает аренду места на самом server. Эта услуга платная, поэтому перед разработчиками роботов вопрос хостинг для телеграм-бота всегда актуален.

Конечно, можно создать хостинг на своем домашнем ПК, но это представляет определенные трудности, а именно постоянная беспрерывная работа устройства. Само собой, это никому неудобно. Поэтому все же желательно подобрать общий хостинг для бота Telegram.

Типы

Существует несколько типов хостингов. Они различаются не только по цене, но и программному обеспечению, функционалу, объему памяти.

Общий виртуальный

Один из популярнейших. Подходит для небольших онлайн-магазинов, сайтов. Виртуальный хостинг – результат деления одного сервера на несколько частей для сдачи в аренду. Из минусов виртуального типа: наличие ограничений скорости записи или на использование ОП.

На сегодня наиболее известный тип host. Цена – от 2 до 15$ в месяц.

Виртуальный сервер

Также деление server на несколько частей для сдачи в аренду, но эти части будут независимы друг от друга, следовательно, ограничения не предусмотрены.

Это удобно тем, что можно настроить именно под свой проект или даже установить отдельное ПО. Подойдет для более крупных проектов. Цена аренды такого ресурса от 17$.

Выделенный сервер

Выделенный сервер.

Это хост – целый server. Плюс: нет зависимости от остальных клиентов провайдера. Вы как единственный админ получаете доступ к ПО, то есть осуществляете полный контроль систем.

Выделенный сервер – отличный вариант для игр, соцсетей и крупных проектов. Но и стоимость аренды такого хостинга от 50$.

Colocation

Колокейшн представляет собой хостинг, за который нужно платить провайдеру не только за аренду, но и за обслуживание server. Кроме того, есть услуга защиты данных, но она тоже платная.

Облачный сервер (Cloud-hosting)

При таком типе хоста оплата производится за объем ресурсов. Провайдер сам распределит их между серверами. Подходит в случае, когда сайт занимает несколько разных server. Плюс в том, что можно использовать ресурсы нескольких серверов. Цена – от 7$.

Сервер для телеграм-бота Python. Как запустить Python Telegram бота на VPS

Приветствую всех. Из этой статьи вы узнаете как запустить Telegram бота на виртуальном сервере, и настроить службу для его авто запуска и перезапуска.

Телеграм бот

#main.py import telebot bot = telebot.TeleBot("ТОКЕН") @bot.message_handler(func=lambda message: message.text.lower() in ) def send_welcome(message): bot.reply_to(message, "Здравствуйте!") @bot.message_handler(func=lambda message: True) def echo_all(message): bot.reply_to(message, 'Я тебя не понимаю(') bot.infinity_polling()

Виртуальный сервер

Для демонстрации я буду использовать виртуальный сервер от Beget стоимостью 210 рублей в месяц. Вы можете использовать другого хостинг провайдера, или выбрать другую конфигурацию, в зависимости от вашего проекта.

Сервер для телеграм-бота Python. Как запустить Python Telegram бота на VPS

Подключение к виртуальной машине

После того как вы создали VPS у вас откроется панель управления, где вы можете скопировать IP адрес машины и подключаться к ней по SSH.

Сервер для телеграм-бота Python. Как запустить Python Telegram бота на VPS

Для этого можно использовать программу PuTTY или клиент OpenSSH, который входит в состав Windows 10. Для подключения по SSH выполните следующую команду:

ssh root@213.139.209.81

И введите пароль который вы указали при создании VPS.

Подготовка сервера

После того как вы подключились к серверу, выполните команды которые обновят списки, и устаревшие пакеты до последней версии.

sudo apt update sudo apt upgrade

Перейдите в каталогhomeи создайте папку для вашего проекта выполнив команды.

cd /home mkdir ramziv_bot cd ramziv_bot

Зайдите панель управления VPS и откройте Файловый менеджер .

Сервер для телеграм-бота Python. Как запустить Python Telegram бота на VPS

Загрузите файлы вашего проекта на сервер, в моем случаи это только один файлmain.py.

Сервер для телеграм-бота Python. Как запустить Python Telegram бота на VPS

Установите зависимости вашего проекта, и запустите бота.

Примечание: Ubuntu 20.04 поставляется с установленной Python 3.8 из коробки, если для вашего проекта нужна другая версия, установите ее или используйте другую версию дистрибутива.

pip install pyTelegramBotAPI python3 main.py

Теперь перейдите в Телеграм и протестируйте работу.

Сервер для телеграм-бота Python. Как запустить Python Telegram бота на VPS

Работает.

Авто запуск и перезапуск телеграм бота

Создайте systemd службу для бота.

sudo nano /lib/systemd/system/ramziv_bot.service

С конфигурацией:

Description=Ramziv - Telegram Bot After=syslog.target After=network.target Type=simple WorkingDirectory=/home/ramziv_bot/ ExecStart=/usr/bin/python3 /home/ramziv_bot/main.py RestartSec=60 Restart=always WantedBy=multi-user.target

Нажмите CTRL+S и CTRL+X что бы сохранить и выйти.

Выполните эти две команды что бы запустить службу.

sudo systemctl enable ramziv_bot sudo systemctl start ramziv_bot

Ваш бот запушен. Перейдите в Телеграм и убедитесь в этом.

Как хостить телеграм-бота. Как разместить Telegram-бота на сервере?

    Уже не первый раз меня спрашивали о том, как разместить своего бота на сервере и запустить его. В этой статье, я постараюсь коротко и ясно объяснить об этом. Но делать я это буду на бесплатном хостинге —

    Я разбил статью на 5 глав. Как я сказал ранее, статья будет короткой. И с помощью этой навигации будет проще ориентироваться по требуемой информации.

    Создание бота

    Статью о том,я уже писал. Думаю я объяснил там всё достаточно понятно. Изучить её, если у вас еще нету бота и вы хотите его разработать на NodeJS. Если вы написали своего бота не на JavaScript, то можете пропускать эту часть и приступать ко второй главе.

    Я люблю этот сервис за то, что я могу протестировать свои проекты в режиме «продакшн». Это дает мне гарантию, что мой проект будет работать стабильно, когда я его запущу в «боевом режиме».

    Особой разницы в размещении бота на Heroku или на отдельном сервере нету. Тут всё достаточно просто.

      1. Войдите в свой аккаунт и создайте первый проект, нажав на " Create new app ".

        Придумайте название своему проекту. Название должно быть уникальным. Выбор региона не принципиален.

        После создания проекта, вам будет предложены варианты деплоя (размещения) вашего проекта на Heroku.

      Тут есть несколько вариантов. Я опишу только первые два.

    • Heroku Git — с помощьюот Heroku, вы можете очень просто разместить своего бота на сервере Heroku.
    • GitHub — вы можете подключить свой аккаунт GitHub и склонировать ваш репозиторий на сервер Heroku.

    Я буду пользоваться первым вариантом.

    Следуя простой инструкции, указанной в разделе " Deploy ", можно загрузить свой проект на сервер Heroku.

        1. И выполните эти две команды по очереди. (Если вы уже инициализировали Git, то первую команду выполнять не надо).

        Первая — инициализирует Git в вашей папке. Вторая — установит ссылку на репозиторий Heroku, для деплоя (размещения) вашего проекта на сервере.

        Когда внесли все правки и убедились, что всё должно работать нормально, создайте в папке с вашим проектом — Procfile . Без расширения, просто - Procfile .

        Внутри этого файла, вам нужно указать команду, которая будет выполняться при запуске вашего проекта на Heroku. То есть, Heroku должен знать, что ему нужно запускать. В файле Procfile

        npm start. Так как у меня код написан на ES6, мне нужно конвертировать ES6 в ES5 с помощью Babel. И только после этого, у меня запускается команда запуска бота, типа:node index.js.

        Почти готово. Вам осталось теперь просто запушить вашего бота на сервер Heroku и запустить бота.

        Если вам лень каждый раз вбивать эти команды, пропишите в package.json в scripts , следующую команду:

        Если же бот не запустился после пуша, выполните последнюю команду для запуска бота на Heroku и готово!

        Размещение бота на своём сервере

        Тут тоже достаточно всё просто. Если вы не хотите публиковать своего бота на GitHub'e, вы можете использовать.

        Регестрируемся. Создаем репозиторий, нажав на плюсик слева.

        Называем репозиторий как хотим, тут всё так же, как и на GitHub.

        После чего, заходим так же в свой проект с ботом. И добавляем в Git, ссылку на этот репозиторий.

        _10

        _10

        git remote add origin git@bitbucket.org:Archakov06/archakov-im-telegram-bot.git

        У вас должна быть другая ссылка на репозиторий. Кликните на " I have an existing project " и ниже указана команда с вашим репозиторием.