# الـ Eggs وصور Docker

> فهم الفرق بين Eggs وصور Docker في Daki Portal، وكيفية عملهما معًا، وأي صور Daki Yolks محدّثة أمنيًا متاحة.

عند إعداد خادمك في Portal، ستواجه مفهومين مترابطين: **Eggs** و**صور Docker**. فهم الفرق بينهما يساعدك على إعداد خادمك بشكل صحيح.

## ما ستتعلمه

- ما هو الـ Egg وما الذي يتحكم فيه
- ما هي صورة Docker وكيف تختار الصورة المناسبة
- كيف تعمل Eggs وصور Docker معًا
- ما إصدارات Node.js وPython المتاحة، وكيف يحافظ Daki على تحديثها أمنيًا
- متى تغيّر كلًا منهما

---

## ما هو الـ Egg؟

الـ **Egg** قالب خادم يحدد النوع العام للخادم الذي تشغّله. يحدد:

- لغة البرمجة أو الإطار المستخدم
- صور Docker المتاحة للاختيار منها
- قالب أمر التشغيل الافتراضي
- متغيرات التشغيل وقيمها الافتراضية المُعدّة مسبقًا
- الملفات التي تُنشأ عند التثبيت الجديد

أمثلة على Eggs المتاحة في Daki:
- **Node.js** — لتطبيقات JavaScript وبوتات Discord
- **Python** — لتطبيقات Python وبوتات Discord
- **Java** — لتطبيقات Java (متاح في الخطط المدفوعة)
- **Rust** — لتطبيقات Rust (متاح في الخطط المدفوعة)
- **Minecraft Java** — لخوادم Minecraft (خطط خوادم الألعاب)

**تختار الـ Egg عند إنشاء الخادم.** في Free Tier تتوفر Eggs الخاصة بـ Node.js وPython فقط. الخطط المدفوعة تمنحك وصولًا إلى Eggs إضافية.

لتغيير Egg خادم موجود، انتقل إلى تبويب **Settings**. لاحظ أن تغيير الـ Egg يُشغّل إعادة تثبيت، لذلك يُنصح بشدة بإنشاء نسخة احتياطية من ملفاتك قبل ذلك.

---

## ما هي صورة Docker؟

**صورة Docker** هي الإصدار المحدد من بيئة التشغيل التي يعمل داخلها خادمك. إذا كان الـ Egg يحدد اللغة، فصورة Docker تحدد الإصدار.

على سبيل المثال، يقدم Egg الخاص بـ Node.js الإصدارات Node.js 22 و24 و26، ويقدم Egg الخاص بـ Python الإصدارات من Python 3.11 إلى 3.15. تختار صورة Docker من تبويب **Startup**.

---

## Daki Yolks: صور محدّثة أمنيًا

يعمل جميع خوادم Node.js وPython في Daki — المجانية والمدفوعة — على **Daki Yolks**: صور Docker الخاصة بنا، مبنية كبدائل مباشرة للصور المجتمعية التي تستخدمها معظم مزودي Pterodactyl. تُعاد بناء هذه الصور المجتمعية نادرًا، لذا قد تتأخر عن الإصلاحات الأمنية لشهور.

- **محدّثة دائمًا.** كل 6 ساعات نتحقق مما إذا كانت صورة Node.js أو Python الأساسية الرسمية الجديدة قد صدرت، ونعيد بناء الإصدارات المتأثرة. مرة في الأسبوع تُعاد بناء كل الصور لتلتقط تحديثات نظام التشغيل (Debian 13).
- **متوافقة.** الأدوات نفسها ونقطة الدخول والسلوك كما كانت، فيستمر بوتك في العمل. تتضمن صور Node.js الأدوات `git` و`ffmpeg` و`sqlite3` و`build-essential` و`python3` و`typescript` و`ts-node`؛ وتتضمن صور Python الأدوات `gcc` و`g++` و`git` و`ffmpeg`.
- **مُختبرة.** يجب أن تبدأ كل صورة وتشغّل برنامج TypeScript أو Python حقيقيًا بالطريقة التي تبدأه بها Portal قبل نشرها.
- **مفتوحة المصدر.** الصور متاحة للعامة على [GitHub](https://github.com/niclasspecht/daki-yolks) بترخيص MIT.

| بيئة التشغيل | الإصدار | مدعومة حتى |
| :--- | :--- | :--- |
| Node.js | **26** | أبريل 2029 |
| Node.js | **24** | أبريل 2028 |
| Node.js | **22** | أبريل 2027 |
| Python | **3.15** | أكتوبر 2031 |
| Python | **3.14** | أكتوبر 2030 |
| Python | **3.13** | أكتوبر 2029 |
| Python | **3.12** | أكتوبر 2028 |
| Python | **3.11** | أكتوبر 2027 |

> **نصيحة:** **أعد التشغيل للتحديث.** يبقى اسم الصورة كما هو بعد كل إعادة بناء. يحتفظ الخادم الذي يعمل بصورته الحالية حتى يُعاد تشغيله؛ وعند التشغيل التالي يحصل تلقائيًا على أحدث إصدار مُصحَّح. ملفاتك لا تُمس.

### الإصدارات القديمة (نهاية العمر)

لم تعد Node.js 18 إلى 21 وNode.js 23 و25، وكذلك Python 3.9 و3.10، تتلقى إصلاحات أمنية من مطوريها. ما زالت قابلة للاختيار حتى تستمر المشاريع القائمة في العمل، لكنها مُعلَّمة **EOL - no security updates** في قائمة الصور، ولا نعيد بناءها. انتقل إلى إصدار مدعوم عندما تستطيع.

عند الانتقال إلى إصدار رئيسي جديد (مثلًا من Node.js 20 إلى 24، أو من Python 3.10 إلى 3.13)، أعد تثبيت اعتمادياتك: شغّل `npm rebuild` أو احذف `node_modules` ثم شغّل `npm install` مجددًا، وأعد إنشاء بيئات Python الافتراضية (virtual environments).

---

## كيف تعمل معًا

فكّر في الأمر هكذا:

| المفهوم | التشبيه | يُضبط في |
| :--- | :--- | :--- |
| **Egg** | اختيار الكتابة بلغة Python | تبويب Settings (أو عند إنشاء الخادم) |
| **صورة Docker** | اختيار Python 3.12 أو 3.13 | تبويب Startup |

تختار الـ Egg مرة واحدة (أو تغيّره نادرًا)، وتعدّل صورة Docker كلما احتاج مشروعك إلى إصدار مختلف.

---

## متى تغيّر كلًا منهما

### غيّر صورة Docker عندما:
- تحتاج إلى إصدار أحدث من بيئة التشغيل (مثلًا الترقية من Node.js 20 المنتهي إلى Node.js 24)
- يتطلب مشروعك إصدارًا فرعيًا محددًا من أجل التوافق

### غيّر الـ Egg عندما:
- تريد تغيير لغة البرمجة كليًا (مثلًا من Node.js إلى Python)
- تحتاج إلى إعداد افتراضي مختلف أو إعداد تثبيت مُعرّف مسبقًا مختلف

> **تحذير:** تغيير الـ Egg يُشغّل إعادة تثبيت. ورغم أن الملفات لا تُحذف تلقائيًا عادةً، فقد يُستبدل بعضها وقد ينتج عن ذلك إعداد غير متوافق. يُنصح بشدة بعمل نسخ احتياطية قبل تغيير الـ Egg. انظر [إعدادات الخادم](https://daki.cc/ar/wiki/guides/server-settings).

---

## الأسئلة الشائعة

**أي Egg يجب أن أستخدم لبوت Discord؟**

استخدم Egg **Node.js** لبوتات Discord.js/JavaScript، وEgg **Python** لبوتات discord.py/Python.

**ماذا لو لم تكن صورة Docker التي أحتاجها مدرجة؟**

الصور المتاحة يحددها الـ Egg. إذا لم تجد الإصدار الذي تحتاجه، تواصل مع الدعم — قد تتوفر صور إضافية عند الطلب.

**تظهر صورتي 'EOL - no security updates'. ماذا أفعل؟**

لم يعد مطوّروها يصونون هذا الإصدار. يستمر خادمك في العمل، لكنه لم يعد يحصل على الإصلاحات الأمنية. اختر إصدارًا مدعومًا (Node.js 22 أو 24 أو 26، أو Python 3.11 إلى 3.15) في تبويب **Startup**، ثم أعد تثبيت اعتمادياتك وأعد تشغيل الخادم.

**كيف أحصل على أحدث التصحيحات الأمنية؟**

أعد تشغيل خادمك. تُعاد بناء Daki Yolks تلقائيًا عند صدور إصلاح، ويحصل الخادم على البناء الجديد عند تشغيله التالي.

**هل تغيير صورة Docker يحذف ملفاتي؟**

لا. تغيير الصورة وحدها (في تبويب **Startup**) لا يؤثر على ملفاتك. فقط تغيير الـ Egg (في تبويب **Settings**) يُشغّل إعادة تثبيت.

---

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

- [إعدادات التشغيل](https://daki.cc/ar/wiki/guides/startup-settings) — اختر صورة Docker الخاصة بك وأعدّ أمر التشغيل.
- [إعدادات الخادم](https://daki.cc/ar/wiki/guides/server-settings) — غيّر الـ Egg أو أعد تثبيت خادمك.
- [نشر بوت Discord.js](https://daki.cc/ar/wiki/guides/deploy-discordjs) — دليل النشر الكامل لـ Node.js.
- [نشر بوت Python](https://daki.cc/ar/wiki/guides/deploy-python) — دليل النشر الكامل لـ Python.

---
Source: https://daki.cc/ar/wiki/guides/eggs-and-images
