نشر بوت Discord.js
دليل خطوة بخطوة لنشر بوت Discord.js (Node.js) على Daki Hosting.
يرشدك هذا الدليل إلى نشر بوت Discord.js على Daki Hosting — من إنشاء خادمك حتى يصبح بوتك متصلًا ويقرأ توكنه بأمان.
ما ستتعلمه
- كيفية إنشاء خادم Node.js لبوتك
- كيفية رفع كودك
- كيفية إعداد أمر التثبيت وأمر التشغيل وصورة Docker
- كيفية ضبط توكن بوتك بأمان باستخدام ملف
.env - كيفية تشغيل بوتك والتحقق من أنه يعمل
المتطلبات الأساسية
- حساب Daki (Free Tier أو مدفوع) — انظر أنشئ حسابًا
- بوت Discord لديه توكن بوت (bot token)، يُنشأ في بوابة المطورين في Discord
- كود بوتك، ويتضمن
package.jsonيحتوي علىdiscord.jsوdotenvكاعتماديات
بوتات Discord تتصل صادرًا بخوادم Discord ولا تحتاج إلى منفذ وارد. وهذا يعني أن بوتات Discord تعمل على Free Tier والخطط المدفوعة معًا. إذا كان بوتك يخدم طلبات HTTP أيضًا (مثلًا لتفاعلات أوامر الشرطة المائلة slash commands أو webhooks)، فستحتاج إلى خطة مدفوعة، إذ إن المنافذ المتاحة للعامة متوفرة فقط في الخطط المدفوعة. انظر تخصيصات الشبكة.
النشر
أنشئ خادم Node.js
- سجّل الدخول إلى Free Tier Dashboard على free.daki.cc أو إلى Billing Panel على billing.daki.cc.
- أنشئ خادمًا جديدًا واختر قالب Node.js egg.
- أعطِ خادمك اسمًا (مثل
MyDiscordBot).
انظر أنشئ أول خادم لك للشرح الكامل.
افتح Portal
سجّل الدخول إلى Portal عبر SSO (Open Portal في صفحة Account في لوحة التحكم، أو صفحة خدمتك في Billing Panel)، أو مباشرة على portal.daki.cc. انظر نظرة عامة على Portal.
ارفع كود بوتك
الخيار A — الرفع كملف ZIP (الأبسط):
- اضغط مجلد مشروعك في ملف
.zipعلى جهازك. - في Portal، انتقل إلى تبويب Files وانقر على Upload.
- انقر بالزر الأيمن على ملف
.zipثم انقر على Extract.
الخيار B — استخدم SFTP (دون حد للحجم): اتصل باستخدام بيانات اعتماد SFTP من تبويب Settings وارفع مجلدك مباشرة. انظر مدير الملفات.
لا تُضمّن مجلد
node_modulesفي الرفع — سيُثبَّت تلقائيًا بواسطة أمر التثبيت. أماpackage.jsonوpackage-lock.jsonفيجب تضمينهما.- اضغط مجلد مشروعك في ملف
اضبط تبويب Startup
افتح تبويب Startup واضبط الحقول الثلاثة:
1. Docker Image — اختر إصدار Node.js الذي يحتاجه بوتك (مثلًا Node.js 22 أو Node.js 24). Node.js 24 LTS خيار آمن افتراضيًا إذا لم تكن متأكدًا. تجنب الإصدارات المعلَّمة EOL، فهي لم تعد تتلقى تحديثات أمنية.
2. Install Command — اضبطه لتثبيت اعتمادياتك تلقائيًا:
Shellnpm install3. Startup Command — اضبطه على الأمر الذي يشغّل بوتك:
node index.js— إذا كان ملف الدخول لديكindex.jsnode bot.js— إذا كان ملف الدخول لديكbot.jsnpm start— إذا كان لديك سكربتstartفيpackage.json
يمكنك تعديل هذه الأوامر لتتناسب مع بنية مشروعك.
انظر إعدادات التشغيل للشرح الكامل.
أضف توكن بوتك عبر ملف .env
يحتاج بوتك إلى توكن Discord للاتصال. خزّنه في ملف
.envعلى الخادم حتى لا يصل أبدًا إلى كود مصدرك.- في تبويب Files، انقر على New File وسمِّه
.env. - أضف التوكن:
.env
BOT_TOKEN=your_discord_bot_token_here - انقر على Save.
في كود بوتك، حمّله باستخدام
dotenv:JavaScriptrequire('dotenv').config(); 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.login(process.env.BOT_TOKEN);تأكد من أن
dotenvمُدرج في اعتمادياتpackage.jsonحتى يُثبَّت بواسطة أمر التثبيت.انظر متغيرات البيئة لمزيد من التفاصيل حول استخدام ملفات
.env.- في تبويب Files، انقر على New File وسمِّه
شغّل بوتك
انقر على Start في تبويب Console. عند نجاح التشغيل ستظهر رسالة تأكيد تسجيل دخول البوت:
TextLogged in as MyBot#1234!إذا ظهرت أخطاء بدلًا من ذلك، فاطّلع على دليل استكشاف الأخطاء وإصلاحها.
المشكلات الشائعة
Error: Cannot find module 'discord.js'
لم تُثبَّت الاعتماديات. تأكد من أن package.json يدرج discord.js كاعتمادية، ومن أن أمر التثبيت مضبوط على npm install في تبويب Startup. أعد تشغيل الخادم لتشغيل التثبيت.
Error: Cannot find module 'dotenv'
أضف dotenv إلى اعتماديات package.json وأعد تشغيل الخادم لإعادة التثبيت.
Error: An invalid token was provided
توكن البوت في ملف .env غير صحيح أو مفقود. انتقل إلى تبويب Files، وافتح .env، وتحقق من القيمة. تأكد من عدم وجود مسافات زائدة أو علامات اقتباس أو أسطر جديدة.
البوت يبدأ لكنه ينفصل بعد قليل
يحدث هذا عادةً بسبب Gateway Intents مفقودة. في بوابة المطورين في Discord، فعّل الـ Intents المميزة المطلوبة (مثل Message Content Intent) لتطبيق البوت، وتأكد من أن كودك يطلبها.
الخادم يتعطل فور بدئه
افتح تبويب Console واقرأ الخطأ. الأسباب الشائعة: أمر تشغيل خاطئ (خطأ إملائي في اسم الملف)، أو إصدار Node.js خاطئ، أو غياب node_modules. انظر استكشاف الأخطاء وإصلاحها.
الخطوات التالية
- متغيرات البيئة — دليل كامل عن ملفات
.envوقراءة المتغيرات في الكود. - تجديد خادمك المجاني — شاهد إعلانات لإبقاء خادم Free Tier الخاص بك نشطًا.
- مدير الملفات — حدّث ملفات الكود بعد إجراء تغييرات.