Перейти к содержимому
Discord

Установка сервера Discord

Руководство показывает, как создать приложение и бота в портале разработчиков Discord, защитить токен, пригласить бота на сервер сообщества и запустить его круглосуточно на Linux VPS (systemd, pm2 или Docker). Потребуется 30–45 минут; для небольшого бота хватит VPS начального уровня.

Последнее обновление: 09.10.2026

Руководство показывает, как создать приложение и бота в портале разработчиков Discord, защитить токен, пригласить бота на сервер сообщества и запустить его круглосуточно на Linux VPS (systemd, pm2 или Docker). Потребуется 30–45 минут; для небольшого бота хватит VPS начального уровня.

Пошаговая установка

  1. Включите двухфакторную аутентификацию в аккаунте Discord и установите актуальную LTS-версию Node.js (или Python).

  2. Создайте приложение на discord.com/developers/applications (New Application).

  3. Вкладка Bot: сгенерируйте токен (Reset Token) и один раз скопируйте его в менеджер паролей или файл .env.

  4. Включайте только реально используемые Privileged Gateway Intents (Presence, Server Members, Message Content).

  5. Сгенерируйте ссылку-приглашение (scopes bot + applications.commands, минимум прав) инструментом «Ссылка-приглашение бота».

  6. Откройте ссылку, выберите сервер (нужно право «Управление сервером») и подтвердите.

  7. Напишите минимального бота (discord.js) и проверьте локально с токеном в .env.

  8. Подготовьте Linux VPS: пользователь без root, файрвол, Node.js (см. руководство «Подготовка VPS»).

  9. Разверните код, поместите токен в файл .env (chmod 600) и запустите бота через systemd, pm2 или Docker.

  10. Настройте сервер сообщества: роли, каналы, права, вебхуки и модерацию.

Требования

Нужны аккаунт Discord (с 2FA), сервер, которым вы владеете или управляете, и Node.js LTS (или Python): проверьте минимальную версию для вашей версии discord.js. Для хостинга — Linux VPS (для небольшого бота обычно хватает 1 vCPU и 512 МБ–1 ГБ RAM, подстройте под свой код). Никогда не передавайте токен бота: он даёт полный контроль над ботом.

Создание приложения и бота

  • discord.com/developers/applications → New Application → имя → Create.
  • General Information: скопируйте Application ID (публичный client_id).
  • Bot → Reset Token → скопируйте токен (показывается один раз).
  • Если токен утёк (публичный Git-репозиторий, скриншот…), немедленно нажмите Reset Token.

Защита токена (.env)

Никогда не храните токен в коде. Используйте файл .env, исключённый из Git и доступный только вашему пользователю. Пример (фиктивное значение):

echo 'DISCORD_TOKEN=ChangeMe!' > .env
chmod 600 .env
echo '.env' >> .gitignore

Privileged Intents

  • Server Members Intent: события входа/выхода и полный список участников.
  • Message Content Intent: чтение текста сообщений (не нужен, если только слэш-команды).
  • Presence Intent: статусы присутствия участников.
  • При превышении определённого числа серверов (100 по политике Discord на момент написания) эти интенты требуют верификации бота: проверьте актуальные правила.

Пригласить бота

Ссылка-приглашение выглядит так (фиктивный client_id, permissions = 3072: видеть и писать в каналах). Посчитайте число в калькуляторе прав и соберите ссылку инструментом:

https://discord.com/oauth2/authorize?client_id=123456789012345678&scope=bot%20applications.commands&permissions=3072

Минимальный бот (discord.js)

Установка: npm init -y && npm install discord.js dotenv. Файл index.js (актуальный API — на discordjs.guide):

require('dotenv').config();
const { Client, Events, GatewayIntentBits } = require('discord.js');

const client = new Client({ intents: [GatewayIntentBits.Guilds] });

client.once(Events.ClientReady, (c) => console.log(`Logged in as ${c.user.tag}`));

client.login(process.env.DISCORD_TOKEN);

Хостинг через systemd

Файл /etc/systemd/system/discord-bot.service (поправьте User и пути; путь к node — «which node»). Затем: sudo systemctl daemon-reload && sudo systemctl enable --now discord-bot; логи: journalctl -u discord-bot -f.

[Unit]
Description=Discord bot
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=botuser
WorkingDirectory=/home/botuser/bot
EnvironmentFile=/home/botuser/bot/.env
ExecStart=/usr/bin/node index.js
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

Хостинг через pm2

pm2 перезапускает процесс при сбое. Команда «pm2 startup» выводит команду sudo, которую нужно выполнить, чтобы pm2 стартовал при загрузке.

sudo npm install -g pm2
pm2 start index.js --name discord-bot
pm2 save
pm2 startup
pm2 logs discord-bot

Хостинг через Docker

Dockerfile ниже (версию Node подберите по требованиям discord.js). Соберите и запустите, передав токен через env-файл: docker build -t discord-bot . && docker run -d --restart unless-stopped --env-file .env --name discord-bot discord-bot

FROM node:lts-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --omit=dev
COPY . .
USER node
CMD ["node", "index.js"]

Настройка сервера сообщества

  • Роли: создайте роли по функциям (админ, модератор, участник) с минимумом прав; роль бота должна стоять выше управляемых ролей.
  • Каналы: категории (приветствие, правила, общий, поддержка, голос) и права по категориям, а не по каналам.
  • Вебхуки: чтобы публиковать состояние игровых серверов, соберите embed инструментом «Конструктор embed для вебхука».
  • Модерация: уровень проверки, AutoMod, журнал аудита; включите требование 2FA для модераторов в настройках сервера.
  • Видимость: добавьте игровой сервер на game-rank.com/jeux, чтобы его находили.

Устранение неполадок

  • «TokenInvalid» / «An invalid token was provided»: неверный токен, лишний пробел или токен сброшен. Скопируйте заново через Reset Token.
  • «Used disallowed intents»: включите нужный привилегированный интент на вкладке Bot или уберите его из кода.
  • «Missing Access» / «Missing Permissions»: у бота нет прав в этом канале или его роль слишком низко в иерархии.
  • Слэш-команды не появляются: в приглашении не было scope applications.commands либо команды не зарегистрированы (деплой); пригласите бота заново правильной ссылкой.
  • Бот отключается на VPS: смотрите логи (journalctl -u discord-bot -f), проверьте свободную память и наличие Restart=on-failure.

Частые вопросы

Бесплатен ли бот Discord?
Создание бота в портале разработчиков бесплатно. Платить придётся только за хостинг (VPS или постоянно включённый компьютер) — несколько евро в месяц.
Что делать, если токен утёк?
Сразу нажмите Reset Token на вкладке Bot, обновите .env, перезапустите бота и проверьте журнал аудита сервера.
systemd, pm2 или Docker?
systemd — самый лёгкий и встроен в Linux; pm2 удобен, если у вас несколько процессов Node.js; Docker изолирует окружение и делает деплой воспроизводимым. Все три перезапускают бота после сбоя.
Нужен ли открытый порт для хостинга бота?
Нет: бот сам открывает исходящее соединение с Discord. Для администрирования нужен лишь доступный порт SSH (если вы не публикуете веб-сервер).

Инструменты для сервера Discord

Discord
DiscordСвободный доступ
Составьте сообщение вебхука Discord с embed, живым предпросмотром, JSON и примером curl. Сайт ничего не отправляет.
ВебхукEmbedОткрыть
Документация
Discord
DiscordСвободный доступ
Преобразуйте число прав Discord в флажки и обратно по официальным значениям битов.
ПраваБотОткрыть
Документация
Discord
DiscordСвободный доступ
Соберите OAuth2-ссылку приглашения бота: client_id, scopes, права, предвыбранный сервер.
OAuth2БотОткрыть
Документация