Bastion объединяет в одном Discord-боте модерацию и автомодерацию, уровни, приветствия, starboard, розыгрыши, опросы, музыку, игры и многое другое. Его база данных MongoDB работает на вашем сервере рядом с ботом, поэтому нужен тариф с памятью не меньше 2 ГБ. От вас нужны только токен бота и три включённых интента.
- В Discord Developer Portal создайте бота, скопируйте его токен и на странице Bot включите Presence Intent, Server Members Intent и Message Content Intent.
- В панели сделайте так, чтобы сервер запускал Bastion (Изменить, что запускается).
- Вставьте токен в карточку Настройка бота на странице Обзор и пригласите бота.
- Нажмите Запустить бота. Bastion опубликует свои слэш-команды и появится в сети.
Каждый шаг разобран ниже.
Перед началом
- Создайте бота и скопируйте его токен: Как создать Discord-бота и получить его токен.
- На странице Bot вашего приложения включите все три привилегированных интента и нажмите Save Changes: при входе Bastion запрашивает у Discord Server Members, Presence и Message Content.
- Вашему тарифу нужно 2 ГБ памяти или больше. На меньшем тарифе Bastion не предлагается: перейдите на более крупный тариф в разделе Мой тариф, Сменить тариф.
1. Настройте сервер на запуск Bastion
- Откройте сервер в панели. На странице Обзор, в карточке Настройка бота, нажмите шаг Что запускается. Если тип уже правильный, там написано «Этот бот запускает Bastion.»
- Если нет, нажмите Изменить, что запускается, выберите Bastion, нажмите Дальше, поставьте галочку подтверждения и нажмите Сменить тип сервера. Установка собирает Bastion, поэтому она занимает несколько минут.
2. Подключите его к Discord
- Шаг Подключение к Discord: вставьте токен в поле Вставьте токен бота, нажмите Подключить, затем Да, продолжить, если имя и картинка принадлежат вашему боту.
- Шаг Разрешения: в таблице Привилегированные интенты пункты Server Members, Message Content и Presence отмечены как Нужно для Bastion. Для каждого должно быть Вкл. После изменений в Portal нажмите Проверить снова.
- В разделе Ссылка-приглашение нажмите Добавить на сервер Discord. Ссылка уже запрашивает обычные текстовые разрешения, Подключаться, Говорить и Использовать режим активации по голосу для музыки, а также Выгонять участников, Банить участников, Отправлять участников в тайм-аут и Управление ролями для модерации. Приглашали бота раньше с меньшим набором разрешений? Нажмите кнопку ещё раз и выберите тот же сервер: Discord обновит разрешения бота.

3. Запустите бота
- Нажмите Запустить бота в карточке настройки или Запустить в Console. После строк о запуске MongoDB в консоли появится:
[PlayNHost] Publishing Bastion's slash commands to Discord
[PlayNHost] Slash commands published
[PlayNHost] Starting your bot
- На своём сервере Discord введите
/, чтобы увидеть команды Bastion, например/pollи/giveaway.
Для запуска ничего заполнять в разделе Код, Настройки не нужно: Bot Client ID (optional) читается из токена.
Настройки
На вкладке Бот, в разделе Код, на карточке Настройки есть следующие параметры. После изменения нажмите Сохранить, затем перезапустите бота.
| Настройка | По умолчанию | Что она делает |
|---|---|---|
| Bot Client ID (optional) | пусто | Client ID вашего приложения. Если пусто, он читается из токена. |
| Your Discord user ID (optional) | пусто | Делает вас владельцем бота. |
| MongoDB address | mongodb://127.0.0.1:27017/bastion | Оставьте как есть, чтобы использовать базу данных на вашем сервере. |
| Публиковать команды при запуске | true | При каждом запуске регистрирует слэш-команды Bastion в Discord. |
| Музыкальная активность | true | Показывает играющую песню как активность бота. |
| Пересылать личные сообщения | false | Пересылает владельцу бота личные сообщения, которые получает бот. |
| Unsafe mode | false | Разрешает команды exec и eval, которые выполняют код на вашем сервере. Оставьте выключенным, если бот принадлежит не только вам. |

Всё остальное, например API-ключи для команд поиска и ИИ в Bastion, находится в settings.yaml в разделе Files. Редактируйте его при остановленном боте, затем запустите бота.
Строки консоли, которые вы можете увидеть
[PlayNHost] Bastion is not set up yet: it needs your Discord bot token.
Вставьте токен на вкладке Бот, в разделе Discord, затем нажмите Запустить.
[PlayNHost] The commands could not be published (...). Bastion starts anyway; the full log is .pnh/publish-commands.log.
Discord отклонил список команд, чаще всего из-за неверного токена. Полную причину смотрите в .pnh/publish-commands.log в разделе Files. Если проблема в токене, нажмите Reset Token в Portal и вставьте новый через Заменить токен.
[PlayNHost] Bastion is not installed. Reinstall it on the Bot page, Code, then press Start.
Файлы бота отсутствуют. Нажмите Переустановить на карточке Переустановить в разделе Код, подтвердите, а когда установка закончится, нажмите Запустить.
Полезно знать
- Память: MongoDB и Bastion делят память вашего тарифа, поэтому память JavaScript у Bastion ограничена половиной тарифа, чтобы осталось место для базы данных. Следите за карточкой Использование на странице Обзор: Сколько RAM нужно Discord-боту
- База данных хранится в папке
mongodbв разделе Files, поэтому бэкап сервера включает её: Как создавать, скачивать и восстанавливать бэкапы. - Версия зафиксирована: Bastion v10.16.0, самый новый выпуск, который работает на Node.js 20 этого сервера. Переустановить в разделе Код собирает его заново и сохраняет
settings.yamlи базу данных. - Что сможет играть музыка Bastion, зависит от того, что разрешает каждый сайт: Discord-бот для музыки не играет: решения.
Все параметры каждого готового бота: Как изменить настройки готового бота.



