Как залить бота Телеграмм на хостинг

Всем привет. Наверняка, если вы умеете программировать, и пользуетесь телеграмом, вам приходила в голову мысль написать своего бота, к тому же мессенджер предоставляет свой API для ботов, с хорошей документацией, а туториалов по всему интернету накидано немало. Но даже если вы и написали бота, то возникает следующая проблема: хостинг. Для «легких» проектов отлично подходит heroku, но у новичков нередко случаются проблемы с заливкой своих проектов туда. Об этом и пойдет речь в этой статье.

id ‘com.github.johnrengelman.shadow’ version ‘2.0.4’
id ‘application’
group ‘com.senderman’
version ‘1.0’
mainClassName = ‘com.annimon.tgbotsmodule.Runner’
sourceCompatibility = 10
repositories {
mavenCentral ( )
dependencies {
implementation ‘com.annimon:tgbots-module:0.1’
mergeServiceFiles ( )
exclude ‘META-INF/*.DSA’
exclude ‘META-INF/*.RSA’

И напишем простого эхобота. Комментировать не буду, код слишком простой и понятный, да и гайд есть.
package com.senderman.examplebot ;
import com.annimon.tgbotsmodule.BotHandler ;
import com.annimon.tgbotsmodule.BotModule ;
import com.annimon.tgbotsmodule.Runner ;
import com.annimon.tgbotsmodule.beans.Config ;
import java.util.List ;
public class ExampleBot implements BotModule {
public static void main ( String [ ] args ) {
final var profile = ( args. length >= 1 ! args [ 0 ] . isEmpty ( ) ) ? args [ 0 ] : «» ;
Runner. run ( profile, List. of ( new ExampleBot ( ) ) ) ;
public BotHandler botHandler ( Config config ) {
return new ExampleBotHandler ( ) ;
package com.senderman.examplebot ;
import com.annimon.tgbotsmodule.BotHandler ;
import org.telegram.telegrambots.meta.api.methods.BotApiMethod ;
import org.telegram.telegrambots.meta.api.methods.send.SendMessage ;
import org.telegram.telegrambots.meta.api.objects.Message ;
import org.telegram.telegrambots.meta.api.objects.Update ;
import org.telegram.telegrambots.meta.exceptions.TelegramApiException ;
import org.telegram.telegrambots.meta.logging.BotLogger ;
public class ExampleBotHandler extends BotHandler {
public String getBotUsername ( ) {
return System. getenv ( «username» ) ;
public String getBotToken ( ) {
return System. getenv ( «token» ) ;
public BotApiMethod onUpdate ( Update update ) {
if ( ! update. hasMessage ( ) ) {
return null ;
Message message = update. getMessage ( ) ;
if ( ! message. hasText ( ) ) {
return null ;
String text = message. getText ( ) ;
long chatId = message. getChatId ( ) ;
SendMessage sm = new SendMessage ( chatId, text ) ;
execute ( sm ) ;
} catch ( TelegramApiException e ) {
BotLogger. error ( «SEND» , e. toString ( ) ) ;
return null ;

Бесплатные хостинги для сайта и бота RENDER, VERCEL, RAILWAY, PYTHONANYWHERE. HEROKU все?

Обратите внимание на методы getBotUsername() и getBotToken. В них мы берем токен и ник бота из переменных окружения. Heroku позволяет хранить в закрытом доступе необходимые вам переменные. Но об этом позже.
Далее необходимо создать 2 файла: Procfile (без расширения) и system.properties. Первый нужен, чтобы дать heroku понять, что запускать, а второй — чем запускать. В моем случае это будет выглядеть так:

Еще по теме:  Как просмотреть в Телеграмме если несколько сообщений от одного не открывать

Как сделать телеграм бота + выложить на бесплатный хостинг с телефона


Procfile:

bot : java — jar build / libs / example_telegram_bot — 1.0 — all . jar
system.properties:
java . runtime . version = 10 . 0 . 2
log — level : ERROR
— com . senderman . examplebot . ExampleBot

Источник: annimon.com

Хостинг для Telegram бота

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

8.81 1. Shneider Host

Shneider Host

Тестовый период: 7 дней
Хостинг сайта: от 110 рублей в месяц
VPS: от 264 рублей в месяц
Выделенный сервер: от 5434 рублей в месяц
Перейти shneider-host.ru

Хостинги / 2 547 / 1

8.46 2. Sprinthost

Sprinthost

Тестовый период: 30 дней (по промокоду)
Хостинг: от 133 рублей в месяц
VDS/VPS: от 400 рублей в месяц
Выделенный сервер: 5300 рублей в месяц
Перейти sprinthost.ru
Промокод: UTP12-1TY9Y-B60AJ
Месяц бесплатного использования хостинга.

Хостинги / 4 063 / 0

9.7 3. Friend Hosting. Высокий аптайм!

Friend Hosting

Украинские, Болгарские впс: от 4.99$ в месяц.
США: от 5.99$ в месяц.
Перейти friendhosting.net

Хостинги / 1 704 / 0

9.44 4. Fozzy. Быстрее быстрого!

Fozzy

Тестовый период: 7 дней бесплатно
Виртуальный хостинг: 120 рублей в месяц
VPS: 299 рублей в месяц
FOREX VPS: 799 рублей в месяц
Перейти fozzy.com
Промокод: extra_10
Даёт скидку 10% на все тарифы.

Хостинги / 3 380 / 1

9.75 5. WebHOST1

WebHOST1

Тестовый период: 30 дней
Хостинг: от 120 рублей в месяц
VDS SSD: от 600 рублей в месяц
Выделенный сервер: от 9000 рублей в месяц
Перейти webhost1.ru
Промокод: f4e9a0-10
Скидка 10% на первый заказ

Хостинги / 1 817 / 0

9.92 6. Mchost. Регулярные акции!

Mchost

Стоимость: от 59 рублей в месяц
Перейти mchost.ru
Промокод: 1313751747

Хостинги / 2 522 / 0

9.63 7. Simple Cloud

Simple Cloud

Тестовый период: 100 рублей на баланс
VPS: от 150 рублей в месяц
Перейти simplecloud.ru
Промокод: (регистрация по ссылке)
100 рублей на тестирование

Хостинги / 1 513 / 0

9.75 8. Hostpro

Hostpro

Тестовый период: до 5 дней
Хостинг: от 120 рублей в месяц
VPS: от 675 рублей в месяц
Выделенный сервер: от 3900 рублей в месяц
Перейти hostpro.ua
Промокод: for24_hosting — для хостинга / for24_vps — для VPS
Скидка 10% на хостинг и VPS. Действуют разные купоны.

Еще по теме:  Что будет если сбросить аккаунт в Телеграмме на телефоне

Хостинги / 1 842 / 0

8.38 9. Hostland. Увеличивает скорость загрузки сайта!

Hostland

Тестовый период: 30 дней
Хостинг: от 97 рублей в месяц
VPS: от 249 рублей в месяц
Перейти hostland.ru

Хостинги / 860 / 0

10 10. RuVDS

RuVDS

RuVDS — это крупный хостинг не только игровых серверов, но и VPS и VDS серверов в общем. Компания располагает оборудованием в двух дата-центрах Москвы, а также заграницей, в Швейцарии и

Перейти ruvds.com
Промокод: Список находится чуть ниже.
Скидка 5% на оплату сервера

Источник: for24.ru

Бесплатный хостинг Telegram-бота на Google Cloud Platform

При написание телеграмм ботов столкнулся с вопросом, как быстро и бесплатно сделать так, чтобы бот работал постоянно. Варианты с Heroku и Pythonanywhere имеют слишком маленькие лимиты, если у вас более одного бота. Поэтому я решил воспользоваться GCP. Платформа предоставляет бесплатно 300$ на год + огромные скидки при использование этих средств(до 94%).

Как захостить вашего бота?

Шаг 1. Регистрация на GCP


Переходим на сайт GCP и нажимаем Get started for free.

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

Шаг 2. Создаём виртуальную машину

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

Необходимо создать новый экземпляр.

Если вы не будете развертывать БД на виртуальной машине, то можете взять g1-small, иначе советую n1-standart.

Необходимо будет выбрать также ОС. Я выбрал Debian GNU/Linux 9 (stretch).

Всё, ВМ создана. Обычные её развертывание занимает от 1 до 5 минут.

Шаг 3. Настройка виртуальной машины

Вы можете подключиться по SSH со своего ПК или же взаимодействовать через платформу.
Для этого нажмите на SSH.

У вас откроется терминал Linux в новом окне.

Теперь перейдем к настройке. Сначала вводим команду:

sudo apt-get update

для обновления информации об новейших версиях пакетов.

sudo apt-get install python3-setuptools sudo apt-get install python3-pip

Сам Python устанавливать не нужно, он уже есть.

Теперь необходимо установить все необходимые библиотеки. Есть небольшой нюанс, все библиотеки необходимо устанавливать дважды:

pip3 install ‘name_of_package’

для использования через коману python3, и

sudo pip3 install ‘name_of_package’

для systemd. Данная утилита поможет вам запустить бота и перезапускать его, если он упадёт.
Самый простой способ запускать бота через python3, но он будет выключаться, если вы будете отключаться. Можно использовать screen, но бот не будет сам перезапускаться. Также можно использовать crontab с проверкой порта, но мне кажется этот вариант сложнее, чем systemd.

Еще по теме:  Бот вскрывающий участников канала Телеграм

Шаг 4. Заливаем бота на сервер

Есть два способа залить вашего бота. Если вы не дружите с Git, вы можете просто заархивировать бота в .tar и залить его на сервер:

После этого разархивируем его командой:

tar -xvf yourfile.tar

Теперь ваш бот хранится в папке с названием архива.

Второй способ через Git. Я думаю, не стоит объяснять как это сделать людям, которые умеют его использовать.

После установки его командой:

sudo apt install git

Вы можете клонировать его себе на ВМ.

После этого переходим к настройке systemd. Для этого переходим в его директорию:

cd /etc/systemd/system

И создаём файл bot.service:

sudo nano bot.service

Вписываем в открывшиеся окно следующее:

[Unit] Description=Telegram bot ‘Имя бота’ After=syslog.target After=network.target [Service] Type=simple User=root WorkingDirectory=/home/название вашего юзера/название папки в которой лежит бот ExecStart=/usr/bin/python3 /home/название вашего юзера/название папки в которой лежит бот/bot.py RestartSec=10 Restart=always [Install] WantedBy=multi-user.target

Закройте и соханите файл. Закрывается с помощью команды Ctrl+X.

После этого введите команды по очереди:

sudo systemctl daemon-reload sudo systemctl enable bot sudo systemctl start bot sudo systemctl status bot

Если всё будет хорошо, вы увидите примерно следующее:

Всё, теперь ваш бот работает самостоятельно. Надеюсь моя статья поможет вам захостить вашего бота.

P.S.

1.Проверьте вашего бота на ошибки

Запустите вашего бота и проверьте его работу прежде, чем запускать его через systemd. Для этого перейдите в папку с ботом и запустите через python.

cd python3 bot.py

2.Добавьте в файлы с py-скриптами кодировку

#!/usr/bin/env python # -*- coding: utf-8 -*-

Вставить в начале файла.

3.Ошибки в systemd

Если вы проверяли бота на ошибки и он нормально работал, но он не хочет запускаться в systemd, то вы можете посмотреть логи и понять в чём ошибка просмотрев файл:

sudo nano /var/log/syslog

Вы можете скачать этот файл и просмотреть на своём компьютере через Notepad++.

4.Апдейт бота

Если вы хотите дописать или залить новую версию бота, то введите команду:

sudo systemctl stop bot

Провидите все необходимые манипуляции. А потом введите следующие команды, чтобы он опять заработал:

sudo systemctl daemon-reload sudo systemctl start bot sudo systemctl status bot

  • Настройка Linux
  • Python
  • Программирование
  • API
  • Google Cloud Platform

Источник: h.amazingsoftworks.com

Рейтинг
( Пока оценок нет )
Загрузка ...