OffshoreVps
آموزش‌ها7 اکتبر 20265 دقیقه مطالعهنوشته‌ی تیم OffshoreVps

چگونه یک ربات Discord را روی VPS میزبانی کنیم

یک ربات Discord بسازید، ربات discord.js را روی VPS لینوکسی مستقر کنید و با systemd آنلاین نگه دارید، همراه با نکاتی درباره‌ی توکن و intentها.

ربات Discord به gateway دیسکورد وصل می‌شود و متصل می‌ماند، پس به ماشینی نیاز دارد که همیشه روشن باشد. یک VPS کوچک ارزان است، آنلاین می‌ماند و به اینترنت خانه‌تان وابسته نیست. این راهنما یک ربات Node.js را با discord.js مستقر می‌کند و با systemd زنده نگه می‌دارد.

پنجره‌ی ترمینال روی یک VPS که دستورهای میزبانی ربات Discord را نشان می‌دهد، با «curl -fsSL https://deb.nodesource.com/setup_22.x» شروع می‌شود
نوع دستورهایی که در این راهنما روی سرور خود اجرا می‌کنید.

VPS با چه اندازه‌ای؟

1 vCPU و 1 تا 2 GB RAM برای بیشتر ربات‌ها کافی است. ربات‌های بزرگ‌تر که سرورهای زیادی را کش می‌کنند یا صدا پردازش می‌کنند بیشتر نیاز دارند. برای طرح‌ها هاستینگ ربات Discord را ببینید.

مرحله 1: ربات را در Discord بسازید

  1. Discord Developer Portal را باز کنید و یک application جدید بسازید.
  2. یک Bot اضافه کنید، توکنش را کپی کنید و محرمانه نگه دارید.
  3. در OAuth2، یک لینک دعوت با scopeهای bot و applications.commands بسازید و ربات را به سرور خود اضافه کنید.

مرحله 2: Node.js را نصب کنید

curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
node -v
sudo adduser --disabled-password --gecos "" discord
گام‌های این راهنما به ترتیب: ۱. VPS در چه اندازه‌ای؟؛ ۲. ربات را در Discord بسازید؛ ۳. Node.js را نصب کنید؛ ۴. توکن را از کد دور نگه دارید؛ ۵. با systemd اجرایش کنید؛ ۶. عادت‌های خوب
گام‌های این راهنما به ترتیب.

مرحله 3: ربات را بنویسید

sudo -iu discord
mkdir ~/bot && cd ~/bot
npm init -y
npm install discord.js
// index.js
const { Client, GatewayIntentBits } = require('discord.js');
const client = new Client({ intents: [GatewayIntentBits.Guilds] });

client.once('ready', () => console.log('Logged in as ' + client.user.tag));
client.on('interactionCreate', async (i) => {
  if (i.isChatInputCommand() && i.commandName === 'ping') await i.reply('Pong!');
});

client.login(process.env.DISCORD_TOKEN);

دستور اسلش /ping را یک بار با روش موجود در راهنمای discord.js ثبت کنید.

مرحله 4: توکن را از کد دور نگه دارید

echo "DISCORD_TOKEN=your-token-here" > ~/bot/.env
chmod 600 ~/bot/.env

مرحله 5: آن را با systemd اجرا کنید

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

[Service]
User=discord
WorkingDirectory=/home/discord/bot
EnvironmentFile=/home/discord/bot/.env
ExecStart=/usr/bin/node index.js
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now discordbot
journalctl -u discordbot -f

فایل را /etc/systemd/system/discordbot.service نام‌گذاری کنید.

عادت‌های خوب

  • فقط intentهای موردنیاز را استفاده کنید. intentهای privileged باید در پورتال روشن شوند.
  • اگر توکن لو رفت، فوراً آن را در پورتال بازنشانی کنید.
  • راه‌اندازی مجدد هنگام خرابی در بالا تنظیم شده است. اگر ربات برای یک جامعه مهم است، نظارت اضافه کنید.