Как создать телеграм-бота на облачном сервере

    Команда Simple-Server
    03.06.2026
    7 мин

    Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.

    Преимущества облачного сервера для Telegram-бота

    Чтобы бот заработал, его необходимо зарегистрировать в Telegram. За регистрацию отвечает BotFather.

    Шаг 1. Найдите пользователя @BotFather. В приветствии можно изучить общую документацию о ботах и API. В самом низу нажимаем кнопку «Запустить», в ответ получим список возможных команд и что они делают.

    Шаг 2. Нам нужно зарегистрировать нового бота, поэтому выбираем команду:

    Шаг 3. Теперь необходимо придумать имя нашего бота. Указываем что угодно, для примера напишем:

    Шаг 4. Следующий шаг – необходимо придумать логин. Обратите внимание, чтобы логин заканчивался на «bot» в любом его виде, либо «*Bot», либо «_bot»:

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

    При успешной регистрации в ответ получим приветственное сообщение и ключ для HTTP-API. Сохраните ключ в надёжном месте.

    Если потерялся сохранённый ключ, узнать его можно при помощи команды /token. Далее выберите бота, для которого нужен новый ключ. Заново создавать бота не потребуется.

    Проверка и настройка бота

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

    Вернёмся в @BotFather и попросим его показать наших ботов:

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

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

    Подготовка рабочего пространства

    Для запуска бота нам понадобится рабочее пространство. В нашем случае мы будем использовать облачный сервер. Подойдёт даже самая простая конфигурация, а из операционных систем порекомендуем Ubuntu или Debian. Но отметим, ввиду того, что обновления для Debian выходят с большим опозданием, скорее всего, версии нужных пакетов не будут соответствовать минимальным требованиям программ-клиентов и придётся собирать нужную версию Python из исходников.

    Выбор языка программирования

    Самые распространённые боты написаны на языке Python. Установить Python на облачный сервер можно командой:

    sudo apt-get install python3 python3-pip

    После установки проверить версию:

    Одной из последних версий является 3.11, но для работы нашего примера подойдёт и 3.7.

    Установка python-telegram-bot

    Создадим каталог для виртуального окружения, зайдём в него и установим копию Python:

    mkdir bot_env && cd bot_env

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

    После успешной активации перед строкой для ввода команд появится venv. Теперь установим клиент:

    pip install python-telegram-bot

    Деактивировать виртуальное окружение можно, набрав:

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

    При деактивированном окружении в нашем примере набираем:

    ./bot_env/venv/bin/python3

    Примеры ботов можно найти на этой странице. Для демонстрации работы используем пример echobot.py, сохраните его в домашнюю папку (по умолчанию это /root). Если используется виртуальное окружение, директория будет /root/bot_env. Необходимо в 67 строке заменить слово TOKEN на ключ, полученный при регистрации.

    Загрузить пример можно сначала на свой компьютер, отредактировать файл и загрузить через файловый менеджер, например WinSCP.

    Запустить пример можно, набрав в консоли:

    После успешного запуска в ответ получим:

    telegram.ext._application - INFO - Application started

    Наш бот echobot.py умеет читать сообщения и отсылать ответ. Найдём в Телеграм пользователя с ником, который мы указывали при регистрации: @{никнейм}Bot и нажмём кнопку «Запустить» или отправим команду /start.

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

    echobot.py – самый простой демонстрационный бот. На странице примеров python-telegram-bot есть более сложные рабочие заготовки, которые можно сразу опробовать и применить для своих нужд с минимальными правками.

    Чтобы бот автоматически запускался при загрузке системы, создадим свою службу в Systemd. Systemd доступен в новых версиях Ubuntu и в Debian версии 8.

    Если не использовалось виртуальное окружение, нам потребуется полный путь к Python. Узнать, где он установлен, можно командой:

    В ответ получим строку вида:

    Перейдём в каталог Systemd:

    • в Debian: /usr/lib/systemd/system/
    • Ubuntu: /lib/systemd/system/

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

    [Unit] Description=My Python Bot After=network.target network-online.target [Service] Type=simple User=root Group=root Restart=on-failure ExecStartPre=/bin/mkdir -p /var/run/bot PIDFile=/var/run/bot/service.pid ExecStart=<путь к питону> <путь к скрипту бота> [Install] WantedBy=multi-user.target

    Возможные значения ExecStart:

    • без venv: ExecStart=/usr/local/bin/python3 /root/echobot.py
    • в venv: ExecStart=/root/bot_env/venv/bin/python3 /root/bot_env/echobot.py

    Сохраняем файл, выставляем разрешения не ниже 644, перезагружаем Systemd:

    Добавляем службу бота в автозагрузку:

    systemctl enable bot.service

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

    В ответ получим информацию о службе. Нас интересуют 2 пунка:

    Loaded: loaded Active: inactive

    Служба добавлена (loaded), но не запущена (inactive), запустить её можно, перезагрузив облачный сервер или выполнив команду:

    Ещё раз проверяем состояние службы, значение «Active» должно стать active (running) и быть зелёного цвета.

    Представленный пример на Python представлен как самый простой. Telegram – достаточно популярный, существуют клиентские программы, написанные на разных языках: Java, PHP, NodeJS и прочее. Все имеют готовые примеры для подключения и получения сообщений, нужную логику работы реализует сам пользователь.

    В сети можно найти разные готовые скрипты викторин, опросников или прочих развлечений.


    Нужен сервер для практики? Арендуйте VPS/VDS в России — root-доступ, NVMe, DDoS-защита и поддержка 24/7.

    VPS для проекта

    VPS с root-доступом, NVMe и поддержкой 24/7 на Simple-Server.

    StarterVDS

    490

    в месяц

    1 ядро

    1 ГБ RAM

    20 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Безлимитный трафик
    Заказать VPS
    Рекомендуем

    PerformanceVDS

    1190

    в месяц

    2 ядра

    4 ГБ RAM

    60 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Базовая DDoS-защита
    Заказать VPS

    Нужна другая конфигурация или чистый VPS без панели?

    Все тарифы VPS

    Похожие статьи, которые могут быть вам интересны