آموزش ساخت و میزبانی ربات دیسکورد (Discord Bots) روی vps لینوکس



ربات‌های دیسکورد (Discord Bots) ابزارهای قدرتمندی برای خودکارسازی وظایف، مدیریت سرور و افزودن قابلیت‌های سرگرم‌کننده به کامیونیتی شما هستند. اما برای اینکه یک ربات بتواند به صورت ۲۴ ساعته و ۷ روز هفته آنلاین و فعال باشد، نمی‌تواند روی کامپیوتر شخصی شما اجرا شود. بهترین راه‌حل، میزبانی آن روی یک سرور مجازی است.

این راهنما به صورت قدم به قدم به شما آموزش می‌دهد که چگونه یک ربات مفید برای خوشامدگویی به کاربران جدید و نظارت بر محتوای چت، با استفاده از Node.js بسازید و آن را برای فعالیت دائمی روی سرور خود مستقر کنید. برای شروع، شما به یک محیط اجرایی پایدار نیاز دارید که با خرید vps می‌توانید آن را فراهم کنید.

پیش‌نیازها

 

  • یک سرور لینوکس، مانند اوبونتو 22.04 یا جدیدتر.
  • دسترسی به سرور با یک کاربر دارای دسترسی sudo.
  • یک حساب کاربری در دیسکورد.

 

قدم اول: ساخت اپلیکیشن و تنظیم دسترسی‌های ربات

 

قبل از نوشتن هر کدی، باید ربات خود را در پورتال توسعه‌دهندگان دیسکورد ثبت کرده و دسترسی‌های لازم را به آن بدهید.

  1. به Discord Developer Portal بروید و وارد حساب کاربری خود شوید.
  2. روی دکمه New Application کلیک کرده و یک نام برای اپلیکیشن خود انتخاب کنید.
  3. پس از ساخت، از منوی سمت چپ به تب Bot بروید و روی دکمه Add Bot کلیک کنید.
  4. در همین صفحه، کمی پایین‌تر، در بخش Privileged Gateway Intents، تمام گزینه‌ها (PRESENCE INTENT, SERVER MEMBERS INTENT, و MESSAGE CONTENT INTENT) را فعال کنید. این دسترسی‌ها برای عملکردهایی مانند خوشامدگویی به کاربران جدید ضروری هستند.
  5. در بالای صفحه، روی دکمه Reset Token کلیک کنید تا توکن ربات شما نمایش داده شود. این توکن مانند رمز عبور ربات شماست؛ آن را در جایی امن کپی کنید و با هیچکس به اشتراک نگذارید.

 

قدم دوم: اضافه کردن ربات به سرور دیسکورد شما

 

حالا که ربات ساخته شده، باید آن را به سرور دیسکوردی که می‌خواهید در آن فعالیت کند، دعوت کنید.

  1. در پورتال توسعه‌دهندگان، از منوی سمت چپ به تب OAuth2 و سپس زیرمنوی URL Generator بروید.
  2. در بخش “SCOPES”، تیک گزینه bot را بزنید.
  3. یک بخش جدید به نام “BOT PERMISSIONS” ظاهر می‌شود. در این بخش، دسترسی‌های مورد نیاز ربات خود را انتخاب کنید. برای یک ربات مدیریتی، می‌توانید دسترسی Administrator را انتخاب کنید تا تمام اختیارات لازم را داشته باشد.
  4. در پایین صفحه، یک URL ساخته می‌شود. این URL را کپی کرده، در یک تب جدید مرورگر باز کنید، سرور مورد نظر خود را از لیست انتخاب کرده و ربات را تایید (Authorize) کنید.

 

قدم سوم: راه‌اندازی محیط سرور

 

حالا باید سرور خود را برای اجرای ربات آماده کنیم. این کار شامل نصب Node.js است.

# 1. اسکریپت نصب Node.js 20.x (آخرین نسخه LTS) را دانلود و اجرا کنید
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -

# 2. Node.js را نصب کنید
sudo apt-get install -y nodejs

قدم چهارم: ساخت پروژه و کدنویسی ربات کاربردی

 

حالا پروژه ربات را روی سرور خود ایجاد می‌کنیم.

  1. یک پوشه برای پروژه بسازید و وارد آن شوید:
    mkdir my-discord-bot
    cd my-discord-bot
  2. یک پروژه جدید Node.js را با `npm` آغاز کنید:
    npm init -y
  3. کتابخانه محبوب discord.js را برای تعامل با API دیسکورد نصب کنید:
    npm install discord.js
  4. یک فایل جدید به نام bot.js با ویرایشگر `nano` بسازید:
    nano bot.js

این ربات چه کارهایی انجام می‌دهد؟

 

کدی که در مرحله بعد کپی می‌کنید، یک ربات با دو قابلیت اصلی و بسیار مفید ایجاد می‌کند:

  • خوشامدگویی خودکار به کاربران جدید: زمانی که یک عضو جدید وارد سرور شما می‌شود، ربات به صورت خودکار یک پیام خوشامدگویی عمومی در کانالی که شما مشخص می‌کنید، ارسال کرده و به کاربر جدید خیرمقدم می‌گوید.
  • نظارت پایه بر محتوا (فیلتر کلمات): ربات به تمام پیام‌ها گوش می‌دهد. اگر پیامی حاوی یکی از کلمات نامناسبی باشد که شما در لیست `badWords` تعریف کرده‌اید، ربات آن پیام را فورا حذف کرده و یک پیام هشدار خصوصی برای کاربر خاطی ارسال می‌کند.

 

حالا کد زیر را به طور کامل در فایل bot.js کپی کنید:

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

// --- بخش تنظیمات ---
const config = {
    token: 'YOUR_BOT_TOKEN',
    welcomeChannelId: 'YOUR_WELCOME_CHANNEL_ID',
    badWords: ['کلمه_بد_۱', 'کلمه_بد_۲', 'فحش']
};
// --------------------

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

client.once('ready', () => {
    console.log(`Bot is online! Logged in as ${client.user.tag}`);
});

client.on('guildMemberAdd', member => {
    const welcomeChannel = member.guild.channels.cache.get(config.welcomeChannelId);
    if (!welcomeChannel) return;
    welcomeChannel.send(`سلام ${member}، به سرور ما خوش آمدی!`);
});

client.on('messageCreate', message => {
    if (message.author.bot) return;

    const messageContent = message.content.toLowerCase();
    const hasBadWord = config.badWords.some(word => messageContent.includes(word));
    
    if (hasBadWord) {
        message.delete();
        message.author.send('پیام شما به دلیل استفاده از کلمات نامناسب حذف شد.');
        return;
    }
});

client.login(config.token);

پیکربندی ربات شما

 

قبل از اجرا، باید بخش تنظیمات (config) را در بالای کد bot.js ویرایش کنید:

  • token: توکن ربات خود را که در قدم اول کپی کردید، در این قسمت قرار دهید.
  • welcomeChannelId: آیدی کانالی که می‌خواهید پیام خوشامدگویی در آن ارسال شود را وارد کنید. برای پیدا کردن آیدی، در تنظیمات دیسکورد خود `Developer Mode` را فعال کرده، سپس روی کانال مورد نظر کلیک راست کرده و `Copy Channel ID` را بزنید.
  • badWords: لیستی از کلمات نامناسب که می‌خواهید به صورت خودکار حذف شوند را در اینجا وارد کنید.

 

قدم پنجم: اجرای ربات به صورت ۲۴/۷ با PM2

 

اگر ربات را مستقیما با node bot.js اجرا کنید، پس از بستن ترمینال SSH، ربات آفلاین می‌شود. برای اجرای دائمی آن، ما از یک مدیر فرآیند به نام PM2 استفاده می‌کنیم.

  1. ابتدا PM2 را به صورت سراسری روی سرور خود نصب کنید:
    sudo npm install pm2 -g
  2. ربات خود را با PM2 اجرا کنید:
    pm2 start bot.js --name "my-discord-bot"
  3. برای اینکه PM2 پس از هر بار ریبوت شدن سرور، ربات شما را به صورت خودکار اجرا کند، دستورات زیر را وارد کنید:
    pm2 save
    pm2 startup

    دستور دوم یک اسکریپت به شما می‌دهد که باید آن را کپی و در ترمینال اجرا کنید.

ربات شما اکنون به صورت دائمی در حال اجراست. برای مشاهده وضعیت آن می‌توانید از دستور pm2 status استفاده کنید. برای میزبانی پروژه‌هایی که نیاز به فعالیت دائمی دارند، خرید سرور مجازی فنلاند یک انتخاب باکیفیت و به صرفه است.