Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
isms-builder — نظام إدارة أمن المعلومات المستضاف ذاتيًا — ISO 27001, NIS2, GDPR/DSGVO, BSI IT-Grundschutz | Kitploit
أدوات/GitHubGitHub/coolstartnow/isms-builder
التعلم والتعليمالاستجابة للحوادثموارد منسقةمسارات ودورات التعلم
GitHubcoolstartnow/isms-builder

isms-builder

نظام إدارة أمن المعلومات المستضاف ذاتيًا — ISO 27001, NIS2, GDPR/DSGVO, BSI IT-Grundschutz

عرض المستودع
2044738منذ شهر واحدتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
الموقع الإلكتروني
<!-- © 2026 Claude Hecker — ISMS Builder V 1.40.3 — AGPL-3.0 -->
![ISMS Builder Banner](https://assets.kitploit.com/production/public/readmes/12462/26d3b00b65a4f94cc34514132f1ee5f5c9036e45516880da99fb9501dd79bead.png)
# ISMS Builder

**نظام إدارة أمن المعلومات المستضاف ذاتيًا — مفتوح المصدر، لا يتطلب السحابة**

[![CI](https://github.com/coolstartnow/isms-builder/actions/workflows/ci.yml/badge.svg)](https://github.com/coolstartnow/isms-builder/actions/workflows/ci.yml)
[![Tests](https://img.shields.io/badge/tests-423%20passing-brightgreen)](https://github.com/coolstartnow/isms-builder/actions)
[![License: AGPL-3.0](https://img.shields.io/badge/License-AGPL--3.0-blue.svg)](LICENSE)
[![Node.js](https://img.shields.io/badge/Node.js-18+-339933?logo=node.js&logoColor=white)](https://nodejs.org)
[![Version](https://raw.githubusercontent.com/coolstartnow/isms-builder/HEAD/docs/badges/version.svg)](CHANGELOG.md)

📖 **[Wiki](https://github.com/coolstartnow/isms-builder/wiki)** — استخدام صورة Docker &
متغيرات البيئة، البنية والوحدات، الأسئلة الشائعة، المساهمة (DE/EN)

<!-- GDPR NOTE: The four badges above (CI, Tests, License, Node.js) load resources
     from external servers (github.com, shields.io/Cloudflare, img.shields.io).
     When this README is rendered in a browser, these requests transmit the viewer's
     IP address to third parties (incl. US-based servers — GDPR Art. 44 ff.).
     For 100% GDPR-compliant self-hosted documentation, replace these four badge
     lines with their local equivalents from docs/badges/ or remove them entirely. -->

---

> ## ⚠️ تحذير أمني: مستودعات ونسخ مزيفة توزّع برمجيات خبيثة
> لا يوفّر ISMS Builder أي **"إصدارات" معبّأة أو مثبّتات أو ملفات ZIP قابلة للتنزيل** — المصدر
> الشرعي الوحيد هو هذا المستودع، مستنسخًا أو منزّلًا مباشرة من GitHub كشيفرة مصدرية
> عادية. نحن على علم بوجود **مستودع خبيث واحد على الأقل ينتحل هوية هذا المشروع**
> (ملف README مزيف، وزر "تنزيل" مزيف يربط بملف ZIP متنكّر في هيئة لقطة شاشة، يحتوي على
> محمّل برمجيات خبيثة لنظام Windows — سلسلة حمولة `.cmd` → `.exe` → Lua-DLL). **لا تقم بتنزيل أو تشغيل أي
> ملف ZIP أو مثبّت أو exe باسم "isms_builder" من أي مكان آخر غير هذا المستودع.**
> إذا وجدت مستودعًا أو موقعًا مشبوهًا ينتحل هوية هذا المشروع، فيرجى فتح
> [issue](https://github.com/coolstartnow/isms-builder/issues) أو
> [discussion](https://github.com/coolstartnow/isms-builder/discussions) حتى نتمكن من الإبلاغ عنه.

---

> **الحالة: تطوير نشط — ليس منتجًا مكتملًا بعد.**
> الوحدات الأساسية فعّالة وقيد الاستخدام، لكن بعض الميزات غير مكتملة
> والمنصة لا تزال في نمو. المساهمات والملاحظات والاختبار
> في بيئات حقيقية مرحّب بها جدًا — وهذا بالضبط سبب إتاحته كمصدر مفتوح.

---

> 🛡️ **مشروع ذو صلة: [NIS2 Quick-Check](https://github.com/coolstartnow/nis2-quickcheck)** —
> أداة فحص ذاتي مجانية ومستقلة لـ NIS2 (10 مجالات × 5 أسئلة، جميع الدول الأعضاء الـ27 في الاتحاد الأوروبي، جميع اللغات
> الرسمية الـ24 للاتحاد الأوروبي). تعمل بالكامل في المتصفح، بدون خادم خلفي، بدون تثبيت. ليست جزءًا من
> ISMS Builder وليست مطلوبة لاستخدامه — مجرد أداة مرافقة للتوجيه الأولي السريع.

---

## ما هو ISMS Builder؟

ISMS Builder هو **منصة ويب مستضافة ذاتيًا** لإدارة نظام إدارة أمن المعلومات (ISMS).
يغطي دورة الامتثال الكاملة — من صياغة السياسات إلى أدلة التدقيق — لمعايير ISO 27001:2022 وNIS2 وGDPR/DSGVO وBSI IT-Grundschutz وأطر أخرى.

**لا سحابة. لا رسوم SaaS. بياناتك تبقى على خادمك.**

> مصمم للشركات الصغيرة والمتوسطة وفرق تقنية المعلومات والمستشارين الذين يحتاجون أداة ISMS حقيقية دون عقد مورد بخمسة أرقام.

---

## الاستخدام المقصود والنطاق

بدأ هذا المشروع كأداة عمل لممارس واحد في مجال ISMS ونما من هناك. إنه
مفتوح المصدر لأن العمل قد يكون مفيدًا للآخرين — وليس لأنه منتج تجاري
متنكّر. الوضوح في ذلك يساعدك على تحديد ما إذا كان يناسب حالتك.

**ما صُمم من أجله.** فريق ISMS صغير — غالبًا شخص واحد، وأحيانًا حفنة — يقوم
بصياغة وصيانة وثائق نظام إدارة: السياسات والمخاطر والأصول
والضوابط والأدلة. من المتوقع أن يبقى عدد الأشخاص الذين *يحتاجون إلى حساب* صغيرًا.
الوصول إلى جمهور واسع يعمل بدون حسابات: يتم إرسال إقرارات السياسات كروابط
قائمة على الرموز، فيقرأ المستلمون الوثيقة ويؤكدونها دون تسجيل دخول أبدًا،
ودون الظهور في أي قائمة مستخدمين.

**ما يتوقعه منك.** ISMS Builder مستضاف ذاتيًا، وكل ما يترتب على ذلك
مسؤوليتك: النشر، وTLS، والتحصين، والنسخ الاحتياطي، والتحديثات، والتحكم في الوصول، والتزامات
حماية البيانات لكل ما تخزنه فيه. يوفّر المشروع إعدادًا افتراضيًا معقولًا،
وليس خدمة مُدارة.

**ما ليس عليه.** لا يوجد عرض SaaS مستضاف، ولا عقد دعم تجاري، ولا
اتفاقية مستوى خدمة. إنه ليس منتج استضافة متعدد المستأجرين. لا يمنحك
شهادة مقابل أي معيار، وليس نصيحة قانونية — إنه يساعدك على تنظيم العمل وإثباته،
لكن التقييم يبقى مسؤوليتك ومسؤولية مدققك.

**من يصونه.** شخص واحد، إلى جانب وظيفة بدوام كامل. تُقرأ Issues وDiscussions
ويُرد عليها، عادة خلال أيام؛ وتُعطى تقارير الأمان الأولوية. طلبات الميزات مرحّب بها
وتشكّل خارطة الطريق فعليًا، لكنها تتنافس على أمسيات محدودة. إذا كانت مؤسستك تعتمد
على جدول زمني ثابت أو استجابة مضمونة، فإن المورد التجاري هو التوصية الصادقة —
وهذا ليس سببًا لتجنب المشروع، بل سبب للتخطيط بواقعية.

---

## لقطات الشاشة

| تسجيل الدخول | لوحة التحكم |
|---|---|
| ![Login](https://assets.kitploit.com/production/public/readmes/12462/dad90b27558016928f149aa956d5b5ecef78f7639fe00117fa6e7b6b9c610884.png) | ![Dashboard](https://assets.kitploit.com/production/public/readmes/12462/ad427999a2d247f7b486faff089572c213b6bf809d64946438305c1519e54566.png) |

| بيان قابلية التطبيق | إدارة المخاطر |
|---|---|
| ![SoA](https://assets.kitploit.com/production/public/readmes/12462/19133912a32d643c4db93e977047aa6f93cc85889555a63dc29b986f5290d196.png) | ![Risks](https://assets.kitploit.com/production/public/readmes/12462/19133912a32d643c4db93e977047aa6f93cc85889555a63dc29b986f5290d196.png) |

| GDPR وحماية البيانات | إدارة الأصول |
|---|---|
| ![GDPR](https://assets.kitploit.com/production/public/readmes/12462/453b4e84b6c08241d87e8edd96d803a68b5d56565aee2b317444f30db8d9ffb5.png) | ![Assets](https://assets.kitploit.com/production/public/readmes/12462/053332b35c995bc3a672be7bfd193ca3789f3245e7cdffaa456833fabdec309e.png) |

| الإرشادات والتوثيق | التقارير |
|---|---|
| ![Guidance](https://assets.kitploit.com/production/public/readmes/12462/2eb44e0df23e8eba8d70e09a14a18028d1d9dc37e8e734d0c837f2b7fe6ec787.png) | ![Reports](https://assets.kitploit.com/production/public/readmes/12462/765395a2a3cf39ec72a00ad53df464bc79d54a69ca34738bdeb775ff7e1584f3.png) |

> شغّل `npm start` وافتح `https://localhost:3000` لاستكشاف مجموعة البيانات التجريبية الكاملة محليًا.

---

## نظرة عامة على الميزات

| الوحدة | الوصف | المعايير |
|---|---|---|
| **إدارة السياسات** | CRUD للقوالب، الإصدارات، دورة الحياة (مسودة → مراجعة → معتمدة → مؤرشفة)، التسلسل الهرمي للمساحات، المرفقات | ISO 27001 §5 |
| **بيان قابلية التطبيق** | 313 ضابطًا عبر 8 أطر، تحرير مباشر، تحليل الفجوات، الربط المتقاطع | ISO 27001 A / BSI / NIS2 / EUCS / EUAI / ISO 9001 / CRA |
| **إدارة المخاطر** | سجل المخاطر، خطط المعالجة، دور المدقق | ISO 27001 §6.1 |
| **الأهداف الأمنية** | تتبع مؤشرات الأداء الرئيسية مع أشرطة التقدم، تكامل التقويم | ISO 27001 §6.2 |
| **GDPR والخصوصية** | VVT، عقود AV، DSFA، TOMs، قائمة انتظار DSAR، مؤقت 72 ساعة، سجل الحذف مع تنبيهات البريد الإلكتروني | DSGVO Art. 13–35 |
| **إدارة الأصول** | سجل الأصول، أنواع أصول قابلة للتحرير، أهداف الحماية (CIA + الأصالة) مع وراثة التبعيات، مستويات التصنيف، تتبع EoL | ISO 27001 A.5.9–5.12 |
| **BCM / BCP** | تحليل تأثير الأعمال، خطط الاستمرارية، التمارين | ISO 27001 A.5.29–5.30 / NIS2 |
| **سجلات التدريب** | كتالوج التدريب، تتبع الإكمال، رفع الشهادات | ISO 27001 A.6.3 |
| **إدارة الموردين** | سجل الموردين، جدولة التدقيق، تقييم المخاطر | ISO 27001 A.5.19–5.22 |
| **القانون والعقود** | العقود، اتفاقيات عدم الإفصاح، سياسات الخصوصية، تقويم انتهاء الصلاحية | |
| **صندوق الوارد للحوادث** | صندوق وارد CISO + **نموذج إبلاغ عام** (لا يتطلب تسجيل دخول) | NIS2 / BSI |
| **الحوكمة** | مراجعات الإدارة، تتبع الإجراءات | ISO 27001 §9.3 |
| **التقارير** | مصفوفة الامتثال (الضابط × الكيان)، تقرير الفجوات، دورات المراجعة، تصدير CSV | |
| **نتائج التدقيق** | سجل النتائج (IST→SOLL→المخاطر→التوصية)، خطط العمل، تتبع الخطورة/الحالة، مرجع FIND-YYYY-NNNN | ISO 27001 §9.2 |
| **التتبع** | كل سجل يرتبط بضوابط SoA + وثائق السياسات — ثنائي الاتجاه | |
| **البحث الدلالي** | بحث ذكاء اصطناعي محلي عبر Ollama (nomic-embed-text) مع رجوع إلى الكلمات المفتاحية | |
| **متعدد الكيانات** | شجرة الهيكل المؤسسي، قابلية التطبيق لكل كيان للضوابط والسياسات | |
| **واجهة متعددة اللغات وبيانات تجريبية** | واجهة كاملة ومحتوى تجريبي بـ 🇩🇪 DE / 🇬🇧 EN / 🇫🇷 FR / 🇳🇱 NL؛ يتحكم المسؤول في اللغات المتاحة | |

---

### ⚠ مهم: ضوابط ISO تتطلب تثبيتًا يدويًا من المسؤول

> **ISO 27001:2022 وISO 9000:2015 وISO 9001:2015** هي معايير محمية بحقوق النشر تنشرها
> المنظمة الدولية للمعايير (ISO, © ISO). تعريفات الضوابط
> (العناوين والأوصاف ونص المتطلبات) **غير مضمنة** في هذا البرنامج ويجب **عدم**
> إعادة توزيعها دون ترخيص ISO ساري.

**ما يعنيه هذا عمليًا:**
تُشحن وحدات SoA الخاصة بـ ISO 27001 وISO 9000 وISO 9001 بدون محتوى الضوابط.
يجب على المسؤول **استيراد الضوابط يدويًا** قبل أن تصبح هذه الأطر قابلة للاستخدام:

1. احصل على نسخة مرخّصة من المعيار من [iso.org](https://www.iso.org/) أو من هيئة وطنية معتمدة
2. جهّز ملف JSON يحتوي على تعريفات الضوابط الخاصة بك (التنسيق موثّق في `scripts/import-iso-controls.sh`)
3. شغّل سكربت الاستيراد:   ```bash
   bash scripts/import-iso-controls.sh path/to/iso-controls.json
   ```
4. أعد تشغيل خادم ISMS Builder

> **الأطر المضمّنة جاهزة للاستخدام (لا تتطلب ترخيص ISO):**
> BSI IT-Grundschutz، EU NIS2، EUCS، EU AI Act، وCRA تستند إلى تشريعات
> الاتحاد الأوروبي والمنشورات الفيدرالية الألمانية المتاحة للعموم، وهي مثبّتة مسبقًا بالكامل.

تشغيل وحدات إطار عمل ISO دون ترخيص ساري للمعيار المعني هو
مسؤولية المشغّل وحده. لا يتحمل مشروع ISMS Builder والمساهمون فيه أي
مسؤولية عن الاستخدام غير المرخّص للمحتوى المحمي بموجب ISO.

---

## البدء السريع```bash
git clone https://github.com/coolstartnow/isms-builder.git
cd isms-builder
npm install
cp .env.example .env          # set JWT_SECRET to a long random string
npm start                     # http://localhost:3000
```
سجّل الدخول باستخدام **`[email protected]` / `adminpass`**. عند أول تسجيل دخول، سيُطلب منك اختيار **لغة بيانات العرض التوضيحي** (🇩🇪 DE / 🇬🇧 EN / 🇫🇷 FR / 🇳🇱 NL) أو البدء بنظام فارغ. غيّر كلمة مرور المسؤول فورًا بعد ذلك.

للاستخدام في بيئة الإنتاج مع HTTPS:```bash
# .env
JWT_SECRET=your-very-long-random-secret
STORAGE_BACKEND=json
SSL_CERT_FILE=/etc/ssl/certs/your.crt
SSL_KEY_FILE=/etc/ssl/private/your.key
```
**هل تريد الانتقال إلى الإنتاج بعد التقييم ببيانات تجريبية؟** شغّل أداة التحضير للإنتاج التفاعلية بدلاً من البدء من تثبيت جديد — فهي تمسح المحتوى التجريبي/الاختباري وحدةً تلو الأخرى (أو دفعةً واحدة)، بحيث لا تضطر إلى إعادة إدخال أي بيانات حقيقية أدخلتها بالفعل (مثل المخاطر والأصول):```bash
bash stop.sh
node scripts/prepare-production.js
bash start.sh
```
يقوم دائمًا بإنشاء نسخة احتياطية (`data.bak.<timestamp>/`، بجوار دليل `data/` الخاص بك) قبل
تغيير أي شيء، ولا يلمس أبدًا `STORAGE_BACKEND` — على عكس إجراء المسؤول "Demo Reset" داخل التطبيق،
المخصص لنسخة العرض التجريبي والذي لا يزال يتحول إلى `sqlite` لأسباب تاريخية
(انظر [Issue #42](https://github.com/coolstartnow/isms-builder/issues/42)).

---

## Docker

يتم نشر كل إصدار كحزمة GitHub في GitHub Container Registry، لـ
`linux/amd64` و `linux/arm64` — بوسم `:latest` و `:<version>` (مثل `:1.37.5.2`):```bash
docker compose up -d
# App runs at http://localhost:3000
```
أو بدون Compose (`data/` يجب أن يكون bind mount — لا يتم تضمين البيانات أبدًا داخل الصورة):```bash
docker run -d --name isms-builder -p 3000:3000 \
  -e JWT_SECRET="$(openssl rand -hex 32)" \
  -v "$PWD/data:/app/data" \
  ghcr.io/coolstartnow/isms-builder:latest
```
هذا هو الإعداد الافتراضي، حيث يتم تخزين البيانات كملفات JSON عادية في `./data` — دون الحاجة إلى حاوية قاعدة بيانات على الإطلاق. إنه الإعداد الموصى به للفرق الصغيرة وهو ما تستخدمه الأمران أعلاه.

**استخدام PostgreSQL (أو MariaDB) بدلاً من JSON.** تدعم الصورة هذا الإعداد جاهزاً، ولكن — على عكس إعداد JSON أعلاه — فإنها تحتاج إلى حاوية ثانية (قاعدة البيانات الفعلية) بالإضافة إلى مجموعة من متغيرات البيئة التي تخبر التطبيق بكيفية الوصول إليها. إذا قمت بسحب الصورة نفسها فقط (`docker pull ghcr.io/coolstartnow/isms-builder`) دون استنساخ هذا المستودع مطلقاً، فإن أسماء تلك المتغيرات غير مرئية في أي مكان افتراضياً — `docker-compose.yml` و`.env.example`، حيث تم توثيقها، هما ملفان في مستودع Git هذا، وليسا جزءاً من الصورة. يوجد هذا القسم حتى لا تكون تلك المعلومات سراً حصرياً للمستودع.

صورة `isms-builder` نفسها لا تضم أبداً خادم قاعدة بيانات — `postgres:17` (أو `mariadb:11`) هو محرك قاعدة بيانات عام تماماً وفارغ من Docker Hub دون أي معرفة بجداول هذا المشروع. تلك الجداول (المخاطر، الأصول، ضوابط SoA، وما إلى ذلك) يتم إنشاؤها تلقائياً بواسطة التطبيق نفسه في اللحظة التي يبدأ فيها ويجد قاعدة بيانات فارغة — دون استيراد SQL يدوي، ودون خطوة ترحيل منفصلة يجب تشغيلها. راجع "كيف يتم إنشاء مخطط قاعدة البيانات؟" أدناه إذا كنت تريد الآلية الكاملة.

حاويتان، شبكة Docker مشتركة واحدة، ثم يُخبر التطبيق بمكان العثور على قاعدة البيانات:```bash
# 1) An isolated network so the two containers can reach each other by name
docker network create isms-net

# 2) The database — empty until the app first connects and creates its tables
docker run -d --name isms-postgres --network isms-net \
  -e POSTGRES_DB=isms_builder \
  -e POSTGRES_USER=isms \
  -e POSTGRES_PASSWORD="$(openssl rand -hex 16)" \
  -v isms-postgres-data:/var/lib/postgresql/data \
  postgres:17-alpine

# 3) The app, pointed at that database by container name (isms-postgres) via
#    Docker's built-in DNS on the shared network — no host/port juggling needed
docker run -d --name isms-builder --network isms-net -p 3000:3000 \
  -e JWT_SECRET="$(openssl rand -hex 32)" \
  -e STORAGE_BACKEND=postgres \
  -e DB_HOST=isms-postgres \
  -e DB_PORT=5432 \
  -e DB_USER=isms \
  -e DB_PASS="<same password as POSTGRES_PASSWORD above>" \
  -e DB_NAME=isms_builder \
  ghcr.io/coolstartnow/isms-builder:latest
```
ما معنى كل متغير:

| المتغير | الغرض |
|---|---|
| `STORAGE_BACKEND` | `postgres` (أو `pg`) لـ PostgreSQL، و`mariadb` لـ MariaDB/MySQL. اتركه غير محدد (أو `json`) لإعداد JSON الافتراضي. |
| `DB_HOST` | اسم المضيف لحاوية قاعدة البيانات. على شبكة Docker مشتركة، هذا مجرد `--name` الخاص بالحاوية — يحلّه Docker تلقائيًا. |
| `DB_PORT` | `5432` لـ PostgreSQL، و`3306` لـ MariaDB. |
| `DB_USER` / `DB_PASS` / `DB_NAME` | يجب أن تطابق ما قمت بتعيينه على حاوية قاعدة البيانات (`POSTGRES_USER`/`POSTGRES_PASSWORD`/`POSTGRES_DB` أعلاه، أو ما يعادلها في MariaDB). |

بالنسبة لـ MariaDB، استبدل `postgres:17-alpine` بـ `mariadb:11`، واستخدم متغيراتها `MARIADB_DATABASE` /
`MARIADB_USER` / `MARIADB_PASSWORD` في الخطوة 2، و`STORAGE_BACKEND=mariadb` /
`DB_PORT=3306` في الخطوة 3. القائمة الكاملة والمترابطة لكل متغير بيئة يفهمه هذا
المشروع — بما في ذلك تلك غير المغطاة هنا (SSL، وثقة الوكيل العكسي، وSMTP،
و2FA، …) — موجودة في [`.env.example`](https://github.com/coolstartnow/isms-builder/blob/main/.env.example) في هذا المستودع.

يحصل مستخدمو Compose على هذا مجانًا: `docker-compose.yml` يتضمن بالفعل ملفات تعريف خدمة
`mariadb` و`postgres` (معلّقة افتراضيًا، إلى جانب شروحات متغيرات البيئة المكافئة) —
`docker compose --profile postgres up -d` يبدأ كلا الحاويتين متصلتين معًا تلقائيًا،
دون الحاجة إلى شبكات يدوية أو نسخ ولصق كلمات المرور.

**كيف يتم إنشاء مخطط قاعدة البيانات؟** لا تعرف صورة `postgres:17` ولا `mariadb:11`
أي شيء عن هذا المشروع — فهي محركات قواعد بيانات عامة وفارغة مباشرة من
Docker Hub. لا يوجد ملف تفريغ SQL لاستيراده ولا أمر ترحيل منفصل لتشغيله يدويًا.
بدلاً من ذلك، في اللحظة التي تبدأ فيها حاوية `isms-builder` وتتصل بقاعدة بيانات فارغة،
يقوم كود التطبيق الخاص بها (وليس صورة قاعدة البيانات) بإنشاء كل جدول يحتاجه في
الحال — انظر [`server/db/knexDatabase.js`](https://github.com/coolstartnow/isms-builder/blob/main/server/db/knexDatabase.js): قائمة بتعريفات الجداول، يتم
التحقق من كل منها باستخدام `hasTable()` وإنشاؤها باستخدام `createTable()` إذا كانت مفقودة، كل ذلك قبل أن يبدأ التطبيق
في قبول طلبات HTTP. هذا يجعله idempotent — أول بدء يبني المخطط الكامل
من لا شيء، وكل إعادة تشغيل لاحقة على نفس قاعدة البيانات تكون عملية لا تأثير لها بصمت لأن
الجداول موجودة بالفعل. هذه هي نفس الآلية، دون تعديل، التي تم التحقق منها مباشرةً مقابل
SQLite وMariaDB 11 وPostgreSQL 17 (انظر [#70](https://github.com/coolstartnow/isms-builder/issues/70)).

للبناء من المصدر بدلاً من ذلك، أزل التعليق عن كتلة `build:` في `docker-compose.yml` وشغّل
`docker compose up -d --build`.

تحمل الصور إثباتًا موقّعًا لأصل البناء:```bash
gh attestation verify oci://ghcr.io/coolstartnow/isms-builder:latest --owner coolstartnow
```
---

## المتطلبات

- **Node.js 18+** (تم الاختبار على: 18، 20، 22)
- npm 9+
- (اختياري) Docker + Docker Compose
- (اختياري) [Ollama](https://ollama.ai) للبحث الدلالي بالذكاء الاصطناعي المحلي

---

## الإعدادات (`.env`)

| المتغير | القيمة الافتراضية | الوصف |
|---|---|---|
| `JWT_SECRET` | *(مطلوب)* | سر توقيع JWT — استخدم 32+ حرفًا عشوائيًا |
| `PORT` | `3000` | منفذ استماع HTTP/HTTPS |
| `STORAGE_BACKEND` | `json` | `json` (تطوير/عرض توضيحي) أو `sqlite` (إنتاج) |
| `SSL_CERT_FILE` | — | مسار شهادة TLS ← يفعّل HTTPS |
| `SSL_KEY_FILE` | — | مسار المفتاح الخاص لـ TLS |
| `DATA_DIR` | `./data` | تجاوز دليل البيانات (وحدات تخزين Docker) |
| `SMTP_HOST` | — | خادم SMTP لتنبيهات البريد الإلكتروني |
| `SMTP_PORT` | `587` | منفذ SMTP |
| `SMTP_USER` | — | اسم مستخدم SMTP |
| `SMTP_PASS` | — | كلمة مرور SMTP |
| `SMTP_FROM` | — | عنوان المرسل للإشعارات |

---

## البنية```
server/
  index.js          — Express app setup, router mounts
  auth.js           — JWT auth, RBAC ranks, session
  routes/           — 17 Express route modules (one per domain)
  db/               — Data stores (jsonStore / sqliteStore / orgSettingsStore / …)
  ai/               — Semantic search (embedder, embeddingStore, lexicalSearch)
  reports.js        — Report generation logic
ui/
  index.html        — SPA shell (Atlassian Dark Theme)
  app.js            — All render functions, ~6000 lines vanilla JS
  style.css         — CSS variables, dark theme
data/               — JSON files / SQLite DB (gitignored)
docs/
  ISMS-build-documentation.md  — Full architecture reference
  architecture/                — C4 diagrams, data model, OpenAPI 3.0.3 spec
tests/              — Jest + Supertest (176 tests, --runInBand)
```
- **المصادقة:** ملف تعريف ارتباط JWT (`sm_session`)، كلمات مرور bcrypt، مصادقة ثنائية TOTP (قابلة للفرض على مستوى المؤسسة)
- **التحكم في الوصول القائم على الأدوار (RBAC):** `reader` → `editor` / `dept_head` → `contentowner` / `auditor` → `admin`
- **التخزين الدائم:** ملفات JSON (افتراضي/تجريبي) أو SQLite عبر `better-sqlite3`
- **الذكاء الاصطناعي:** Ollama محلي اختياري (nomic-embed-text)؛ البحث بالكلمات المفتاحية متاح دائمًا كخيار احتياطي
- **سجل التدقيق:** يتم تسجيل كل إجراء إنشاء/تحديث/حذف/تسجيل دخول، مع إمكانية التصفية والتصدير

راجع [`docs/architecture/`](https://github.com/coolstartnow/isms-builder/blob/main/docs/architecture) للحصول على مخططات C4، ونموذج البيانات الكامل، ومواصفات OpenAPI 3.0.3 (أكثر من 80 نقطة نهاية).

---

## تشغيل الاختبارات

> **ملاحظة:** مجموعة الاختبارات الموجودة تحت `tests/` هي اختبارات التطوير الشخصية للمؤلف ويتم
> شحنها مع المشروع من أجل الشفافية. وهي **ليست** جزءًا من التطبيق نفسه
> و**ليست مطلوبة** لتشغيل التطبيق. تغطي الاختبارات سلوك واجهة برمجة التطبيقات الداخلية وتستخدم
> بيانات اعتماد اختبارية مضمّنة موجودة فقط في بيئة الاختبار المعزولة — ولا علاقة لها
> بأي بيانات إنتاجية أو تجريبية.```bash
npm test                  # runs all 423 tests
npm run preflight         # exactly what CI gates on (tests + pinning + audit)
npm test -- --verbose     # with test names
```
تُجرى الاختبارات في دليل مؤقت معزول — لا تُمس أي بيانات إنتاجية.

---

## المساهمة

المساهمات مرحّب بها للغاية! راجع [CONTRIBUTING.md](https://github.com/coolstartnow/isms-builder/blob/main/CONTRIBUTING.md) للاطلاع على:

- إعداد بيئة التطوير (5 دقائق حتى أول تشغيل للاختبارات)
- أسلوب الكود والاصطلاحات المتبعة
- كيفية فتح issue أو PR جيد

**هل وجدت مشكلة أمنية؟** يُرجى عدم فتح issue عام — استخدم
[الإبلاغ الخاص عن الثغرات](https://github.com/coolstartnow/isms-builder/security/advisories/new).
يصف [SECURITY.md](https://github.com/coolstartnow/isms-builder/blob/main/SECURITY.md) النطاق، والملاذ الآمن، وما يمكن توقعه بشكل واقعي.

**الـ issues المناسبة للمبتدئين** موسومة بـ [`good first issue`](https://github.com/coolstartnow/isms-builder/issues?q=label%3A%22good+first+issue%22) في متتبع الـ issues.

---

## خارطة الطريق

| الحالة | الميزة |
|---|---|
| ✅ منجز | البحث الدلالي (Ollama / nomic-embed-text) |
| ✅ منجز | خلفية SQLite، Docker، CI/CD |
| ✅ منجز | تنبيهات بريدية لسجل حذف GDPR |
| ✅ منجز | حزم عرض متعددة اللغات (DE / EN / FR / NL) |
| ✅ منجز | وحدة نتائج التدقيق مع خطط العمل (V 1.37.2.0) |
| ✅ منجز | ترجمات الإرشادات FR/NL + إعداد لغة المسؤول (V 1.37.2.0) |
| ✅ منجز | خلفية MariaDB/MySQL (`STORAGE_BACKEND=mariadb`، V 1.37.2.1) |
| ✅ منجز | الماسح → مسودة مخاطر (استيراد Greenbone/OpenVAS XML + PDF، V 1.37.2.0) |
| ✅ منجز | إقرار السياسات — يؤكد الموظفون السياسات رقميًا مع سجل تدقيق (V 1.37.2.0) |
| ✅ منجز | إدارة الإرشادات CRUD — إنشاء وتحرير ورفع الوثائق الخاصة (V 1.37.2.0) |
| ✅ منجز | البحث في الإرشادات — بحث نصي كامل عبر الفئات مع مقتطف (V 1.37.2.0) |
| ✅ منجز | أهداف حماية الأصول — CIA + الأصالة (1–4)، والتبعيات ووراثة مبدأ الحد الأقصى BSI (V 1.37.2.0) |
| ✅ منجز | قائمة حوكمة NIS2 المادة 21 (30 بندًا) ومواعيد الإبلاغ في المادة 23 مع تنبيهات تلقائية (V 1.37.2.0) |
| ✅ منجز | خلفية PostgreSQL (`STORAGE_BACKEND=pg`) — نفس طبقة تخزين Knex المستخدمة مع MariaDB، تم التحقق منها مقابل نسخة PostgreSQL 17 حقيقية بما في ذلك مسار `docker compose` الكامل (V 1.37.5) |
| ✅ منجز | تكامل ownCloud / Nextcloud — نشر السياسات المعتمدة تلقائيًا كملفات PDF عبر WebDAV، مع إمكانية إظهار المفضلة/الرابط العام اختياريًا، تم التحقق منها مباشرة مقابل نسخة NextcloudPi حقيقية (#66، V 1.37.5.1) |
| ✅ منجز | نشر صورة Docker إلى GitHub Container Registry بعد كل إصدار (`ghcr.io/coolstartnow/isms-builder`، `linux/amd64` + `linux/arm64`، مع إثبات بناء موقّع) — مساهمة من @bucherfa (#71، V 1.40.0). تجربة جهد صيانة: ستُلغى مجددًا إذا تبين أنها تتطلب صيانة أكثر من المتوقع. |
| 🔜 التالي | مساعد السياسات بالذكاء الاصطناعي — يصوغ Ollama محتوى السياسة من العنوان + الإطار |
| 🔜 التالي | التقارير المجدولة — تقرير امتثال أسبوعي/شهري يُرسل بالبريد الإلكتروني |
| 🔜 التالي | كشف الشذوذ في سجل التدقيق (دفعة LLM) |
| 🚀 لاحقًا | تقييم المخاطر الكمي (قيم باليورو، مستوحى من FAIR) |
| 🚀 لاحقًا | بوابة تعاون المدققين — وصول خارجي للقراءة فقط للمدققين |
| 🚀 لاحقًا | تحليل فجوات السياسات (LLM) |
| 🏁 V 2.x | فئات إرشادات قابلة للتكوين — يعرّف المسؤولون فئات مخصصة (مثل سير العمل، وثائق المؤسسة) |

---

## عن المؤلف

**Claude Hecker** يعمل في مجال تقنية المعلومات منذ أكثر من 35 عامًا. بعد نحو 15 عامًا كمدير تنفيذي لتقنية المعلومات (CIO)، انتقل إلى أدوار مدير أمن المعلومات (CISO) ومسؤول حماية البيانات (DSO/DSB). خلال مسيرته المهنية، صمّم ونفّذ بنية تحتية لتقنية المعلومات على مستوى المؤسسة واتصال شبكات واسع النطاق (VPN، MPLS) لشركة أوروبية كبرى — مسؤولًا عن عمليات موثوقة وآمنة عبر مواقع واختصاصات قضائية متعددة.

نشأ ISMS Builder مباشرة من تلك الخبرة: بناء وصيانة نظام إدارة أمن المعلومات (ISMS) متوافق في العالم الحقيقي، عبر تدقيقات حقيقية، وتحت ضغط تنظيمي حقيقي. تعكس الأداة ما يحتاجه الممارسون فعليًا — لا ما يعتقد مدير المنتج أنهم يحتاجونه.

**لماذا المصدر المفتوح؟**
تستحق الشركات الصغيرة والمتوسطة الوصول إلى منصة ISMS مناسبة دون رسوم ترخيص من خمسة أرقام. جهد التهيئة حقيقي بغض النظر عن الأداة التي تختارها — لكن تلك التكلفة لا ينبغي أن تتضاعف بسبب الارتباط بالمورّد أو خروج البيانات من بنيتك التحتية. يقف هذا المشروع من أجل حرية البرمجيات ومبدأ أن بيانات الامتثال الخاصة بك ملك لك.

---

## إشعار مرجعي بالمعايير

يشير هذا البرنامج إلى معرّفات الضوابط والعناوين المختصرة من المعايير المنشورة لأغراض التشغيل البيني وإدارة الامتثال فقط.

- **ISO/IEC 27001، ISO 9000، ISO 9001** هي معايير تنشرها
  المنظمة الدولية للمعايير (ISO). تعريفات الضوابط
  لهذه المعايير **غير مضمنة** في توزيع هذا البرنامج —
  فحقوق نشر ISO لا تسمح بإعادة توزيع نص الضوابط. يجب على المستخدمين
  توفير ملف JSON الخاص بهم (راجع القسم أعلاه و`scripts/import-iso-controls.sh`).
  يجب الحصول على المعايير من [ISO](https://www.iso.org/) أو
  موزّع وطني معتمد.
- مواد **BSI IT-Grundschutz** ينشرها المكتب الاتحادي الألماني
  لأمن المعلومات (BSI) وهي متاحة مجانًا على
  [bsi.bund.de](https://www.bsi.bund.de).
- **NIS2، CRA، EUCS، EU AI Act** هي قوانين تشريعية للاتحاد الأوروبي وهي متاحة
  للعموم عبر [eur-lex.europa.eu](https://eur-lex.europa.eu).

---

## الترخيص

حقوق النشر (C) 2026 Claude Hecker

هذا البرنامج برمجية حرة مرخّصة بموجب
[رخصة GNU Affero العامة v3.0](https://github.com/coolstartnow/isms-builder/blob/main/LICENSE).

إذا شغّلت نسخة معدّلة كخدمة شبكية، فيجب عليك إتاحة
الكود المصدري الكامل لمستخدمي تلك الخدمة (AGPL §13).

يتضمن هذا المشروع مكونات طرف ثالث بموجب رخص MIT وBSD-2-Clause و
Apache-2.0. راجع [THIRD-PARTY-LICENSES.md](https://github.com/coolstartnow/isms-builder/blob/main/THIRD-PARTY-LICENSES.md)
للاطلاع على الإسناد الكامل ونصوص الرخص.
تنزيل الأداة