Как загрузить Telegram-бота и запустить его
Как запустить своего бота Telegram или Discord: заказ сервера с готовым шаблоном, загрузка кода файловым менеджером, токен от BotFather и первая строка в консоли.
Здесь по шагам показано, как поднять на хостинге своего бота Telegram или Discord — от заказа сервера до первой строки, которую бот напечатает в консоли. ⏱️ Весь путь занимает минут пятнадцать, и большая часть этого времени уходит на установку, в которой от вас ничего не требуется.
Бот здесь — это обычный проект на Python или на Node.js, тот же самый, что запускался у вас на компьютере. Ни собирать его во что-то особенное, ни переписывать под нас не нужно: панель запускает файл интерпретатором, ровно как это делаете вы у себя в терминале.
Что приготовить заранее
- Код бота. Один файл или целый проект с папками — неважно, лишь бы он запускался у вас одной командой.
- Токен. Строка, которую выдаёт @BotFather прямо в Telegram; у Discord её выдаёт портал разработчика. Без токена бот запустится, но ни к одной платформе не подключится.
- Список библиотек —
requirements.txtу Python,package.jsonу Node.js. Файла нет — библиотеки не поставятся, и бот упадёт на первой же строкеimport.
Заказ сервера
- Создать сервер
Направление — «Игровой сервер»
Отдельного направления под ботов нет, и это не недоделка. Бот живёт на той же игровой ноде, под тем же присмотром, с тем же файловым менеджером и теми же бэкапами, что сервер Minecraft. Направление «VPS» берут в другом случае — когда нужна вся система целиком.
- Во что играем
Возьмите карточку «Бот»
Она стоит в конце ряда — не потому, что хуже, а потому, что шаг называется «Во что играем», а в бота не играют. Следом откроется шаг «Язык бота» с двумя строками: «Python» и «Node.js». Выбирают по своему коду: в контейнере стоит Python 3.12 или Node.js 22.
- Сколько нужно мощности
Выберите тариф и период
Боту нужно заметно меньше, чем игровому серверу: мира он не держит и чанков не считает. Помните только, что установка библиотек тоже занимает и память, и место на диске — самый маленький тариф в каталоге под ботов и не показывается.
- Настройки бота
Заполните четыре поля
Шаг так и называется — «Настройки бота», потому что мира у него нет. Полей четыре: «Платформа», «Токен бота», «Файл запуска» и «Ставить зависимости при запуске». Разбор каждого — ниже; все четыре меняются и потом, во вкладке «Настройки игры».
- Где поставим · Как назовём
Выберите город и имя
Город влияет на задержку до платформы, и для бота она почти всегда безразлична: он не держит игроков, а ждёт сообщений. Имя — только для вас, в панели по нему находят сервер.
Что лежит в каталоге сразу после установки
Установка не приносит кода бота — его выкладываете вы. Она готовит каталог и оставляет заготовку: bot.py у Python, index.js у Node.js. В консоли при этом появляются строки «Заготовка bot.py создана» и «Установка завершена».
Заготовка не притворяется работающим ботом. Она печатает две строки — что каталог пуст и что точку входа задаёт настройка «Файл запуска», — а дальше просто ждёт. Поэтому сервер сразу после заказа выглядит как работающий сервер с понятным сообщением, а не как бесконечный цикл падений.
Загрузка своего кода
- Файлы
Откройте корень каталога
Верхняя папка в строке пути называется «Сервер» — это и есть корень каталога сервера. Всё, что описано дальше, происходит именно в нём, и это важнее, чем кажется: стартовая команда выполняется здесь же.
- Файлы
Загрузите архив с проектом
Нажмите «Загрузить файлы» или перетащите файл прямо в список. Один файл — до 100 МиБ; столько же принимает и нода. Проекты ботов укладываются в этот предел с огромным запасом:
node_modulesи виртуальное окружение загружать не нужно вовсе, библиотеки поставятся на сервере сами. - Файлы
Распакуйте его на месте
Нажмите на строку архива и выберите «Распаковать здесь». Панель принимает
.zip,.7z,.rar,.tar,.tar.gz,.tgz,.tar.bz2,.tar.xzи.tar.zst. Распаковка на ноде быстрее, чем загрузка сотни файлов по одному. - Файлы
Проверьте, что файлы легли в корень
После распаковки в списке должны лежать сам файл запуска и список библиотек — рядом друг с другом, а не внутри папки. Если в корне оказалась одна единственная папка с именем вашего проекта, читайте плашку ниже: вы попали в самую частую ловушку.
- Настройки игры
Укажите файл запуска
Поле «Файл запуска» должно называть тот файл, который вы запускаете у себя командой. Путь считается от корня каталога сервера: код в папке
src— значит, в поле стоитsrc/main.py. Внизу страницы — «Сохранить настройки». - Шапка сервера
Перезапустите сервер
Настройки читаются в момент запуска, поэтому после сохранения панель пишет прямо: «Сервер работает: записанные значения он прочитает при следующем запуске — понадобится перезапуск». Рядом появляется кнопка «Перезапустить сейчас».
Написать в «Файле запуска» полный путь с папкой — my-bot/bot.py — можно, и бот даже стартует. Но библиотек он всё равно не получит: их список ищут в корне, и обойти это настройкой нельзя. Поэтому правильный ответ один — пересобрать архив так, чтобы файл запуска и список библиотек лежали в его корне. В архиватор кладут содержимое папки, а не саму папку.
Четыре настройки бота
Все четыре лежат во вкладке «Настройки игры» — да, у бота она называется так же, как у игрового сервера. По именованным разделам они не разложены, поэтому искать надо по названию поля, в разделе «Прочее».
| Поле | Что делает | Пределы |
|---|---|---|
| Платформа | Telegram или Discord. Уходит в окружение, чтобы код мог ветвиться, и решает, на какую выдачу токена панель покажет ссылку. На образ и на команду запуска не влияет | два значения |
| Токен бота | Уходит в контейнер переменной окружения BOT_TOKEN. Хранится запечатанным и обратно в форму не возвращается | до 200 знаков, без пробелов и кавычек |
| Файл запуска | Что именно запускать. Путь считается от корня каталога сервера | до 64 знаков; буквы, цифры, точка, подчёркивание, дефис и слэш |
| Ставить зависимости при запуске | Ставить ли библиотеки перед каждым запуском. Выключают, когда они уже лежат рядом и лишняя минута на старте не нужна | включено по умолчанию |
Первый запуск: что видно в консоли
[hcp] установка зависимостей— обёртка начала ставить библиотеки. Строки не будет, если список не найден в корне или переключатель выключен.[hcp] запуск бота— библиотеки встали, сейчас запустится ваш код. По этой строке панель и считает сервер запущенным.- Дальше идут строки вашего кода — те же, что вы видите у себя в терминале.
Напишите боту
Откройте в Telegram переписку со своим ботом и отправьте /start. Пришёл ответ — всё сделано. Бот молчит, а ошибок в консоли нет — дело почти всегда в коде: не подписан обработчик или запускается не тот файл. Остальные случаи разобраны в статье про то, почему бот не запускается.