انتقل إلى المقال
Aniq-UI

Dashboard 2شغّل لوحة التحكم من دون Docker

شغّل لوحة التحكم من دون Docker

ثبّت كل تطبيق وشغّله باستخدام Node.js و Yarn، بطرفية مستقلة لكل تطبيق.

لحزمة واجهة + خلفية

قبل أن تبدأ: ثبّت Node.js 22.9 أو أحدث ونفّذ corepack enable مرة واحدة. لا حاجة إلى خادم قاعدة بيانات.

اطّلع على المتطلبات

افتح كل طرفية في المجلد dashboard-2-full-stack. شغّل واجهة API أولًا: فلوحة التحكم تقرأ كل بياناتها منها.

التطبيقالمجلدالعنوان
APIback-endlocalhost:8000/api/healthمحلي
لوحة التحكمfront-endlocalhost:3030محلي

شغّل واجهة API

  1. ثبّت واضبط الإعداد

    يعمل .env.example كما هو في التطوير المحلي: SQLite في ./database.sqlite، وواجهة API على المنفذ 8000، ومسموح للوحة التحكم من http://localhost:3030.

    الطرفيةفي dashboard-2-full-stack
    corepack enable
    cd back-end
    yarn install
    cp .env.example .env
    تواجه مشكلة؟
  2. أنشئ قاعدة البيانات

    ينشئ yarn seed الملف database.sqlite وجداوله والبيانات النموذجية: 12 مشرفًا و5 أدوار و25 صلاحية، و15 مستخدمًا و12 محذوفًا، و15 مشروعًا و12 محذوفًا، و10 مهام، و13 إعداد تطبيق، و50 دولة. وتشغيله مرة أخرى يُبقي مشرفيك وكلمات مرورهم ومستخدميك ومشاريعك ومهامك ودولك كما هي، ويضيف ما ينقص. ويعيد إعدادات التطبيق وصلاحيات الأدوار الخمسة المدمجة إلى قيمها النموذجية، ويمنح دور Viewer لكل مشرف غير admin@example.com لا يملكه بعد.

    الطرفيةفي back-end
    yarn seed
  3. شغّل الخادم

    يعيد yarn dev تشغيل واجهة API كلما حفظت ملفًا.

    الطرفيةفي back-end
    yarn dev

    النتيجة المتوقعة: يجيب فحص الحالةمحلي بـ "status":"ok" و "database":"up".

    تواجه مشكلة؟

شغّل لوحة التحكم

في طرفية ثانية:

  1. ثبّت واضبط الإعداد

    يوجّه ملف .env المنسوخ لوحة التحكم إلى واجهة API على المنفذ 8000، وإلى الخادم نفسه للتحديث الفوري للصلاحيات.

    الطرفيةفي dashboard-2-full-stack
    cd front-end
    yarn install
    cp .env.example .env
  2. شغّلها وسجّل الدخول

    الطرفيةفي front-end
    yarn dev

    النتيجة المتوقعة: يفتح localhost:3030محلي صفحة تسجيل الدخول. سجّل الدخول بالبريد admin@example.com وكلمة المرور Admin@123.

    تواجه مشكلة؟

من دون ملف .env المنسوخ، لا تبحث لوحة التحكم عن واجهة API أصلًا: بل تعمل على واجهة API التجريبية المدمجة ببيانات نموذجية محفوظة في متصفحك.

شغّل لوحة التحكم

لا حاجة إلى ملف .env: فمن دون ضبط عنوان لواجهة API، تعمل لوحة التحكم على واجهة API التجريبية المدمجة ببيانات نموذجية.

  1. التثبيت

    الطرفية
    corepack enable
    cd dashboard-2-front-end
    yarn install
    تواجه مشكلة؟
  2. شغّلها وسجّل الدخول

    الطرفيةفي dashboard-2-front-end
    yarn dev

    النتيجة المتوقعة: يفتح localhost:3030محلي صفحة تسجيل الدخول. سجّل الدخول بالبريد admin@example.com وكلمة المرور Admin@123، فتفتح النظرة العامة مع إشعار «بيانات تجريبية».

    تواجه مشكلة؟

لتوجيهها إلى واجهة API الخاصة بك، انسخ الإعدادات النموذجية بالأمر cp .env.example .env: فهي تتوقع واجهة API على http://localhost:8000/api. غيّر NEXT_PUBLIC_API_BASE_URL وNEXT_PUBLIC_WEBSOCKET_BASE_URL إذا كانت واجهتك تعمل في مكان آخر، ثم أعد تشغيل yarn dev.

بناء واجهة API للإنتاج

اضبط أولًا ملف .env لواجهة API للإنتاج: مع NODE_ENV=production لا تنشئ واجهة API أي جداول عند بدء التشغيل، وترفض البدء ما دام JWT_SECRET فارغًا أو ما زال بقيمة المثال، أو ما دام CORS_ORIGIN فارغًا.

back-end/.env
NODE_ENV=production
JWT_SECRET=paste-the-generated-secret-here
CORS_ORIGIN=https://admin.your-domain.com
FRONTEND_URL=https://admin.your-domain.com

ولّد السر بالأمر node -e "console.log(require('crypto').randomBytes(48).toString('hex'))". ثم ابنها في back-end، وأنشئ الجداول مرة واحدة بالأمر yarn seed:prod، وشغّلها:

الطرفيةفي back-end
yarn build
yarn seed:prod
yarn start:prod

yarn seed:prod هو الأمر الوحيد الذي ينشئ الجداول، وهو يضيف أيضًا البيانات النموذجية والمشرفين النموذجيين بكلمات مرورهم المعروفة للجميع. قبل الإطلاق، سجّل الدخول وغيّر كلمات مرور المشرفين النموذجيين من الإعدادات ثم الأمان، أو احذفهم، وأبقِ JWT_SECRET الخاص بك كما سبق، قبل أن يصبح بإمكان أي شخص آخر الوصول إلى لوحة التحكم. نفّذه مرة واحدة: فالتشغيل الثاني يعيد إعدادات التطبيق وصلاحيات الأدوار المدمجة إلى قيمها النموذجية.

بناء لوحة التحكم للإنتاج

في مجلد لوحة التحكم، ابنِها مرة واحدة ثم شغّلها. تعمل على المنفذ 3030، أو على PORT من .env أو من البيئة.

الطرفية
yarn build
yarn start

تُضمَّن قيم NEXT_PUBLIC_* في لوحة التحكم عند البناء، لذلك نفّذ yarn build مرة أخرى بعد تغيير .env.

ابدأ من جديد ببيانات نموذجية جديدة

أوقف واجهة API، ثم احذف ملف قاعدة البيانات وأعد ملأها بالبيانات في back-end. هذا يحذف كل ما أنشأته.

الطرفيةفي back-end
rm -f database.sqlite* && yarn seed

في PowerShell:

الطرفيةفي back-end
Remove-Item database.sqlite*; yarn seed

يفرغ yarn reset كل جدول ويُبقي الجداول؛ ويحذف yarn drop كل جدول. نفّذ yarn seed بعد أي منهما.

التالي

هل كان هذا مفيدًا؟

تمت مراجعته على إصدار 2026-10-09-2

توقفت عند خطوة؟

ابحث عن الحل قبل أن تبدأ من جديد.

حل المشكلات

تفضيلات ملفات تعريف الارتباط

نستخدم ملفات تعريف الارتباط لتعزيز تجربة التصفح الخاصة بك وتحليل حركة المرور على الموقع وتخصيص المحتوى. بالنقر على "قبول الكل"، فإنك توافق على استخدامنا لملفات تعريف الارتباط للتحليلات والإعلانات المخصصة.