Перейти до вмісту
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БотВідкрити
Документація