انتقل إلى المحتوى الرئيسي

دليل البدء السريع للمساهمين الجدد

ترشدك هذه الصفحة خلال عملية إعداد بيئة تطوير AuroraSOC كاملة على جهازك. بحلول نهاية هذا الدليل، ستكون واجهة برمجة التطبيقات (API) قيد التشغيل، ولوحة التحكم (dashboard) تعمل، وستكون قادرًا على تشغيل مجموعة الاختبارات بالكامل.


المتطلبات الأساسية (Prerequisites)

قم بتثبيت هذه الأدوات قبل البدء:

الأداة (Tool)الحد الأدنى للإصداروظيفتها (What It Does)التثبيت (Install)
Python3.12+تشغيل الواجهة الخلفية (backend)، والوكلاء، والنصوص البرمجية الخاصة بالتدريبpython.org أو sudo apt install python3.12 python3.12-venv
Rust1.75+تجميع المحرك الأساسي (core edge engine) المبني بلغة Rust`curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs
Node.js18+تشغيل لوحة تحكم Next.js وتوثيقات Docusaurusnodejs.org أو nvm install 18
Docker & Docker Compose24+ / v2تشغيل PostgreSQL، Redis، NATS، Mosquitto، Grafana، إلخ.docs.docker.com
Ollamaالأحدث (Latest)تقديم نماذج LLM الخاصة بـ Granite 4 محليًا`curl -fsSL https://ollama.com/install.sh
Git2.30+التحكم في الإصدارات (Version control)sudo apt install git
Makeأي إصدارتشغيل أوامر Makefile (الواجهة الرئيسية للمطورين)sudo apt install build-essential
تلميح

قم بتشغيل الأمر make help في أي وقت لرؤية جميع الأوامر المتاحة مع وصف قصير لكل منها.


الخطوة 1: استنساخ المستودع والدخول إليه

git clone https://github.com/ahmeddwalid/AuroraSOC
cd AuroraSOC

الخطوة 2: بدء تشغيل خدمات البنية التحتية

يعتمد نظام AuroraSOC على عدة خدمات. يقوم Docker Compose بتشغيلها جميعًا بضغطة زر وبأمر واحد:

make docker-up

يشغل هذا الأمر الخدمات التالية:

الخدمة (Service)المنفذ (Port)الغرض (Purpose)
PostgreSQL 165432قاعدة البيانات الرئيسية
Redis 76379التخزين المؤقت (Cache)، إدارة تدفقات الأحداث، وتقييد معدل الطلبات (rate limiting)
Qdrant6333قاعدة بيانات المتجهات (Vector database) لذاكرة الوكيل
NATS JetStream4222اتحاد ومشاركة الأحداث عبر المواقع المختلفة (Cross-site event federation)
Mosquitto1883/8883وسيط MQTT الخاص بأجهزة إنترنت الأشياء (IoT)
Prometheus9090جمع مقاييس الأداء
Grafana3001لوحات تحكم المراقبة
OTel Collector4317تجميع مسارات وتتبعات النظام الموزعة (Distributed trace collection)

للتحقق من أن كل شيء يعمل بسلاسة:

docker compose ps

لعرض السجلات (logs):

make docker-logs

الخطوة 3: تثبيت اعتماديات ومكتبات بايثون

أنشئ بيئة افتراضية وقم بتثبيت كافة الاعتماديات (بما في ذلك إضافات وبيئات التطوير والاختبار):

python3 -m venv .venv
source .venv/bin/activate
make dev

يقوم هذا الأمر بتنفيذ pip install -e ".[dev,test]"، والذي يثبّت نظام AuroraSOC في الوضع القابل للتحرير (editable mode) بحيث تدخل تغييراتك في الشفرة حيز التنفيذ الفوري.


الخطوة 4: سحب وتحميل نماذج اللغات الكبيرة (LLM)

يستخدم نظام AuroraSOC نماذج IBM Granite 4 المٌقدمة عبر خدمة Ollama:

make ollama-pull-granite

يقوم هذا الأمر بسحب نموذجَين اثنين:

  • granite4:8b — يُستخدم من قبل كافة الوكلاء المتخصصين الـ 16
  • granite4:dense — يُستخدم من قبل وكيل التنظيم (Orchestrator) لإنجاز عمليات الاستنتاج المُعقدة

تحقق من توفر النماذج بنجاح:

make ollama-list

إذا لم تكن خدمة Ollama قيد التشغيل، قم بتشغيلها أولًا:

make ollama-serve

الخطوة 5: تشغيل عمليات تهجير قاعدة البيانات (Database Migrations)

قم بتطبيق مخطط البيانات (schema) على قاعدة بيانات PostgreSQL:

make migrate

يقوم هذا الأمر بتشغيل الأمر alembic upgrade head، والذي بدوره ينشئ جميع الجداول البالغ عددها 13 جدولًا (تتضمن الجداول الخاصة بالإنذارات، والحالات، والوكلاء، وكتب التشغيل playbook، إلخ). للتحقق من حالة التهجير الحالية:

alembic current

الخطوة 6: تشغيل واجهة برمجة تطبيقات الخلفية (Start the Backend API)

make api

يقوم هذا الأمر ببدء تشغيل خادم FastAPI على الرابط http://localhost:8000 مع تفعيل ميزة إعادة التحميل المباشر (hot-reload). من المفترض أن ترى مخرجات مشابهة لما يلي:

INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
INFO: Started reloader process

تحقق من عمل الخادم:

curl http://localhost:8000/health

توثيقات واجهة برمجة التطبيقات (API Documentation)

يُنشئ FastAPI توثيقات تفاعلية للواجهة برمجة التطبيقات (API) بشكل تلقائي:


الخطوة 7: تشغيل لوحة التحكم (Start the Dashboard)

في نافذة أو تبويبة طرفية (terminal) جديدة:

make dashboard-install # للمرة الأولى فقط
make dashboard-dev

سيتم تشغيل لوحة تحكم Next.js على الرابط http://localhost:3000. وتتصل هذه اللوحة بواجهة FastAPI الخلفية على المنفذ 8000.

اختصار

يمكنك تشغيل واجهة برمجة التطبيقات (API) ولوحة التحكم (Dashboard) معًا بأمر واحد فقط:

make dev-all

يقوم هذا بتشغيل كلتا العمليتين بشكل متزامن، ويوقفهما معًا عند الضغط على Ctrl+C.


الخطوة 8: تشغيل مجموعة الاختبارات

make test

يقوم هذا الأمر بتشغيل كافة اختبارات بايثون باستخدام pytest. للحصول على تقرير لتغطية الكود بالاختبارات:

make test-cov

يتم إنشاء تقرير التغطية بصيغة HTML في المسار htmlcov/index.html.

لتشغيل اختبارات Rust أيضًا:

make rust-test

لتشغيل جميع الفحوصات (تحليل الكود lint + التحقق من الأنواع + اختبارات بايثون + اختبارات وفحوصات Rust clippy + فحوصات لوحة التحكم):

make check

الخطوة 9: التحقق من عمل كل شيء

قم بإجراء مراجعة على قائمة التحقق هذه للتأكد من اكتمال الإعداد الخاص بك بنجاح:

  • docker compose ps — جميع الخدمات تعمل وحالتها "Up"
  • curl http://localhost:8000/health — يُرجع رسالة تفيد بأن الحالة "OK"
  • make test — اجتياز جميع الاختبارات بنجاح
  • make lint — لا يوجد أي أخطاء في التحليل المبدئي (linting)
  • http://localhost:3000 — تُحمّل لوحة التحكم بشكل سليم في المتصفح
  • ollama list — يظهر النموذجان granite4:8b و granite4:dense في المُخرجات

الإعداد المحلي المؤتمت (Automated Local Setup)

لإعداد البيئة لأول مرة بطريقة آلية ومؤتمتة بالكامل، شغّل:

make setup-local

ينفّذ هذا النص البرمجي (scripts/setup_local.sh) الآتي:

  1. الفحص والتحقق من تواجد كافة الأدوات المطلوبة (Python، Rust، Node.js، Docker، Ollama).
  2. سحب وتحميل نماذج Granite 4 من خلال Ollama.
  3. إنشاء ملف .env الافتراضي في حال عدم وجوده.
  4. التحقق التام من جميع التبعيات واعتماديات النظام.

مرجع سريع لأهداف Makefile الشائعة (Common Makefile Targets Reference)

التطوير (Development)

الهدف (Target)الوصف (Description)
make installتثبيت اعتماديات ومكتبات بايثون (لبيئة الإنتاج فقط)
make devتثبيت الاعتماديات مع إضافات وبيئات التطوير والاختبار
make apiتشغيل خلفية FastAPI (على المنفذ 8000، مع إعادة التحميل المباشر)
make dev-allتشغيل واجهة برمجة التطبيقات (API) ولوحة التحكم معًا
make dashboard-devبناء وتشغيل لوحة تحكم Next.js (على المنفذ 3000)
make mcpتشغيل خادم سجل أدوات وبروتوكولات MCP

الجودة والتحقق (Quality)

الهدف (Target)الوصف (Description)
make testتشغيل مجموعة اختبارات بايثون
make test-covالبدء باختبارات الكود مع قياس نسبة التغطية
make lintتشغيل أداة التحليل الأكاديمي ruff linter
make formatالتنسيق التلقائي للكود باستخدام ruff
make type-checkتشغيل فحص والتحقق من الأنواع mypy
make checkتشغيل كافة الفحوصات والإجراءات (التحليل المبكر + تحقق الأنواع + الاختبارات + فئات Rust + لوحة التحكم)

رست (Rust)

الهدف (Target)الوصف (Description)
make rust-buildبناء المحرك الأساسي المبني عبر Rust (وضع الإنتاج والإصدار)
make rust-testتشغيل اختبارات لغة Rust
make rust-clippyتشغيل التحليل الشكلي والجمالي (Linter) لكودات Rust

قاعدة البيانات (Database)

الهدف (Target)الوصف (Description)
make migrateتطبيق وتفعيل كافة التهجيرات المعلقة
make migrate-new MSG="description"إنشاء هيكل تهجير قاعدة بيانات جديد
make migrate-downالتراجع عن آخر خطوة تهجير لقاعدة البيانات (Roll back one migration)

الدوكر (Docker)

الهدف (Target)الوصف (Description)
make docker-upإقلاع وتشغيل كافة خدمات البنية التحتية
make docker-downإيقاف تمامی الخدمات
make docker-logsتعقب ورصد سجلات النظام الخاصة بالحاويات (Tail container logs)
make docker-buildإعادة بناء وتقويم جميع صور أنظمة وحاويات الـ Docker

نماذج اللغات العملاقة / والتدريب (LLM / Training)

الهدف (Target)الوصف (Description)
make ollama-pull-graniteسحب النماذج الأساسية المتعلقة بـ Granite 4
make ollama-serveبدء أوامر وسير عمل خادم Ollama
make train-dataالانتهاء من تجهيز وتحضير حزم ومجموعات بيانات تدريب مركز عمليات الأمان (SOC)
make trainضبط دقيق لـ Granite 4 (يحتاج ويستدعي استخدام وحدة معالجة رسومية GPU متطورة)
make train-agent AGENT=nameالضبط والتنقيح المعرفي الدقيق الموجه لوكيل محدد بعينه
make train-evalتقييم الموديل أو النموذج بعد التعديل والضبط הדקות
make enable-finetunedتوجيه وتصحيح مسار الوكلاء لاستخدام النماذج المدربة والمعدلة بعناية
make disable-finetunedإرجاع مسارات وتوجيهات الوكلاء للنماذج الافتراضية والأساسية

التنظيف (Cleanup)

الهدف (Target)الوصف (Description)
make cleanتطهير ومسح وإزالة كافة التخزينات المؤقتة (Caches) وعناصر وجهات عمل أوامر البناء

متغيرات البيئة (Environment Variables)

يتم تكوين نظام وإعداد AuroraSOC والتحكم به من خلال متغيرات ومعاملات البيئة، والتي تدار من خلال ملف aurorasoc/config/settings.py باستخدام إعدادات مكتبة Pydantic. فيما يلي المتغيرات الرئيسية:

المتغير (Variable)القيمة الافتراضية (Default)الوصف (Description)
DATABASE_URLpostgresql+asyncpg://aurora:aurora@localhost:5432/aurorasocبيانات الاتصال بقاعدة بيانات PostgreSQL
REDIS_URLredis://localhost:6379بيانات الاتصال بقواعد بيانات الذاكرة Redis
QDRANT_URLhttp://localhost:6333قاعدة بيانات المتجهات الشُعاعية Qdrant
NATS_URLnats://localhost:4222نقطة اتصال NATS JetStream
MQTT_BROKERlocalhostالمضيف والخادم المعني وتوجيه وسيط بروتوكول MQTT
OLLAMA_BASE_URLhttp://localhost:11434نقطة الانطلاقة لواجهة وبرمجة تطبيق Ollama
JWT_SECRET_KEY(يجب ضبطه)عبارة المرور والمفتاح السري لخدمة توقيع رمز JWT
GRANITE_USE_FINETUNEDfalseاستخدام وتشغيل النماذج المدربة بدقة في مقابل النماذج الأولية المعتادة والأساسية

يمكنك ضبط هذه القيم عبر ملف .env ووضعه في المجلد الجذري للمشروع (root) — البرنامج النصي المتمثل بأمر make setup-local سيقوم بتهيئة واحد مسبقًا بالنيابة عنك ونيابة عن متطلبات بيئتك.


استكشاف الأخطاء وإصلاحها (Troubleshooting)

رفض الاتصال "Connection refused" على أي من المنافذ 5432/6379/6333

هذه رسالة مفادها أن خدمات البنية التحتية قيد السكون والانقطاع وليست قيد التشغيل. قم بتشغيل وتشغيل الأمر make docker-up وانتظر ما بين 10–20 ثانية حتى إقلاعها.

تعذر العثور على نماذج Ollama (Ollama model not found)

نفذ الأمر make ollama-pull-granite. وإذا لم تكن خدمة أو بيئة Ollama نفسها مثبته من الاساس، فاسترجع وثمّن جدول "المتطلبات الأساسية (Prerequisites)" الظاهر في أعلى هذا المستند.

تواجد أخطاء ومشاكل في الاستيراد (Import errors) بعد استيرادك للتغييرات المحدّثة للشيفرة والشفرة

أعد تثبيت الاعتماديات بجميع متطلباتها: عبر تشغيل أمر make dev. وإذا كان هناك تغييرات مسجله قد حلت على مخطط بناء الجداول لقاعدة البيانات، لا تنس أن تنفذ في الوقت نفسة أمر التهجير make migrate.

الفشل ووجود أخطاء متعثرة في سير الاختبارات ولقاعدة البيانات

عليك التأكد من وجود الخادم وحاوية نظام قاعدة بيانات PostgreSQL على الخط وقيد التشغيل (من خلال استخدام التعليمة docker compose ps)، بالإضافة لتأكيدك والتأكد من تفعيل كافة عمليات التهجير والتحديث الجدولي (make migrate).

ظهور رسالة تفيد بـخطأ في الشبكة ("Network Error") بلوحة تحكم الواجهة الرقمية

الواجهة الخلفية (Backend) والمعني بها خدمة إطار خوادم وخدمات FastAPI، يجب أن تكون مستقرة وفي حالة الإقلاع والتشغيل المسبق (make api) وعلى وجه التحديد من خلال واجهة المنفذ والمنصة الرقمية 8000 حتى تستطيع وتعطي الإيعازات لوحة القيادة بالتواصل المباشر معها.

فشل خطوة وإجراء بناء حاوية ومسار Rust

تأكد مبدئياً وحالياً من كون أنظمة Rust قائمة وموجوده بالفعل وتعمل عن طريق التحقق المباشر بصيغة أمر (rustup --version). بعدها قم وأجر محاولتك مجددًا مع الخطوة make rust-build. وإذا لزم الأمر لدواعي الحاجات التشغيلية لملفات الامتداد بصيغة (proto)، فتحقق مسبقاً وتأكد تمامًا من كون النظام مدعوماً برحابة وتواجد البيئة التحتية وتثبيت حزمة وخدمة protoc.


الخطوات القادمة (Next Steps)

هكذا أصبحت بيئة العمل الخاصة بك جاهزة وقابلة لتصريف المهام. الآن:

  1. أقرأ دليل المساهمة (Contribution Guide) لفهم أعمق لمدلولات ومفاهيم معايير كتابة الأكواد والبرمجة وسير وحركة التعديلات و(PR process).
  2. اختر وقم بانتقاء مهمة — اطلع وتلمس أروقة وصفحة مشاركات ومسائل (Issues) من خلال موقع مشروع GitHub ابحث وفرد وابحث عن جميع المسائل المصنفة بوسم وتصنيف تعريفي يُدعى good first issue لتكلف ببدايات جيدة.
  3. ابدأ في الشروع والمباشرة بالبرمجة — الأمرين البرمجيين make format والتعليمة make lint سيحافظون وبشكل سوي وسلس على سلامة ورصانة وقوة ووضوح أكواد ونصوص شيفراتك البرمجية.