Режим фонового воркера
Discord-бот не принимает входящие запросы - он сам держит websocket-соединение с гейтвеем. Включите режим «фоновый воркер», и лишний публичный домен вам не выдадут.
Написали бота на discord.py или discord.js, а держать его негде? Подключите репозиторий - Dada Cloud соберёт и запустит бота как фоновый процесс. Домен и вебхуки не нужны: бот сам подключается к Discord по websocket. Упал - поднимется сам. Бесплатный тариф, серверы в России.
Discord-бот не принимает входящие запросы - он сам держит websocket-соединение с гейтвеем. Включите режим «фоновый воркер», и лишний публичный домен вам не выдадут.
Бот на Python собирается по requirements.txt, на Node.js - по package.json. Писать Dockerfile или настраивать systemd не нужно.
Разрыв соединения с гейтвеем, необработанное исключение, обновление зависимостей - процесс перезапускается автоматически.
Префиксы команд, роли, экономика, история модерации - в managed-базе рядом, DATABASE_URL прокидывается сам.
Токен бота задаётся в консоли и приходит в процесс при старте. В репозиторий его класть не нужно - Discord отзывает засветившиеся токены автоматически.
Первого бота можно держать бесплатно, без привязки карты. Оплата рублями, когда бот вырастет.
Шесть шагов от кода до бота, который стоит онлайн круглосуточно.
В Discord Developer Portal создайте приложение, добавьте бота и скопируйте токен. Там же включите нужные привилегированные интенты - без Message Content Intent бот не увидит текст сообщений.
Для Python - requirements.txt с discord.py, для Node.js - package.json с discord.js. По этому файлу платформа поймёт, как собирать проект.
При создании включите режим «фоновый воркер, бот без HTTP» - публичный домен боту не нужен и выдаваться не будет.
Подключите GitHub-репозиторий - каждый пуш будет собирать новую версию. Без git подойдёт zip-архив до 100MB.
DISCORD_TOKEN и остальные секреты задаются в консоли. В коде читайте их через переменные окружения, а не из файла в репозитории.
Через минуту после сборки бот появится в списке участников сервера как онлайн. Логи подключения к гейтвею видны в панели.
Реальные тарифы платформы и честное сравнение с арендой своего VPS.
| Тариф | Цена | Что входит |
|---|---|---|
| Free | 0 ₽/мес | Один бот с базой, без привязки карты. Хватает боту на несколько серверов. |
| Startup | 990 ₽/мес | 5 приложений, 2 базы данных, бэкапы 7 дней - несколько ботов или бот с веб-панелью. |
| Business | 2 900 ₽/мес | 20 приложений, 10 баз данных, бэкапы 30 дней, приоритетная поддержка. |
| Свой VPS | сравнимо по железу | VPS дешевле по железу. Но systemd или pm2, бэкапы базы и перезапуск после падения - это ваше время. |
Три места, где деплой Discord-бота обычно спотыкается.
Message Content, Server Members и Presence Intent включаются в Developer Portal и объявляются в коде. Если их нет, бот запустится, но не увидит текста сообщений - и это выглядит как «бот не работает».
Обычное приложение вместо воркера получит домен, который никто не откроет. Ставьте режим фонового воркера: так бот не тратит ресурсы на веб-часть.
Диск приложения очищается при новой сборке, поэтому SQLite-файл или json с настройками исчезнет при следующем деплое. Состояние храните в PostgreSQL.
Нет. Discord-бот сам открывает websocket-соединение к гейтвею и получает события по нему - входящих запросов он не принимает. Поэтому его запускают как фоновый воркер, без домена. Домен нужен только если вы делаете interactions endpoint через HTTP.
Оба. Python-бот собирается по requirements.txt, Node.js-бот - по package.json. Команда запуска берётся из проекта, Dockerfile не нужен.
Да: бот подключается к гейтвею Discord исходящим соединением, и оно проходит - мы проверяли с боевого кластера. Пользователям бота в Discord может понадобиться VPN - это на их стороне, на работу самого бота не влияет.
В переменных окружения приложения. Они задаются в консоли и попадают в процесс при старте, в репозиторий и в образ токен не попадает.
Процесс перезапустится автоматически, и бот заново подключится к гейтвею. Логи падения видны в панели.
В managed PostgreSQL рядом с ботом - DATABASE_URL появится в переменных окружения сам. Локальный SQLite-файл не переживёт следующую сборку.
Первого бота можно держать на бесплатном тарифе Free без привязки карты. Дальше - Startup 990 ₽/мес или Business 2 900 ₽/мес, оплата рублёвой картой.
Да, каждый бот - отдельное приложение. На бесплатном тарифе поместится один, на Startup - до пяти.
Создайте аккаунт и разверните первое приложение. План Free — 0 ₽.