# إعدادات التشغيل

> كيفية ضبط صورة Docker وأمر التثبيت وأمر التشغيل في تبويب Startup داخل Portal.

يتحكم تبويب **Startup** في Portal في كيفية بناء خادمك وتشغيله. يحتوي على ثلاثة إعدادات أساسية: **Docker Image** (إصدار بيئة التشغيل)، و**Install Command** (إعداد الاعتماديات)، و**Startup Command** (ما الذي يُشغّل تطبيقك). ضبط هذه الإعدادات بشكل صحيح ضروري لكي يعمل خادمك بالشكل المطلوب.

## ما ستتعلمه

- كيفية اختيار Docker Image الصحيحة (إصدار بيئة التشغيل)
- الفرق بين **Install Command** و**Startup Command**
- أمثلة شائعة لـ Node.js وPython
- كيفية استخدام تبويب Startup للوصول إلى shell تفاعلي

---

## Docker Image

يشغّل Daki كل خادم داخل حاوية Docker. تحدد **Docker Image** إصدار لغة البرمجة المتاح داخل الحاوية.

يحتوي تبويب Startup على قائمة منسدلة لاختيار الصورة. طابِقها دائمًا مع ما يحتاجه تطبيقك.

| بيئة التشغيل | أمثلة على الصور |
| :--- | :--- |
| Node.js | Node.js 22 وNode.js 24 وNode.js 26 (الإصدارات الأقدم مُعلَّمة EOL) |
| Python | Python 3.11 إلى Python 3.15 (الإصدارات الأقدم مُعلَّمة EOL) |
| Java | Java 17 وJava 21 |
| أخرى | Rust وC# وLua وغيرها (في الخطط المدفوعة) |

> **تحذير:** اختيار إصدار بيئة تشغيل خاطئ يسبب أخطاء في البدء. إذا كان مشروعك يتطلب ميزات Node.js 22، فلا تختر Node.js 18.

صور Node.js وPython هي **Daki Yolks**، وتُعاد بناؤها تلقائيًا كلما صدر إصلاح أمني؛ أعد تشغيل خادمك للحصول على أحدثها. الصور المُعلَّمة **EOL** لم تعد تتلقى تحديثات أمنية. انظر [الـ Eggs وصور Docker](https://daki.cc/ar/wiki/guides/eggs-and-images#daki-yolks-security-patched-images).

---

## Install Command

يعمل **Install Command** مرة واحدة عند إعداد خادمك أو إعادة تثبيته. صُمم لتثبيت الاعتماديات وتجهيز بيئتك.

| بيئة التشغيل | أمر التثبيت المعتاد |
| :--- | :--- |
| Node.js | `npm install` |
| Python | `pip install -r requirements.txt` |

اضبط هذا الحقل ليتم تثبيت اعتمادياتك تلقائيًا. يمكنك تخصيص هذا الأمر بحرية لتلائم احتياجات مشروعك، مثلًا إذا كنت تستخدم مدير حزم مختلفًا (مثل `yarn install` أو `pnpm install`).

---

## Startup Command

يعمل **Startup Command** في كل مرة يبدأ فيها خادمك. هذا هو الأمر الذي يُشغّل تطبيقك فعليًا.

| نوع التطبيق | أمر التشغيل |
| :--- | :--- |
| Node.js — ملف دخول واحد | `node index.js` |
| Node.js — سكربت npm start | `npm start` |
| Python — ملف دخول واحد | `python main.py` |
| Python — كوحدة (module) | `python -m mypackage` |

يمكنك تخصيص أمر التشغيل بحرية ليتناسب مع بنية مشروعك ونقطة الدخول والخيارات أو الوسائط التي يحتاجها تطبيقك.

**مهم:** أسماء الملفات حساسة لحالة الأحرف. تأكد من أن اسم الملف في أمر التشغيل يطابق تمامًا ما يظهر في مدير الملفات.

---

## الوصول التفاعلي إلى Shell

إذا أردت التفاعل مع الحاوية مباشرةً وتشغيل الأوامر يدويًا، مثلًا للتصحيح أو فحص الملفات أو تنفيذ أوامر لمرة واحدة، يمكنك تغيير **Startup Command** مؤقتًا إلى `bash`.

1. انتقل إلى تبويب **Startup**.
2. غيّر **Startup Command** إلى `bash`.
3. أعد تشغيل خادمك.
4. افتح تبويب **Console**، يمكنك الآن كتابة أوامر shell مباشرةً.

> **تحذير:** طالما أن **Startup Command** مضبوط على `bash`، **لن** يبدأ تطبيقك تلقائيًا. استعد أمر التشغيل الأصلي عند الانتهاء. انظر [الكونسول وإجراءات التشغيل](https://daki.cc/ar/wiki/guides/console) لمزيد من التفاصيل.

---

## تغيير الـ Egg (لغة البرمجة)

يحدد **Egg** لغة البرمجة والإطار بشكل عام. للتبديل من لغة إلى أخرى (مثلًا من Node.js إلى Python)، استخدم تبويب **Settings**، وليس تبويب Startup. تغيير Egg يُشغّل إعادة تثبيت، ويُنصح بشدة بعمل نسخ احتياطية مسبقًا. انظر [إعدادات الخادم](https://daki.cc/ar/wiki/guides/server-settings).

---

## نصائح

- أعد تشغيل خادمك بعد تغيير أي إعداد في تبويب Startup لكي يسري التغيير.
- إذا تعطّل خادمك فور بدئه، فإن مخرجات تبويب **Console** تُظهر السبب في الغالب.
- تحقق مرتين من أسماء الملفات في أمر التشغيل مقابل ما يظهر في مدير الملفات.

---

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

- [متغيرات البيئة](https://daki.cc/ar/wiki/guides/environment-variables) — أعدّ ملف `.env` لتوكن البوت والأسرار الأخرى.
- [الكونسول وإجراءات التشغيل](https://daki.cc/ar/wiki/guides/console) — شغّل خادمك واعرض المخرجات.
- [إعدادات الخادم](https://daki.cc/ar/wiki/guides/server-settings) — أعد تثبيت خادمك أو غيّر الـ Egg.

---
Source: https://daki.cc/ar/wiki/guides/startup-settings
