الانتقال إلى المحتوى

دليل خطوة بخطوة لنشر بوت Discord.js (Node.js) على Daki Hosting.

يرشدك هذا الدليل إلى نشر بوت Discord.js على Daki Hosting — من إنشاء خادمك حتى يصبح بوتك متصلًا ويقرأ توكنه بأمان.

ما ستتعلمه

  • كيفية إنشاء خادم Node.js لبوتك
  • كيفية رفع كودك
  • كيفية إعداد أمر التثبيت وأمر التشغيل وصورة Docker
  • كيفية ضبط توكن بوتك بأمان باستخدام ملف .env
  • كيفية تشغيل بوتك والتحقق من أنه يعمل

المتطلبات الأساسية

بوتات Discord تتصل صادرًا بخوادم Discord ولا تحتاج إلى منفذ وارد. وهذا يعني أن بوتات Discord تعمل على Free Tier والخطط المدفوعة معًا. إذا كان بوتك يخدم طلبات HTTP أيضًا (مثلًا لتفاعلات أوامر الشرطة المائلة slash commands أو webhooks)، فستحتاج إلى خطة مدفوعة، إذ إن المنافذ المتاحة للعامة متوفرة فقط في الخطط المدفوعة. انظر تخصيصات الشبكة.


النشر

  1. أنشئ خادم Node.js

    1. سجّل الدخول إلى Free Tier Dashboard على free.daki.cc أو إلى Billing Panel على billing.daki.cc.
    2. أنشئ خادمًا جديدًا واختر قالب Node.js egg.
    3. أعطِ خادمك اسمًا (مثل MyDiscordBot).

    انظر أنشئ أول خادم لك للشرح الكامل.

  2. افتح Portal

    سجّل الدخول إلى Portal عبر SSO (Open Portal في صفحة Account في لوحة التحكم، أو صفحة خدمتك في Billing Panel)، أو مباشرة على portal.daki.cc. انظر نظرة عامة على Portal.

  3. ارفع كود بوتك

    الخيار A — الرفع كملف ZIP (الأبسط):

    1. اضغط مجلد مشروعك في ملف .zip على جهازك.
    2. في Portal، انتقل إلى تبويب Files وانقر على Upload.
    3. انقر بالزر الأيمن على ملف .zip ثم انقر على Extract.

    الخيار B — استخدم SFTP (دون حد للحجم): اتصل باستخدام بيانات اعتماد SFTP من تبويب Settings وارفع مجلدك مباشرة. انظر مدير الملفات.

    لا تُضمّن مجلد node_modules في الرفع — سيُثبَّت تلقائيًا بواسطة أمر التثبيت. أما package.json وpackage-lock.json فيجب تضمينهما.

  4. اضبط تبويب Startup

    افتح تبويب Startup واضبط الحقول الثلاثة:

    1. Docker Image — اختر إصدار Node.js الذي يحتاجه بوتك (مثلًا Node.js 22 أو Node.js 24). Node.js 24 LTS خيار آمن افتراضيًا إذا لم تكن متأكدًا. تجنب الإصدارات المعلَّمة EOL، فهي لم تعد تتلقى تحديثات أمنية.

    2. Install Command — اضبطه لتثبيت اعتمادياتك تلقائيًا:

    Shell
    npm install

    3. Startup Command — اضبطه على الأمر الذي يشغّل بوتك:

    • node index.js — إذا كان ملف الدخول لديك index.js
    • node bot.js — إذا كان ملف الدخول لديك bot.js
    • npm start — إذا كان لديك سكربت start في package.json

    يمكنك تعديل هذه الأوامر لتتناسب مع بنية مشروعك.

    انظر إعدادات التشغيل للشرح الكامل.

  5. أضف توكن بوتك عبر ملف .env

    يحتاج بوتك إلى توكن Discord للاتصال. خزّنه في ملف .env على الخادم حتى لا يصل أبدًا إلى كود مصدرك.

    1. في تبويب Files، انقر على New File وسمِّه .env.
    2. أضف التوكن:
      .env
      BOT_TOKEN=your_discord_bot_token_here
    3. انقر على Save.

    في كود بوتك، حمّله باستخدام dotenv:

    JavaScript
    require('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.

  6. شغّل بوتك

    انقر على Start في تبويب Console. عند نجاح التشغيل ستظهر رسالة تأكيد تسجيل دخول البوت:

    Text
    Logged 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. انظر استكشاف الأخطاء وإصلاحها.


الخطوات التالية