شغّل المتجر محليًا
ثبّت كل تطبيق وشغّله باستخدام Node.js و Yarn، بطرفية مستقلة لكل تطبيق.
لحزمة الحزمة الكاملة
قبل أن تبدأ: ثبّت Node.js 22 أو أحدث وشغّل corepack enable مرة واحدة. لا تحتاج إلى خادم قاعدة بيانات.
افتح كل طرفية في المكان الذي تتوقعه الأوامر أدناه: داخل e-commerce-1 للحزمة الكاملة، أو بجوار مجلد التطبيق لحزمة التطبيق الواحد.
| التطبيق | المجلد | العنوان |
|---|---|---|
| API | back-end | localhost:8000محلي |
| المتجر | storefront | localhost:3030محلي |
| لوحة الإدارة | admin-dashboard | localhost:3031محلي |
شغّل واجهة API أولًا: تقرأ الواجهتان الأماميتان كل بياناتهما منها.
شغّل واجهة API
ثبّت واضبط الإعداد
يعمل
.env.exampleكما هو للتطوير المحلي.تواجه مشكلة؟الطرفيةcorepack enable cd back-end yarn install cp .env.example .envأنشئ قاعدة البيانات
ينشئ
yarn seedالملفdatabase.sqliteوجداوله والمتجر التجريبي. تشغيله مرة أخرى يضيف ما هو ناقص فقط.الطرفيةفيback-endyarn seedشغّل الخادم
الطرفيةفيback-endyarn devالنتيجة المتوقعة: يجيب localhost:8000/api/healthمحلي بـ
تواجه مشكلة؟{"status":"ok"}.
شغّل المتجر
في طرفية ثانية:
ثبّت واضبط الإعداد
يوجّه ملف
.envالمنسوخ المتجرَ إلى واجهة API على المنفذ8000.الطرفيةcd storefront yarn install cp .env.example .envشغّله
الطرفيةفيstorefrontyarn devالنتيجة المتوقعة: يفتح localhost:3030محلي المتجر بالإنجليزية؛ والنسخة العربية على
تواجه مشكلة؟/ar.
شغّل المتجر
واجهة API ليست جزءًا من هذه الحزمة. لا تنشئ ملف .env بعد: من دونه يعمل المتجر على متجره النموذجي المدمج.
شغّله
الطرفيةفيstorefrontyarn devالنتيجة المتوقعة: يفتح localhost:3030محلي المتجر مع تنبيه «بيانات تجريبية». أي بريد إلكتروني وكلمة مرور يسجّلان دخولك كمتسوّق نموذجي، وما تغيّره يُحفظ في المتصفح.
عندما تكون واجهة API الخاصة بالقالب قيد التشغيل، أنشئ .env من .env.example واضبط NEXT_PUBLIC_API_BASE_URL على عنوانها. هذا ما يوقف المتجر النموذجي.
شغّل لوحة الإدارة
في طرفية ثالثة:
ثبّت واضبط الإعداد
الطرفيةcd admin-dashboard yarn install cp .env.example .envشغّلها وسجّل الدخول
الطرفيةفيadmin-dashboardyarn devالنتيجة المتوقعة: يفتح localhost:3031محلي نموذج تسجيل الدخول، معبّأً مسبقًا ببيانات المدير العام:
تواجه مشكلة؟admin@example.comمع كلمة المرورAdmin@123.
شغّل لوحة الإدارة
واجهة API ليست جزءًا من هذه الحزمة. لا تنشئ ملف .env بعد: من دونه تعمل لوحة الإدارة على متجرها النموذجي المدمج.
شغّلها وسجّل الدخول
الطرفيةفيadmin-dashboardyarn devالنتيجة المتوقعة: يفتح localhost:3031محلي نموذج تسجيل الدخول، معبّأً مسبقًا بـ
admin@example.comوAdmin@123. على المتجر النموذجي، يسجّل دخولك كمدير عام أي بريد إلكتروني صالح مع كلمة مرور من 6 أحرف على الأقل، وتُحفظ تغييراتك في المتصفح.
يبقى المساعد الذكي واستوديو الذكاء الاصطناعي غير متاحين على المتجر النموذجي، لأن كليهما يحتاج إلى مفاتيح واجهة API. كل ما عدا ذلك يعمل.
الإعداداتبناء الإنتاج
المجلدات نفسها، تُبنى مرة واحدة ثم تُشغَّل. اضبط أولًا back-end/.env للإنتاج: مع NODE_ENV=production لا تنشئ واجهة API أي جداول عند بدء التشغيل، وترفض البدء ما دام JWT_SECRET فارغًا أو ما زال بقيمة المثال، أو ما دام CORS_ORIGIN فارغًا.
NODE_ENV=production
JWT_SECRET=<a long random string>
CORS_ORIGIN=http://localhost:3030,http://localhost:3031
FRONTEND_URL=http://localhost:3031ولّد السر بالأمر node -e "console.log(require('crypto').randomBytes(48).toString('hex'))". ثم ابنِ واجهة API، وأنشئ جداولها مرة واحدة، وشغّلها. ينشئ yarn db:sync:prod جداول فارغة؛ أما yarn seed:prod بدلًا منه فيضيف المتجر التجريبي وحساباته.
back-endyarn build
yarn db:sync:prod
yarn start:prodلكل واجهة أمامية، المتجر على 3030 ولوحة الإدارة على 3031 (الأمران نفسهما داخل admin-dashboard):
storefrontyarn build
yarn startتضمّن الواجهتان الأماميتان ملف .env الخاص بهما أثناء البناء، لذا شغّل yarn build مجددًا بعد تغييره. قبل النشر على أي مكان عام، اقرأ قائمة التحقق الخاصة بالإنتاج.
ابدأ من جديد ببيانات تجريبية جديدة
أوقف واجهة API، ثم احذف ملف قاعدة البيانات واملأه بالبيانات التجريبية من جديد. هذا يحذف كل ما أنشأته.
back-endrm -f database.sqlite* && yarn seedفي PowerShell:
back-endRemove-Item database.sqlite*; yarn seed