Узнайте, как разместить несколько Telegram ботов на одном сервере Beget всего за 7 рублей в сутки. Пошаговая инструкция с настройкой виртуального окружения для каждого бота и управлением через screen сессии.
Первым делом регистрируемся по ссылке https://beget.com/p2239517/ru/vps - ссылка реферальная + она ведет именно в тот раздел который нас интересует, при самостоятельной регистрации просто выберете нужный раздел - "Облако".
после регистрации сразу попадаете в данный раздел, где необходимо выбрать регион расположения сервера, то есть если в своих проектах Вы планируете использовать например openai, то естественно нужно будет выбрать европу, либо азию, но я буду показывать именно на России, поскольку самые дешевые сервера, всего 7 рублей в сутки.
Далее листаем в самый низ. По умолчанию установлен Ubuntu 24.04 его и будем использовать, он один из самых популярных универсальных дистрибутивов.
И самое главное что здесь нас интересует это пароль! Обязательно его необходимо задать (именно свой пароль), поскольку если его не зададите, то потом могут возникнуть проблемы со входом в терминал.
После того как зададите пароль нажимайте кнопку - Создать виртуальный сервер, далее выпадет окно оплаты. Минимум можно оплатить 15 рублей, после подтверждения оплаты, жмите кнопку продолжить. у вас автоматически создастся сервер.
Необходимо дождаться когда статус изменится на - Запущен.
Переходим в терминал.
Вводим логин: root , жмем Enter и вводим пароль который мы задавали ранее при регистрации.
С вводом пароля не тормозите, для этого есть всего 60 секунд, далее идет сброс до логина, то есть повторно нужно будет начинать с логина
Важно! Пароль вводится скрыто, то есть при нажатии клавиш ощущение, что ничего не происходит, но продолжайте ввод и нажимайте Enter.
После успешного соединения с сервером Вы увидите такое окно 👇
Если Вам удалось сюда попасть, значит всё отлично!
При установке сервера первым делом нам необходимо разово установить окружение Python следующей командой
sudo apt install python3-venv
после ввода команды жмем Enter, скопировать и вставить в терминал не получится, только ручной ввод.
На любые вопросы отвечайте - Y
Эти действия Вы делаете 1 раз, далее всё просто: создаем папку командой
mkdir название_папки
рекомендую всегда называть просто bot1, bot2.... также чтобы не путаться в дальнейшем и виртуальное окружение и сам файл бота я называю также. Далее переходим в только что созданную папку командой
cd bot1
далее нам необходимо создать виртуальное окружение командой
python3 -m venv название
и активировать данное виртуальное окружение командой
source название/bin/activate
проверить успешно ли активировалось виртуальное окружение просто, с левой стороны в круглых скобках появится название виртуального окружения.
Далее создаем скреен сессию командой
screen -S название
после запуска скреен сессии у Вас должен открыться как будто новый терминал
сворачиваем данный терминал и идем в файловый менеджер
Переходим в папку root
Далее переходим в созданную нами папку bot1
жмем правой кнопкой мыши в свободную область в папке bot1 (в самой папке есть еще папка bot1, ее не трогаем)
создаем файл с названием бота с расширением py обязательно!
Нажимаем ОК, открываем только что созданный нами файл и вставляем туда код нашего бота, примеры простеньких кодов я оставлю в конце статьи, может пригодятся.
Обязательно сохраняем и возвращаемся в терминал на соседнюю вкладку
В терминале мы устанавливаем зависимости и бибилиотеки, если не знаете какие, то ИИ подскажет, но команда в скреен сессии всегда будет начинаться с pip3 .... в нашем случае устанавливаем
pip3 install pyTelegramBotAPI
И наконец запускаем бота командой
python3 bot1.py
бот запущен и работает, чтобы его остановить жмем Ctrl+C, чтобы запустить пишем опять команду
python3 bot1.py
Чтобы бот работал и при закрытом компьютере и терминале необходимо запустить его в фоновом режиме, мы всё для этого подготовили сейчас просто нужно выйти из скреен сессии применив следующее сочетание клавиш
Ctrl +A, затем D
далее необходимо деактивировать виртуальное окружение командой
deactivate
при деактивации должно пропасть название виртуального окружения в круглых скобках
После этого выходим из нашей папки bot1 b переходим в родительскую директорию командой
cd
и теперь разместим второго бота, начинаем все по кругу)
создаем папку
mkdir bot2
переходим в нее
cd bot2
создаем виртуальное окружение
python3 -m venv bot2
активируем виртуальное окружение
source bot2/bin/activate
запускаем скреен сессию
screen -S bot2
после запуска скреен сессии сворачиваем терминал и идем в файловый менеджер
папка root -bot2
создаем файл с расширением py и вставляем в него файл бота
сохраняем код и возвращаемся в терминал на соседнюю вкладку и устанавливаем зависимости и библиотеки в нашем случае
pip3 install python-telegram-bot
далее запускаем бот
python3 bot2.py
выходим из сессии оставляя бот запущенным в фоновом режиме
Ctrl +A, затем D
деактивируем виртуально окружение
deactivate
и выходим из папки
cd
Теперь рассмотрим вариант как вернуться к боту и продолжить с ним работу. либо у Вас вывод логов и Вы хотите посмотреть что происходит, вызываем следующей командой список всех запущенных скреен сессий
screen -ls
получаем список всех запущенных в фоновом режиме ботов
чтобы попасть например в бота1 мы вводим следующую команду
screen -r 1436
на скрине показано где и что берем, после ввода команды мы сразу попадаем в бота (переходы в папки и активации виртуального окружения уже не требуются)
выходим из него 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()