Найти в Дзене

Как разместить Telegram бота на сервере

Узнайте, как разместить несколько Telegram ботов на одном сервере Beget всего за 7 рублей в сутки. Пошаговая инструкция с настройкой виртуального окружения для каждого бота и управлением через screen сессии.
Первым делом регистрируемся по ссылке https://beget.com/p2239517/ru/vps - ссылка реферальная + она ведет именно в тот раздел который нас интересует, при самостоятельной регистрации просто выберете нужный раздел - "Облако". после регистрации сразу попадаете в данный раздел, где необходимо выбрать регион расположения сервера, то есть если в своих проектах Вы планируете использовать например openai, то естественно нужно будет выбрать европу, либо азию, но я буду показывать именно на России, поскольку самые дешевые сервера, всего 7 рублей в сутки.
Далее листаем в самый низ. По умолчанию установлен Ubuntu 24.04 его и будем использовать, он один из самых популярных универсальных дистрибутивов. И самое главное что здесь нас интересует это пароль! Обязательно его необходимо задать (именн

Узнайте, как разместить несколько Telegram ботов на одном сервере Beget всего за 7 рублей в сутки. Пошаговая инструкция с настройкой виртуального окружения для каждого бота и управлением через screen сессии.

Первым делом регистрируемся по ссылке
https://beget.com/p2239517/ru/vps - ссылка реферальная + она ведет именно в тот раздел который нас интересует, при самостоятельной регистрации просто выберете нужный раздел - "Облако".

Для завершения регистрации вводите код из СМС
Для завершения регистрации вводите код из СМС
-3

после регистрации сразу попадаете в данный раздел, где необходимо выбрать регион расположения сервера, то есть если в своих проектах Вы планируете использовать например openai, то естественно нужно будет выбрать европу, либо азию, но я буду показывать именно на России, поскольку самые дешевые сервера, всего 7 рублей в сутки.
Далее листаем в самый низ. По умолчанию установлен Ubuntu 24.04 его и будем использовать, он один из самых популярных универсальных дистрибутивов.

-4

И самое главное что здесь нас интересует это пароль! Обязательно его необходимо задать (именно свой пароль), поскольку если его не зададите, то потом могут возникнуть проблемы со входом в терминал.

-5

После того как зададите пароль нажимайте кнопку - Создать виртуальный сервер, далее выпадет окно оплаты. Минимум можно оплатить 15 рублей, после подтверждения оплаты, жмите кнопку продолжить. у вас автоматически создастся сервер.

-6

Необходимо дождаться когда статус изменится на - Запущен.
Переходим в терминал.

-7

Вводим логин: root , жмем Enter и вводим пароль который мы задавали ранее при регистрации.

-8

С вводом пароля не тормозите, для этого есть всего 60 секунд, далее идет сброс до логина, то есть повторно нужно будет начинать с логина

Важно! Пароль вводится скрыто, то есть при нажатии клавиш ощущение, что ничего не происходит, но продолжайте ввод и нажимайте Enter.

После успешного соединения с сервером Вы увидите такое окно 👇

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

Если Вам удалось сюда попасть, значит всё отлично!
При установке сервера первым делом нам необходимо разово установить окружение Python следующей командой
sudo apt install python3-venv
после ввода команды жмем Enter, скопировать и вставить в терминал не получится, только ручной ввод.

-10

На любые вопросы отвечайте - Y

-11

-12

Эти действия Вы делаете 1 раз, далее всё просто: создаем папку командой

mkdir название_папки

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

cd bot1

-13

далее нам необходимо создать виртуальное окружение командой

python3 -m venv название

и активировать данное виртуальное окружение командой

source название/bin/activate

-14

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

Далее создаем скреен сессию командой

screen -S название

-15

после запуска скреен сессии у Вас должен открыться как будто новый терминал

-16

сворачиваем данный терминал и идем в файловый менеджер

-17

Переходим в папку root

-18

Далее переходим в созданную нами папку bot1

-19

жмем правой кнопкой мыши в свободную область в папке bot1 (в самой папке есть еще папка bot1, ее не трогаем)

-20

создаем файл с названием бота с расширением py обязательно!

-21

Нажимаем ОК, открываем только что созданный нами файл и вставляем туда код нашего бота, примеры простеньких кодов я оставлю в конце статьи, может пригодятся.

-22
-23

Обязательно сохраняем и возвращаемся в терминал на соседнюю вкладку

-24

В терминале мы устанавливаем зависимости и бибилиотеки, если не знаете какие, то ИИ подскажет, но команда в скреен сессии всегда будет начинаться с pip3 .... в нашем случае устанавливаем

pip3 install pyTelegramBotAPI

-25

И наконец запускаем бота командой

python3 bot1.py

-26
-27

бот запущен и работает, чтобы его остановить жмем Ctrl+C, чтобы запустить пишем опять команду

python3 bot1.py

-28
-29

Чтобы бот работал и при закрытом компьютере и терминале необходимо запустить его в фоновом режиме, мы всё для этого подготовили сейчас просто нужно выйти из скреен сессии применив следующее сочетание клавиш

Ctrl +A, затем D

-30

далее необходимо деактивировать виртуальное окружение командой

deactivate

-31

при деактивации должно пропасть название виртуального окружения в круглых скобках

После этого выходим из нашей папки bot1 b переходим в родительскую директорию командой

cd

-32

и теперь разместим второго бота, начинаем все по кругу)

создаем папку

mkdir bot2

переходим в нее

cd bot2

создаем виртуальное окружение

python3 -m venv bot2

активируем виртуальное окружение

source bot2/bin/activate

запускаем скреен сессию

screen -S bot2

-33
-34

после запуска скреен сессии сворачиваем терминал и идем в файловый менеджер

-35
-36

папка root -bot2

-37

создаем файл с расширением py и вставляем в него файл бота

-38
-39

сохраняем код и возвращаемся в терминал на соседнюю вкладку и устанавливаем зависимости и библиотеки в нашем случае

pip3 install python-telegram-bot

-40

далее запускаем бот

python3 bot2.py

-41
-42

выходим из сессии оставляя бот запущенным в фоновом режиме

Ctrl +A, затем D

-43

деактивируем виртуально окружение

deactivate

и выходим из папки

cd

-44

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

screen -ls

-45

получаем список всех запущенных в фоновом режиме ботов

-46

чтобы попасть например в бота1 мы вводим следующую команду

screen -r 1436

-47

на скрине показано где и что берем, после ввода команды мы сразу попадаем в бота (переходы в папки и активации виртуального окружения уже не требуются)

-48

выходим из него Ctrl +A, затем D.

На этом все, сейчас шпаргалка и парочка кодов для теста.

  • # 1. Установка окружения Python
  • sudo apt install python3-venv
  • # 2. Создание и переход в директорию
  • mkdir bot1
  • cd bot1
  • # 3. Создание виртуального окружения
  • python3 -m venv bot1
  • # 4. Активация окружения
  • source bot1/bin/activate
  • # 5. Запуск screen
  • screen -S bot1
  • # 6. Создание файла бота в файловом менеджере
  • bot1.py # Вставьте код бота и сохраните
  • # 7. Установка библиотек
  • pip3 install pyTelegramBotAPI
  • # 8. Запуск бота
  • python3 bot1.py
  • Выход из screen (оставить бота работать): Ctrl+A, затем D
  • Остановка бота: Ctrl+C
  • Возврат к боту: screen -r bot_session


import telebot

# Создаем экземпляр бота

bot = telebot.TeleBot('YOUR_BOT_TOKEN')

# Обработчик команды /start

@bot.message_handler(commands=['start'])

def send_welcome(message):

bot.reply_to(message, "Привет! Я эхо-бот. Напиши мне что-нибудь, и я повторю это.")

# Обработчик всех остальных сообщений

@bot.message_handler(func=lambda message: True)

def echo_all(message):

bot.reply_to(message, message.text)

# Запускаем бота

if __name__ == '__main__':

print("Бот запущен...")

bot.infinity_polling()

from telegram import Update

from telegram.ext import Application, CommandHandler, MessageHandler, filters, ContextTypes

async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):

await update.message.reply_text("Привет! Я эхо-бот. Напиши мне что-нибудь, и я повторю это.")

async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE):

await update.message.reply_text(update.message.text)

def main():

# Создаем приложение

application = Application.builder().token('YOUR_BOT_TOKEN').build()

# Добавляем обработчики

application.add_handler(CommandHandler("start", start))

application.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo))

# Запускаем бота

print("Бот запущен...")

application.run_polling()

if __name__ == '__main__':

main()