نظام احترافي لإنشاء وإدارة تقارير أمن المعلومات — مبني بأحدث التقنيات مع واجهة عربية كاملة
- تشغيل النظام على سيرفر الإنتاج
- المميزات
- التشغيل السريع
- التشغيل بالتفصيل
- التطوير المحلي
- VS Code 1.115 Agent Workflow
- البنية التقنية
- هيكل المشروع
- التكامل المستمر CI/CD
- متغيرات البيئة
- الذكاء الاصطناعي
هذا الدليل مخصص للموظف غير التقني — اتبع الخطوات بالترتيب وسيعمل النظام.
- ✅ سيرفر عليه Docker Desktop (أو Docker Engine) — فقط لا غير
لا تحتاج Node.js ولا Git ولا أي برنامج آخر. Docker فقط.
أنشئ مجلد فارغ في أي مكان على السيرفر، مثلاً:
C:\infosec-report
داخل المجلد، أنشئ ملف نصي جديد باسم docker-compose.yml (بدون أي امتداد آخر) والصق فيه هذا المحتوى بالضبط:
services:
app:
image: islamjihad/infosec-report:latest
ports:
- "3000:3000"
volumes:
- infosec-data:/app/data
environment:
- NODE_ENV=production
- DATABASE_URL=file:/app/data/infosec.db
restart: unless-stopped
volumes:
infosec-data:تنبيه: تأكد أن اسم الملف هو
docker-compose.ymlوليسdocker-compose.yml.txt
افتح Terminal / PowerShell / CMD داخل نفس المجلد، ثم اكتب:
docker compose up -dDocker سيقوم تلقائياً بـ:
- تحميل صورة النظام من الإنترنت (أول مرة فقط)
- إنشاء قاعدة البيانات
- تشغيل النظام
افتح المتصفح واكتب:
http://localhost:3000
أو إذا كنت تفتح من جهاز آخر على نفس الشبكة:
http://<عنوان-IP-السيرفر>:3000
مثال:
http://192.168.1.100:3000
عند وجود تحديث جديد، افتح Terminal في نفس المجلد واكتب:
docker compose pull
docker compose up -ddocker compose downdocker compose logs -fdocker cp infosec-report-app-1:/app/data/infosec.db ./backup-infosec.db| الميزة | الوصف |
|---|---|
| 📊 لوحة تحكم ذكية | عرض جميع التقارير بإحصائيات مجمعة (عدد التقارير، متوسط الأمان، بيانات المخاطر) |
| 📝 محرر تقارير متقدم | 7 أقسام إدخال منظمة مع حفظ تلقائي كل ثانيتين |
| 🖨️ تصدير احترافي | معاينة كاملة بغلاف رسمي + تصدير PDF مباشرة من المتصفح |
| 🤖 مراجعة AI | 5 أنواع مراجعة ذكية مع اختيار المزود (Google Gemini أو NVIDIA NIM) |
| 💾 حفظ تلقائي | كل تغيير يُحفظ تلقائياً بدون تدخل المستخدم |
| 📋 نسخ التقارير | استنساخ أي تقرير بضغطة واحدة |
| 🗺️ خريطة مخاطر حرارية | Risk Heat Map مصفوفة 5×5 |
| 📐 مقاييس النضج | 8 مجالات أمنية قابلة للتعديل |
| ⏱️ مقاييس SLA | MTTD / MTTR / MTTC مع مقارنة بالأهداف |
| 🌐 واجهة عربية كاملة | RTL + خط Cairo الاحترافي |
الطريقة الأسرع لتشغيل النظام — أمر واحد فقط:
docker run -d -p 3000:3000 -v infosec-data:/app/data islamjihad/infosec-report:latestثم افتح المتصفح على: http://localhost:3000
⚠️ ملاحظة: يجب أن يكون Docker مثبتاً على جهازك.
# تشغيل بدون AI
docker run -d \
--name infosec-report \
-p 3000:3000 \
-v infosec-data:/app/data \
islamjihad/infosec-report:latest
# تشغيل مع AI (المفاتيح من داخل صفحة الإعدادات)
docker run -d \
--name infosec-report \
-p 3000:3000 \
-v infosec-data:/app/data \
islamjihad/infosec-report:latest# نسخ المشروع
git clone https://github.com/IslamJihad/infosec-report.git
cd infosec-report
# تشغيل
docker compose up -dأو أنشئ ملف docker-compose.yml خاص بك:
services:
app:
image: islamjihad/infosec-report:latest
ports:
- "3000:3000"
volumes:
- infosec-data:/app/data
environment:
- NODE_ENV=production
- DATABASE_URL=file:/app/data/infosec.db
restart: unless-stopped
volumes:
infosec-data:# تشغيل النظام
docker compose up -d
# إيقاف النظام
docker compose down
# عرض السجلات
docker compose logs -f
# تحديث إلى آخر إصدار
docker compose pull && docker compose up -d
# نسخ احتياطي لقاعدة البيانات
docker cp infosec-report-app-1:/app/data/infosec.db ./backup-infosec.db- Node.js 20 أو أحدث
- npm 10 أو أحدث
# 1. نسخ المشروع
git clone https://github.com/IslamJihad/infosec-report.git
cd infosec-report
# 2. تثبيت الاعتمادات
npm install
# 3. إعداد قاعدة البيانات
npx prisma db push
# 4. تشغيل خادم التطوير
npm run devثم افتح: http://localhost:3000
npm run dev # تشغيل خادم التطوير (مع Hot Reload)
npm run build # بناء نسخة الإنتاج
npm run start # تشغيل نسخة الإنتاج
npm run lint # فحص الكودلأفضل تجربة تطوير مع الوكلاء في VS Code 1.115، تمت إضافة ملفات إعداد جاهزة للمشروع داخل .vscode مع تعليمات Copilot على مستوى المستودع.
For agent-native development, this repository now includes workspace automation and Copilot guidance.
npm run dev:setup
npm run devnpm run verify:prisma
npm run verify:typecheck
npm run verify:lint
npm run buildتفاصيل كاملة (Arabic + English):
# بناء الصورة
docker build -t infosec-report .
# تشغيل
docker run -d -p 3000:3000 -v infosec-data:/app/data infosec-report| المكون | التقنية | الإصدار |
|---|---|---|
| Framework | Next.js (App Router) | 16.x |
| Language | TypeScript | 5.x |
| Styling | Tailwind CSS | 4.x |
| Database | SQLite + Prisma ORM | Prisma 7.x |
| State Management | Zustand | 5.x |
| AI Integration | Google Gemini + NVIDIA NIM (قابل للتبديل من الإعدادات) | — |
| Charts | Recharts | 3.x |
| Animations | Framer Motion | 12.x |
| Container | Docker (Alpine) | — |
| CI/CD | GitHub Actions | — |
infosec-report/
├── .github/
│ └── workflows/
│ └── docker-publish.yml # 🔄 CI/CD: Auto-build Docker on push
├── prisma/
│ └── schema.prisma # 📐 Database schema
├── src/
│ ├── app/
│ │ ├── api/
│ │ │ ├── reports/ # 📡 Reports CRUD API
│ │ │ ├── settings/ # ⚙️ Settings API
│ │ │ └── ai/review/ # 🤖 AI Review API
│ │ ├── report/[id]/ # 📝 Report editor page
│ │ │ └── preview/ # 🖨️ Print preview page
│ │ ├── settings/ # ⚙️ Settings page
│ │ ├── layout.tsx # 🎨 Root layout (RTL + Cairo font)
│ │ ├── page.tsx # 📊 Dashboard
│ │ └── globals.css # 🎨 Tailwind + custom theme
│ ├── components/
│ │ ├── forms/ # 📝 7 form sections
│ │ │ ├── GeneralInfoForm # معلومات عامة
│ │ │ ├── ExecutiveSummary # الملخص التنفيذي
│ │ │ ├── KPIForm # اتجاه المؤشرات
│ │ │ ├── SLAForm # مقاييس SLA
│ │ │ ├── RisksForm # المخاطر
│ │ │ ├── MaturityForm # مقاييس النضج
│ │ │ └── Recommendations # التوصيات
│ │ ├── layout/
│ │ │ ├── Sidebar.tsx # 📑 Navigation sidebar
│ │ │ └── TopBar.tsx # 🔝 Section header + actions
│ │ ├── report/
│ │ │ └── ReportPreview.tsx # 🖨️ Full professional report
│ │ └── ai/
│ │ └── AIReviewModal.tsx # 🤖 AI review dialog
│ ├── lib/
│ │ ├── db.ts # 🗄️ Prisma client singleton
│ │ ├── api.ts # 📡 Client-side fetch helpers
│ │ └── constants.ts # 📋 Maps, colors, utilities
│ ├── store/
│ │ └── reportStore.ts # 🏪 Zustand state management
│ └── types/
│ └── report.ts # 📐 TypeScript interfaces
├── Dockerfile # 🐳 Multi-stage Docker build
├── docker-compose.yml # 🐳 Docker Compose config
├── docker-entrypoint.sh # 🐳 Container startup script
└── package.json
هذا المشروع متصل تلقائياً بـ Docker Hub عبر GitHub Actions.
Push to GitHub (master) → GitHub Actions → Build Docker Image → Push to Docker Hub
- عند كل
git pushإلى فرعmaster، يتم تشغيل GitHub Actions تلقائياً - يبني الـ Workflow صورة Docker جديدة
- يرفع الصورة إلى Docker Hub باسم
islamjihad/infosec-report:latest - يمكنك أيضاً تشغيل البناء يدوياً من تبويب Actions في GitHub
# على جهاز التطوير: عدّل الكود ثم ادفع
git add .
git commit -m "تحسين واجهة التقارير"
git push
# ⏳ انتظر دقيقة أو دقيقتين حتى ينتهي GitHub Actions
# على الخادم: سحب آخر إصدار
docker compose pull && docker compose up -dيمكنك أيضاً تشغيل البناء يدوياً:
- اذهب إلى https://github.com/IslamJihad/infosec-report/actions
- اختر Build & Push Docker Image
- اضغط Run workflow
| المتغير | الوصف | القيمة الافتراضية |
|---|---|---|
DATABASE_URL |
مسار قاعدة بيانات SQLite | file:/app/data/infosec.db |
BASIC_AUTH_USERNAME |
اسم مستخدم الحماية الأساسية (اختياري لكنه موصى به للإنتاج) | — |
BASIC_AUTH_PASSWORD |
كلمة مرور الحماية الأساسية (اختياري لكنه موصى به للإنتاج) | — |
APP_SETTINGS_ENC_KEY |
مفتاح تشفير مفاتيح مزودي الذكاء الاصطناعي داخل قاعدة البيانات | — |
PERPLEXITY_API_KEY |
مفتاح Perplexity AI (اختياري) | — |
NODE_ENV |
بيئة التشغيل | production |
PORT |
منفذ الخادم | 3000 |
ملاحظة: يمكن أيضاً إدخال مفتاح Perplexity AI من داخل النظام عبر صفحة الإعدادات.
أمنياً:
- عند ضبط
BASIC_AUTH_USERNAMEوBASIC_AUTH_PASSWORDسيتم تفعيل حماية HTTP Basic لكل التطبيق.- عند ضبط
APP_SETTINGS_ENC_KEYسيتم تشفير مفاتيح مزودي الذكاء الاصطناعي قبل تخزينها في قاعدة البيانات.
النظام يدعم مراجعة التقارير بالذكاء الاصطناعي عبر Perplexity AI:
| نوع المراجعة | الوصف |
|---|---|
| 📋 مراجعة شاملة | تحليل كامل للتقرير من جميع الجوانب |
| 👔 مراجعة إدارية | ملاحظات مخصصة للإدارة العليا |
| تقييم عميق للمخاطر والتهديدات | |
| 🔍 كشف الثغرات | اكتشاف النقاط المخفية والثغرات |
- احصل على مفتاح API من Perplexity AI
- أدخله بإحدى الطريقتين:
- من واجهة النظام: اذهب إلى الإعدادات ← أدخل مفتاح API
- كمتغير بيئة:
PERPLEXITY_API_KEY=pplx-xxxxxxxxxxxx
يتكون كل تقرير من 7 أقسام رئيسية:
- المعلومات العامة — المنظمة، المؤلف، الفترة، التصنيف الأمني
- الملخص التنفيذي — نتيجة التقييم، القرارات، النقاط الرئيسية
- اتجاه المؤشرات (KPIs) — حوادث، ثغرات، نسب التغيير
- مقاييس SLA — MTTD / MTTR / MTTC مع أهداف المقارنة
- المخاطر — قائمة ديناميكية مع حساب تلقائي لدرجة الخطورة
- مقاييس النضج — 8 مجالات أمنية بمعدل إجمالي
- التوصيات — إجراءات مقترحة مع أولويات وحالة التنفيذ
هذا المشروع للاستخدام الداخلي.
صُنع بـ ❤️ لقسم أمن المعلومات