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

دليل خطوة بخطوة لنشر بوت Discord بلغة Python (discord.py أو py-cord) على Daki Hosting.

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

ما ستتعلمه

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

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

  • حساب Daki (Free Tier أو مدفوع) — انظر أنشئ حسابًا
  • بوت Discord لديه توكن بوت (bot token)، يُنشأ في بوابة المطورين في Discord
  • كود بوتك، ويتضمن ملف requirements.txt يسرد كل الاعتماديات (مثل discord.py أو py-cord، وpython-dotenv)

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


النشر

  1. أنشئ خادم Python

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

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

  2. افتح Portal

    سجّل الدخول إلى Portal عبر SSO أو مباشرة على portal.daki.cc. انظر نظرة عامة على Portal.

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

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

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

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

    ضمّن ملف requirements.txt في جذر مشروعك. يستخدمه أمر التثبيت لتثبيت اعتماديات مشروعك.

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

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

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

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

    Shell
    pip install -r requirements.txt

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

    • python main.py — إذا كان ملف الدخول لديك main.py
    • python bot.py — إذا كان ملف الدخول لديك bot.py
    • python -m mypackage — إذا كان مشروعك منظمًا كحزمة (package)

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

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

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

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

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

    تأكد من أن python-dotenv موجود في requirements.txt، ثم حمّل الملف في كودك:

    Python
    from dotenv import load_dotenv
    import os
    import discord
    
    load_dotenv()
    TOKEN = os.environ.get("BOT_TOKEN")
    
    intents = discord.Intents.default()
    client = discord.Client(intents=intents)
    
    @client.event
    async def on_ready():
        print(f"Logged in as {client.user}")
    
    client.run(TOKEN)

    انظر متغيرات البيئة لمزيد من التفاصيل حول استخدام ملفات .env.

  6. شغّل بوتك

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

    Text
    Logged in as MyBot#1234

    إذا ظهرت أخطاء، فاطّلع على دليل استكشاف الأخطاء وإصلاحها.


المشكلات الشائعة

ModuleNotFoundError: No module named 'discord'

لم تُثبَّت الاعتماديات. تأكد من أن discord.py أو py-cord مدرج في requirements.txt، ومن أن أمر التثبيت مضبوط على pip install -r requirements.txt في تبويب Startup. أعد تشغيل الخادم لتشغيل التثبيت.

ModuleNotFoundError: No module named 'dotenv'

أضف python-dotenv إلى requirements.txt وأعد تشغيل الخادم.

discord.errors.LoginFailure: Improper token has been passed

التوكن في ملف .env غير صحيح أو مفقود. افتح ملف .env في تبويب Files وتحقق من القيمة بعناية. أزل أي مسافات أو علامات اقتباس زائدة.

خطأ PrivilegedIntentsRequired

بوتك يطلب Intents غير مفعّلة في بوابة المطورين في Discord. فعّل الـ Intents المميزة المطلوبة (مثل Message Content Intent) في إعدادات تطبيق البوت، وتأكد من أن كودك يطلب الـ Intents نفسها.

الخادم يتعطل فور بدئه

اقرأ مخرجات تبويب Console لمعرفة الخطأ. الأسباب الشائعة: أمر تشغيل خاطئ (خطأ إملائي في اسم الملف أو في المسار)، أو غياب requirements.txt، أو حزمة مفقودة. انظر استكشاف الأخطاء وإصلاحها.


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