OffshoreVps
الشروحات7 أكتوبر 20265 دقيقة للقراءةبقلم فريق OffshoreVps

كيف تستضيف بوت Discord على VPS

أنشئ بوت Discord، وانشر بوت discord.js على VPS يعمل بنظام Linux، وأبقِه متصلاً عبر systemd، مع نصائح حول الرمز والـ intents.

يتصل بوت Discord ببوابة Discord ويبقى متصلاً، لذا يحتاج إلى جهاز يعمل دائماً. VPS صغير رخيص ويبقى متصلاً ولا يعتمد على إنترنت منزلك. ينشر هذا الدليل بوت Node.js بـ discord.js ويُبقيه حياً عبر systemd.

نافذة طرفية على VPS تعرض الأوامر المستخدمة لاستضافة بوت Discord، تبدأ بـ “curl -fsSL https://deb.nodesource.com/setup_22.x”
نوع الأوامر التي ستشغّلها على خادمك في هذا الدليل.

ما حجم VPS المناسب؟

يكفي 1 vCPU وذاكرة من 1 إلى 2 GB لمعظم البوتات. البوتات الأكبر التي تخزّن بيانات خوادم كثيرة مؤقتاً أو تعالج الصوت تحتاج أكثر. راجع استضافة بوتات Discord للخطط.

الخطوة 1: أنشئ البوت في Discord

  1. افتح Discord Developer Portal وأنشئ تطبيقاً جديداً.
  2. أضف Bot، وانسخ رمزه وأبقِه سراً.
  3. ضمن OAuth2، أنشئ رابط دعوة بالنطاقين 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
خطوات هذا الدليل بالترتيب: 1. أي حجم من VPS؟؛ 2. أنشئ البوت في Discord؛ 3. ثبّت Node.js؛ 4. أبقِ الرمز خارج الشيفرة؛ 5. شغّله عبر systemd؛ 6. عادات جيدة
خطوات هذا الدليل بالترتيب.

الخطوة 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 من نوع slash مرة واحدة باستخدام الطريقة الواردة في دليل 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.

عادات جيدة

  • استخدم فقط الـ intents التي تحتاجها. يجب تفعيل الـ intents ذات الامتياز في البوابة.
  • إذا تسرّب الرمز يوماً فأعد تعيينه في البوابة فوراً.
  • إعادة التشغيل عند الفشل مضبوطة أعلاه. أضف المراقبة إذا كان البوت مهماً لمجتمع.