المتطلبات
ما تحتاج إلى تثبيته قبل تشغيل حزمتك، باستخدام Docker أو من دونه.
لحزمة الحزمة الكاملة
ما تحتويه كل حزمة
| الحزمة | التطبيقات في التنزيل | يعمل بمفرده |
|---|---|---|
| الحزمة الكاملة | واجهة API، والمتجر، ولوحة الإدارة | نعم، الثلاثة معًا |
| المتجر | المتجر | نعم، على متجر نموذجي مدمج إلى أن تربط واجهة API الخاصة بالقالب |
| لوحة الإدارة | لوحة الإدارة | نعم، على متجر نموذجي مدمج إلى أن تربط واجهة API الخاصة بالقالب |
| واجهة API (Backend API) | API | نعم، يقدّم واجهة API فقط |
لا تتضمن حزمة التطبيق الواحد التطبيقات الأخرى. يمكن للواجهتين الأماميتين استخدام واجهة API تشغّلها بالفعل، لكن كود واجهة API موجود فقط في الحزمة الكاملة وحزمة واجهة 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 أو أحدث. القالب مختبَر على Node.js 24، وهو الإصدار الذي تستخدمه صور Docker الخاصة به أيضًا. والمتجر وحده يعمل أيضًا على Node.js 20.9.
- Yarn 4، عبر Corepack. شغّل
corepack enableمرة واحدة؛ كل تطبيق يثبّت إصدار Yarn الخاص به، فيختارyarnالإصدار الصحيح. إذا لم يكن مع Node.js لديك Corepack، فثبّته أولًا بالأمرnpm install -g corepack. - لا حاجة إلى حزم عامة.
قاعدة البيانات
لا حاجة إلى خادم قاعدة بيانات. تستخدم واجهة API قاعدة SQLite افتراضيًا، وينشئ yarn seed الملف لك؛ ويستخدم Docker قاعدة SQLite أيضًا. الانتقال إلى MySQL مدعوم بتغيير في الإعدادات، لا بتغيير في الكود.
المنافذ
يستمع كل تطبيق على منفذ محلي ثابت. تأكد من أن لا شيء آخر يستخدم هذه المنافذ، أو انقل أحدها مع Docker بـ SITE_PORT أو ADMIN_PORT أو API_PORT في ملف .env بجوار docker-compose.yml.
| التطبيق | المنفذ |
|---|---|
| API | 8000 |
| المتجر | 3030 |
| لوحة الإدارة | 3031 |
المنفذ
يستمع المتجر على المنفذ 3030. تأكد من أن لا شيء آخر يستخدمه.
المنفذ
تستمع لوحة الإدارة على المنفذ 3031. تأكد من أن لا شيء آخر يستخدمه.
المنفذ
تستمع واجهة API على المنفذ 8000. تأكد من أن لا شيء آخر يستخدمه.
واجهة API للربط
لا تحتاج إلى أي شيء لتجربة تطبيقك: فهو يعمل على متجره النموذجي الخاص. ولاستخدام بيانات حقيقية، يحتاج إلى أن تكون واجهة API الخاصة بالقالب قيد التشغيل، وتضبط عنوانها في ملف .env الخاص به. تُباع واجهة API كحزمة مستقلة.
الخدمات الاختيارية
لا تحتاج إلى أي منها لتشغيل المتجر محليًا. تُفعَّل كل خدمة بمفاتيحها في back-end/.env، والمفتاح الذي يبقى بقيمته في .env.example يُعامَل كأنه غير مضبوط.
| الخدمة | من دونها |
|---|---|
| Cloudflare R2 أو مخزن آخر متوافق مع S3 | تُعرض صور المتجر التجريبي من نسخ مرفقة مع الواجهتين الأماميتين. ورفع صور جديدة يُجاب بـ 503 إلى أن تضبط مخزنًا. |
| Stripe | لا يُقبل أي دفع بالبطاقة: يوضح خيار البطاقة في صفحة إتمام الشراء أن الدفع بالبطاقة غير متاح، ويعمل الدفع عند الاستلام كالمعتاد. |
| مفتاح Google AI (Gemini) | يُظهر كلٌّ من مساعد لوحة الإدارة، ووضع «المساعد» في الاستوديو (كتابة تفاصيل المنتج وتعديل الصور)، وغرفة القياس في المتجر أنه متوقف. ويحتاج الاستوديو وغرفة القياس إلى المخزن أيضًا. |
| مفتاح Higgsfield وسرّه | يُظهر وضع «تحريك» في الاستوديو، الذي يصنع مقاطع فيديو للمنتج، أنه متوقف. |
| ملف نموذج إزالة الخلفية | لا يظهر زر «إزالة الخلفية» في الاستوديو. يعمل النموذج على خادمك الخاص، ويحتاج إلى المخزن لحفظ نتائجه، ولا يكلّف شيئًا عن كل صورة. |