Боты
Как выложить Discord-бота без сервера
Коротко
Discord-бота можно запустить без своего сервера: загрузите код на платформу, которая сама соберет проект, и укажите токен из Discord Developer Portal. В Netrun язык определяется автоматически, Dockerfile писать не нужно, а токен хранится в секретах отдельно от кода. На бесплатном тарифе бот работает ограниченное время, а чтобы он был в сети круглосуточно, нужен тариф Pro.
- Токен Discord-бота копируется в Discord Developer Portal, в разделе Bot созданного приложения.
- Discord-бота на Node.js обычно пишут на discord.js с файлом package.json, а на Python — на discord.py с файлом requirements.txt.
- Discord-боту не нужны порт и публичная ссылка: он сам подключается к серверам Discord и держит соединение.
- На бесплатном тарифе Netrun бот работает ограниченное время, а код, настройки и токен после остановки сохраняются.
- При падении Netrun перезапускает бота автоматически, а логи видны в кабинете в реальном времени.
Чтобы Discord-бот был онлайн круглые сутки, обычно арендуют VPS и держат на нем процесс — настраивают автозапуск, следят, чтобы бот не падал, и платят за сервер каждый месяц.
Netrun убирает эту часть: вы загружаете код бота и указываете токен — запуск и поддержание в работе на нас. Разберем по шагам.
Подготовьте код бота#
Соберите проект в одну папку с файлом зависимостей: package.json для Node.js (discord.js) или requirements.txt для Python (discord.py). Токен читайте из переменной окружения, а не из кода.
Получите токен в Developer Portal#
Откройте Discord Developer Portal, создайте приложение и бота, затем скопируйте токен в разделе Bot. Это ключ доступа к боту — держите его в секрете.
Загрузите проект в Netrun#
ZIP-архивом или импортом из GitHub. Netrun сам определит язык и соберет проект — Dockerfile писать не нужно.
Укажите токен и запустите#
Впишите токен бота в секреты при настройке и нажмите запуск — Netrun запустит бота на своих серверах.
Проверьте, что бот онлайн#
Откройте свой сервер в Discord — бот должен появиться в списке участников со статусом «в сети» и отвечать на команды.
На бесплатном тарифе бот работает ограниченное время, а потом выключается: код, настройки и токен остаются на месте, ничего не удаляется, и незадолго до выключения вы получите предупреждение. Чтобы бот оставался в сети без ограничения по времени, нужен тариф Pro. Так же запускается и Telegram-бот. Попробовать Netrun.
Частые вопросы
Почему бот в сети, но не отвечает на команды?
Часто бот просто не видит текст сообщений: для команд с префиксом вроде !help в Developer Portal, в разделе Bot, нужно включить Message Content Intent и запросить его же в коде. Слэш-командам этот доступ не нужен, но их нужно зарегистрировать. Если все включено, загляните в логи в кабинете — ошибка обычно видна там.
Как добавить бота на свой сервер Discord?
В Developer Portal откройте раздел OAuth2 и сгенерируйте ссылку-приглашение со scope bot (и applications.commands, если у бота есть слэш-команды) и нужными правами. Перейдите по ссылке и выберите сервер, на котором у вас есть право управлять сервером.
Что делать, если токен бота утек?
Сразу сбросьте его в Developer Portal кнопкой Reset Token в разделе Bot: старый токен перестанет работать. Новый вставьте во вкладке «Секреты» в Netrun и запустите публикацию заново, чтобы бот подхватил новое значение.
Сколько бот проработает на бесплатном тарифе?
Ограниченное время: оно считается на аккаунт и только пока бот действительно работает. Потом бот остановится, а незадолго до этого придет предупреждение. Код, настройки и токен сохраняются, а на тарифе Pro бот работает круглосуточно.
Можно ли написать Discord-бота на Python, а не на Node.js?
Да. Netrun определяет язык по файлам проекта: requirements.txt — Python, package.json — Node.js. Подойдут и discord.py, и discord.js, а также боты на других поддерживаемых языках.