العودة إلى التحديثات
New releaseJul 27, 2026

isms-builder v1.37.1

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

مشاركة

لافتة ISMS Builder

ISMS Builder

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

CI Tests License: AGPL-3.0 Node.js Version

📖 الويكي — استخدام صورة Docker والمتغيرات البيئية، البنية والوحدات، الأسئلة الشائعة، المساهمة (DE/EN)


⚠️ تحذير أمني: مستودعات ونسخ مزيفة توزع برمجيات خبيثة

لا يحتوي ISMS Builder على "إصدارات" معبأة، أو مثبّتات، أو ملفات ZIP قابلة للتنزيل — المصدر الشرعي الوحيد هو هذا المستودع، المستنسخ أو المُنزَّل مباشرة من GitHub ككود مصدري عادي. نحن على علم بوجود مستودع خبيث واحد على الأقل ينتحل صفة هذا المشروع (README مزيف، زر "تنزيل" مزيف يربط بملف ZIP متنكر كصورة لقطة شاشة، يحتوي على محمّل برمجيات خبيثة لنظام Windows — سلسلة حمولة .cmd.exe ← Lua-DLL). لا تقم بتنزيل أو تشغيل أي ملف ZIP/مثبّت/exe باسم "isms_builder" من أي مكان غير هذا المستودع. إذا وجدت مستودعًا أو موقعًا مشبوهًا ينتحل صفة هذا المشروع، يرجى فتح issue أو discussion حتى نتمكن من الإبلاغ عنه.


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


🛡️ مشروع ذو صلة: NIS2 Quick-Check — أداة فحص ذاتي مجانية ومستقلة لـ 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 مستضاف، ولا عقد دعم تجاري، ولا اتفاقية مستوى خدمة. ليس منتج استضافة متعدد المستأجرين. لا يمنحك شهادة ضد أي معيار، وليس نصيحة قانونية — يساعدك في تنظيم العمل وتوثيقه، لكن التقييم يبقى مسؤوليتك ومسؤولية مدققك.

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


لقطات الشاشة

تسجيل الدخوللوحة التحكم
تسجيل الدخوللوحة التحكم
بيان قابلية التطبيقإدارة المخاطر
SoAالمخاطر
GDPR وحماية البياناتإدارة الأصول
GDPRالأصول
الإرشادات والتوثيقالتقارير
الإرشاداتالتقارير

شغّل 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 + الأصالة) مع وراثة التبعيات، مستويات التصنيف، تتبع نهاية العمر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→Risk→Recommendation)، خطط العمل، تتبع الخطورة/الحالة، مرجع FIND-YYYY-NNNNISO 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 أو هيئة وطنية معتمدة
  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` — على عكس إجراء "إعادة تعيين العرض التوضيحي" في
الإدارة داخل التطبيق، المخصص لمثيل العرض التوضيحي والذي لا يزال يتحول إلى `sqlite` لأسباب تاريخية
(انظر [Issue #42](https://github.com/coolstartnow/isms-builder/issues/42)).

---

## Docker

يتم نشر كل إصدار كحزمة GitHub في سجل حاويات GitHub، لـ
`linux/amd64` و `linux/arm64` — موسومة بـ `:latest` و `:<version>` (مثل `:1.37.5.2`):```bash
docker compose up -d
# App runs at http://localhost:3000

أو بدون Compose (يجب أن يكون data/ نقطة ربط bind — البيانات لا تُدمج أبدًا داخل الصورة):```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_BACKENDpostgres (أو pg) لـ PostgreSQL، mariadb لـ MariaDB/MySQL. اتركه غير مضبوط (أو json) للإعداد الافتراضي JSON.
DB_HOSTاسم مضيف حاوية قاعدة البيانات. على شبكة Docker مشتركة، هذا هو فقط --name الخاص بالحاوية — يقوم Docker بحله تلقائيًا.
DB_PORT5432 لـ 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 في هذا المستودع.

مستخدمو 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: قائمة بتعريفات الجداول، كل منها يتم فحصه باستخدام hasTable() وإنشاؤه باستخدام createTable() إذا كان مفقودًا، كل ذلك قبل أن يبدأ التطبيق في قبول طلبات HTTP. وهذا يجعله غير قابل للتغيير — أول تشغيل يبني المخطط الكامل من لا شيء، وكل إعادة تشغيل لاحقة ضد نفس قاعدة البيانات تكون عملية صامتة بلا تأثير لأن الجداول موجودة بالفعل. هذه هي نفس الآلية، دون تعديل، التي تم التحقق منها مباشرة ضد SQLite وMariaDB 11 وPostgreSQL 17 (انظر #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 cookie (sm_session)، كلمات مرور bcrypt، TOTP 2FA (قابلة للفرض على مستوى المؤسسة)
  • RBAC: readereditor / dept_headcontentowner / auditoradmin
  • التخزين: ملفات JSON (افتراضي/تجريبي) أو SQLite عبر better-sqlite3
  • الذكاء الاصطناعي: Ollama محلي اختياري (nomic-embed-text)؛ البحث بالكلمات المفتاحية متاح دائمًا كبديل
  • سجل التدقيق: كل عملية إنشاء/تحديث/حذف/تسجيل دخول تُسجَّل، قابلة للتصفية والتصدير

راجع 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) النطاق، والحماية القانونية، وما يمكن توقعه بشكل واقعي.

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

---

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

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

---

## الترخيص

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

هذا البرنامج برنامج حر مرخّص بموجب
[رخصة GNU Affero العامة الإصدار 3.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)
للحصول على الإسناد الكامل ونصوص التراخيص.

الفئات