المتطلبات
ما تحتاج إلى تثبيته قبل تشغيل حزمتك، باستخدام Docker أو من دونه.
لحزمة واجهة + خلفية
ما تحتويه كل حزمة
| الحزمة | التطبيقات في التنزيل | يعمل بمفرده |
|---|---|---|
| الحزمة الكاملة | لوحة التحكم وواجهة API | نعم، كلاهما معًا |
| لوحة الإدارة | لوحة التحكم | نعم، على واجهة API التجريبية المدمجة ببيانات نموذجية، أو موجّهة إلى واجهة API |
كود واجهة NestJS API موجود في الحزمة الكاملة فقط. تعمل حزمة لوحة الإدارة من دونه، على بيانات نموذجية محفوظة في متصفحك.
باستخدام Docker
- Docker Desktop على macOS أو Windows، أو Docker Engine مع إضافة Compose على Linux. يبدأ التطبيقان بأمر
docker composeواحد. - اتصال بالإنترنت للبناء الأول، الذي ينزّل الصور الأساسية والاعتماديات.
- لا شيء آخر: يجلب Docker معه Node.js، وقاعدة البيانات ملف SQLite داخل وحدة تخزين Docker.
باستخدام Docker
- Docker Desktop على macOS أو Windows، أو Docker Engine على Linux. للوحة التحكم ملف
Dockerfileخاص بها؛ ولا حاجة إلى Compose. - اتصال بالإنترنت للبناء الأول، الذي ينزّل الصورة الأساسية والاعتماديات.
من دون Docker
- Node.js 22.9 أو أحدث. تحقق من إصدارك بالأمر
node -v. تستخدم صور Docker الإصدار Node.js 24. - Yarn 4 عبر Corepack. نفّذ
corepack enableمرة واحدة؛ فكل تطبيق يثبّت Yarn 4.8.1 فيpackage.json، ولذلك يختارyarnهذا الإصدار. لا يأتي Node.js 25 وما بعده مع Corepack: نفّذnpm install -g corepackأولًا، ثمcorepack enable. - لا حاجة إلى حزم عامة. يأتي كل تطبيق مع ملف
yarn.lockالخاص به، فيثبّتyarn installالإصدارات نفسها التي اختُبر بها القالب.
قاعدة البيانات
لا حاجة إلى خادم قاعدة بيانات. تستخدم واجهة API قاعدة SQLite افتراضيًا، وينشئ yarn seed الملف لك؛ ويستخدم Docker قاعدة SQLite أيضًا. الانتقال إلى MySQL مدعوم بتغيير في الإعدادات، لا بتغيير في الكود.
المنافذ
يستمع كل تطبيق على منفذ محلي ثابت. تأكد من أن شيئًا آخر لا يستخدمهما، أو غيّر أحدهما مع Docker بالمتغير DASHBOARD_PORT أو API_PORT في ملف .env بجوار docker-compose.yml.
| التطبيق | المنفذ |
|---|---|
| لوحة التحكم | 3030 |
| API | 8000 |
المنفذ
تستمع لوحة التحكم على المنفذ 3030. تأكد من أن شيئًا آخر لا يستخدمه، أو شغّلها على منفذ آخر.
الخدمات الاختيارية
لا شيء من هذه الخدمات ضروري لتشغيل لوحة التحكم محليًا. تُفعَّل كل واحدة بمتغيراتها؛ وإذا تركتها فارغة تبقى ميزتها معطلة ويعمل كل شيء آخر.
| الخدمة | من دونها |
|---|---|
| مفتاح API من Google Gemini أو OpenAI أو DeepSeek، في إعدادات واجهة API | يطلب المساعد الذكي من كل شخص مفتاحه الخاص لذلك المزوّد، ويبقى المفتاح في متصفحه. وعلى واجهة API التجريبية يجيب المساعد من البيانات النموذجية ولا يحتاج إلى مفتاح. |
| حاوية Cloudflare R2 | لا يمكن رفع الصور الشخصية ومرفقات المحادثة: يجيب الرفع بأنه غير مُعدّ. وعلى واجهة API التجريبية تبقى الصور في المتصفح. |
| مفتاح WeatherAPI.com | تظهر تحية النظرة العامة من دون الطقس. |
| مفتاح MCP تختاره بنفسك | ترفض نقطة MCP في واجهة API كل طلب. |