
isms-builder v1.37.1
स्व-होस्टेड सूचना सुरक्षा प्रबंधन प्रणाली — ISO 27001, NIS2, GDPR/DSGVO, BSI IT-Grundschutz

ISMS Builder
स्व-होस्टेड सूचना सुरक्षा प्रबंधन प्रणाली — ओपन सोर्स, क्लाउड की आवश्यकता नहीं
📖 विकी — Docker-इमेज उपयोग और पर्यावरण चर, आर्किटेक्चर और मॉड्यूल, FAQ, योगदान (DE/EN)
⚠️ सुरक्षा चेतावनी: नकली रिपॉजिटरी और मैलवेयर वितरित करने वाली प्रतियां
ISMS Builder के पास कोई पैकेज्ड "रिलीज़", इंस्टॉलर, या डाउनलोड करने योग्य ZIP फ़ाइलें नहीं हैं — एकमात्र वैध स्रोत यह रिपॉजिटरी है, जिसे GitHub से सीधे सादे स्रोत कोड के रूप में क्लोन या डाउनलोड किया जाता है। हमें कम से कम एक दुर्भावनापूर्ण रिपॉजिटरी के बारे में पता है जो इस प्रोजेक्ट का रूप धारण करती है (नकली README, नकली "डाउनलोड" बटन जो स्क्रीनशॉट के रूप में छिपे ZIP से लिंक करता है, जिसमें Windows मैलवेयर लोडर होता है —
.cmd→.exe→ Lua-DLL पेलोड श्रृंखला)। इस रिपॉजिटरी के अलावा कहीं से भी कोई "isms_builder" ZIP/इंस्टॉलर/exe डाउनलोड या चलाएं नहीं। यदि आपको इस प्रोजेक्ट का रूप धारण करने वाली कोई संदिग्ध रिपॉजिटरी या साइट मिलती है, तो कृपया एक issue या एक discussion खोलें ताकि हम इसे चिह्नित कर सकें।
स्थिति: सक्रिय विकास — अभी तक एक पूर्ण उत्पाद नहीं। मुख्य मॉड्यूल कार्यात्मक और उपयोग में हैं, लेकिन कुछ सुविधाएँ अधूरी हैं और प्लेटफ़ॉर्म अभी भी बढ़ रहा है। योगदान, प्रतिक्रिया और वास्तविक दुनिया परीक्षण का बहुत स्वागत है — यही कारण है कि इसे ओपन-सोर्स किया गया था।
🛡️ संबंधित प्रोजेक्ट: NIS2 Quick-Check — एक मुफ्त, स्टैंडअलोन NIS2 स्व-जांच (10 डोमेन × 5 प्रश्न, सभी 27 EU सदस्य राज्य, सभी 24 EU आधिकारिक भाषाएँ)। पूरी तरह से ब्राउज़र में चलता है, कोई बैकएंड नहीं, कोई इंस्टॉल नहीं। ISMS Builder का हिस्सा नहीं है और इसका उपयोग करने के लिए आवश्यक नहीं है — बस त्वरित पहले अभिविन्यास के लिए एक साथी उपकरण है।
ISMS Builder क्या है?
ISMS Builder एक स्व-होस्टेड वेब प्लेटफ़ॉर्म है जो सूचना सुरक्षा प्रबंधन प्रणाली (ISMS) के प्रबंधन के लिए है। यह पूर्ण अनुपालन जीवनचक्र को कवर करता है — नीति लेखन से लेकर ऑडिट साक्ष्य तक — ISO 27001:2022, NIS2, GDPR/DSGVO, BSI IT-Grundschutz और अन्य फ्रेमवर्क के लिए।
कोई क्लाउड नहीं। कोई SaaS शुल्क नहीं। आपका डेटा आपके सर्वर पर रहता है।
SMEs, IT टीमों और सलाहकारों के लिए डिज़ाइन किया गया है जिन्हें पांच-अंकीय विक्रेता अनुबंध के बिना एक वास्तविक ISMS उपकरण की आवश्यकता है।
इच्छित उपयोग और दायरा
यह प्रोजेक्ट एक एकल ISMS व्यवसायी के लिए एक कार्यशील उपकरण के रूप में शुरू हुआ और वहाँ से विकसित हुआ। यह ओपन सोर्स है क्योंकि यह काम दूसरों के लिए उपयोगी हो सकता है — इसलिए नहीं कि यह छिपा हुआ एक वाणिज्यिक उत्पाद है। इसके बारे में स्पष्ट होना आपको यह तय करने में मदद करता है कि यह आपकी स्थिति के लिए उपयुक्त है या नहीं।
यह किसके लिए बनाया गया है। एक छोटी ISMS टीम — अक्सर एक व्यक्ति, कभी-कभी मुट्ठी भर लोग — जो एक प्रबंधन प्रणाली के दस्तावेज़ीकरण का लेखन और रखरखाव करती है: नीतियाँ, जोखिम, संपत्तियाँ, नियंत्रण, साक्ष्य। जिन लोगों को खाते की आवश्यकता है उनकी संख्या छोटी रहने की उम्मीद है। बड़े दर्शकों तक पहुँचना खातों के बिना काम करता है: नीति स्वीकृतियाँ टोकन-आधारित लिंक के रूप में भेजी जाती हैं, इसलिए प्राप्तकर्ता बिना लॉग इन किए एक दस्तावेज़ पढ़ते और पुष्टि करते हैं, और बिना किसी उपयोगकर्ता सूची में दिखाई दिए।
यह आपसे क्या अपेक्षा करता है। ISMS Builder स्व-होस्टेड है, और इससे जुड़ी हर चीज़ आपकी है: परिनियोजन, TLS, हार्डनिंग, बैकअप, अपडेट, एक्सेस नियंत्रण, और डेटा सुरक्षा दायित्व जो आप इसमें संग्रहीत करते हैं। प्रोजेक्ट एक उचित डिफ़ॉल्ट कॉन्फ़िगरेशन भेजता है, कोई प्रबंधित सेवा नहीं।
यह क्या नहीं है। कोई होस्टेड SaaS पेशकश नहीं है, कोई वाणिज्यिक समर्थन अनुबंध नहीं है, और कोई सेवा-स्तर समझौता नहीं है। यह एक मल्टी-टेनेंट होस्टिंग उत्पाद नहीं है। यह आपको किसी भी मानक के विरुद्ध प्रमाणित नहीं करता है, और यह कानूनी सलाह नहीं है — यह आपको काम को व्यवस्थित करने और साक्ष्य देने में मदद करता है, लेकिन मूल्यांकन आपका और आपके ऑडिटर का रहता है।
इसे कौन बनाए रखता है। एक व्यक्ति, पूर्णकालिक नौकरी के साथ। Issues और चर्चाएँ पढ़ी और उत्तर दी जाती हैं, आमतौर पर दिनों के भीतर; सुरक्षा रिपोर्ट को प्राथमिकता दी जाती है। फीचर अनुरोधों का स्वागत है और वास्तव में रोडमैप को आकार देते हैं, लेकिन वे सीमित शामों के लिए प्रतिस्पर्धा करते हैं। यदि आपका संगठन एक निश्चित समयरेखा या गारंटीकृत प्रतिक्रिया पर निर्भर करता है, तो एक वाणिज्यिक विक्रेता ईमानदार अनुशंसा है — और यह प्रोजेक्ट से बचने का कारण नहीं है, केवल यथार्थवादी योजना बनाने का एक कारण है।
स्क्रीनशॉट
| लॉगिन | डैशबोर्ड |
|---|---|
![]() | ![]() |
| प्रयोज्यता का विवरण | जोखिम प्रबंधन |
|---|---|
![]() | ![]() |
| GDPR और डेटा संरक्षण | संपत्ति प्रबंधन |
|---|---|
![]() | ![]() |
| मार्गदर्शन और दस्तावेज़ीकरण | रिपोर्ट |
|---|---|
![]() | ![]() |
पूर्ण डेमो डेटासेट को स्थानीय रूप से देखने के लिए
npm startचलाएँ औरhttps://localhost:3000खोलें।
फीचर अवलोकन
| मॉड्यूल | विवरण | मानक |
|---|---|---|
| नीति प्रबंधन | टेम्पलेट CRUD, संस्करणीकरण, जीवनचक्र (ड्राफ्ट → समीक्षा → अनुमोदित → संग्रहीत), स्पेस पदानुक्रम, अनुलग्नक | ISO 27001 §5 |
| प्रयोज्यता का विवरण | 8 फ्रेमवर्क में 313 नियंत्रण, इनलाइन संपादन, अंतर विश्लेषण, क्रॉस-मैपिंग | ISO 27001 A / BSI / NIS2 / EUCS / EUAI / ISO 9001 / CRA |
| जोखिम प्रबंधन | जोखिम रजिस्टर, उपचार योजनाएँ, ऑडिटर भूमिका | ISO 27001 §6.1 |
| सुरक्षा लक्ष्य | प्रगति बार के साथ KPI ट्रैकिंग, कैलेंडर एकीकरण | ISO 27001 §6.2 |
| GDPR और गोपनीयता | VVT, AV-अनुबंध, DSFA, TOMs, DSAR कतार, 72h-टाइमर, ईमेल अलर्ट के साथ विलोपन लॉग | 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 |
| कानूनी और अनुबंध | अनुबंध, NDA, गोपनीयता नीतियाँ, समाप्ति कैलेंडर | |
| घटना इनबॉक्स | CISO इनबॉक्स + सार्वजनिक रिपोर्टिंग फॉर्म (लॉगिन की आवश्यकता नहीं) | NIS2 / BSI |
| शासन | प्रबंधन समीक्षाएँ, कार्रवाई ट्रैकिंग | ISO 27001 §9.3 |
| रिपोर्ट | अनुपालन मैट्रिक्स (नियंत्रण × इकाई), अंतर रिपोर्ट, समीक्षा चक्र, CSV निर्यात | |
| ऑडिट निष्कर्ष | निष्कर्ष रजिस्टर (IST→SOLL→जोखिम→अनुशंसा), कार्रवाई योजनाएँ, गंभीरता/स्थिति ट्रैकिंग, FIND-YYYY-NNNN संदर्भ | ISO 27001 §9.2 |
| पता लगाने की क्षमता | हर रिकॉर्ड SoA नियंत्रणों और नीति दस्तावेज़ों से जुड़ता है — द्विदिशात्मक | |
| सिमेंटिक खोज | कीवर्ड फ़ॉलबैक के साथ Ollama (nomic-embed-text) के माध्यम से स्थानीय AI खोज | |
| मल्टी-एंटिटी | कॉर्पोरेट संरचना वृक्ष, नियंत्रणों और नीतियों के लिए प्रति-इकाई प्रयोज्यता | |
| बहुभाषी UI और डेमो डेटा | 🇩🇪 DE / 🇬🇧 EN / 🇫🇷 FR / 🇳🇱 NL में पूर्ण UI और डेमो सामग्री; एडमिन उपलब्ध भाषाओं को नियंत्रित करता है |
⚠ महत्वपूर्ण: ISO नियंत्रणों के लिए एडमिनिस्ट्रेटर द्वारा मैन्युअल इंस्टॉलेशन आवश्यक है
ISO 27001:2022, ISO 9000:2015, और ISO 9001:2015 कॉपीराइट-संरक्षित मानक हैं जो इंटरनेशनल ऑर्गनाइज़ेशन फॉर स्टैंडर्डाइज़ेशन (ISO, © ISO) द्वारा प्रकाशित हैं। नियंत्रण परिभाषाएँ (शीर्षक, विवरण, आवश्यकता पाठ) इस सॉफ़्टवेयर में शामिल नहीं हैं और एक वैध ISO लाइसेंस के बिना पुनर्वितरित नहीं की जानी चाहिए।
व्यवहार में इसका क्या अर्थ है: ISO 27001, ISO 9000, और ISO 9001 के लिए SoA मॉड्यूल नियंत्रण सामग्री के बिना आते हैं। इन फ्रेमवर्क के उपयोग योग्य होने से पहले एडमिनिस्ट्रेटर को मैन्युअल रूप से नियंत्रण आयात करना चाहिए:
- iso.org या एक अधिकृत राष्ट्रीय निकाय से मानक की एक लाइसेंस प्राप्त प्रति प्राप्त करें
- अपने नियंत्रण परिभाषाओं के साथ एक JSON फ़ाइल तैयार करें (प्रारूप
scripts/import-iso-controls.shमें प्रलेखित है) - आयात स्क्रिप्ट चलाएँ: ```bash
bash scripts/import-iso-controls.sh path/to/iso-controls.json
- ISMS Builder सर्वर को पुनः प्रारंभ करें
बॉक्स से बाहर शामिल फ्रेमवर्क (कोई ISO लाइसेंस आवश्यक नहीं): BSI IT-Grundschutz, EU NIS2, EUCS, EU AI Act, और CRA सार्वजनिक रूप से उपलब्ध EU विधान और जर्मन संघीय प्रकाशनों पर आधारित हैं और पूरी तरह से पहले से इंस्टॉल हैं।
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 Container Registry में एक GitHub Package के रूप में प्रकाशित होती है, `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 होना चाहिए — डेटा कभी भी image में baked नहीं होता):```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
यह डिफ़ॉल्ट विकल्प है, जो डेटा को `./data` में सादे JSON फ़ाइलों के रूप में संग्रहीत करता है — किसी डेटाबेस कंटेनर की आवश्यकता नहीं है
बिल्कुल भी। यह छोटी टीमों के लिए अनुशंसित सेटअप है और यही वह है जो ऊपर दिए गए दो कमांड उपयोग करते हैं।
**JSON के बजाय PostgreSQL (या MariaDB) का उपयोग करना।** इमेज इसका समर्थन आउट ऑफ द बॉक्स करती है, लेकिन —
ऊपर दिए गए 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 | PostgreSQL के लिए postgres (या pg), MariaDB/MySQL के लिए mariadb। डिफ़ॉल्ट JSON सेटअप के लिए इसे अनसेट (या json) छोड़ दें। |
DB_HOST | डेटाबेस कंटेनर का होस्टनाम। साझा Docker नेटवर्क पर, यह केवल कंटेनर का --name होता है — Docker इसे स्वचालित रूप से हल करता है। |
DB_PORT | PostgreSQL के लिए 5432, MariaDB के लिए 3306। |
DB_USER / DB_PASS / DB_NAME | डेटाबेस कंटेनर पर आपके द्वारा सेट किए गए मानों से मेल खाना चाहिए (ऊपर POSTGRES_USER/POSTGRES_PASSWORD/POSTGRES_DB, या MariaDB के समकक्ष)। |
MariaDB के लिए, postgres:17-alpine को mariadb:11 से बदलें, चरण 2 में इसके MARIADB_DATABASE /
MARIADB_USER / MARIADB_PASSWORD वेरिएबल का उपयोग करें, और चरण 3 में STORAGE_BACKEND=mariadb /
DB_PORT=3306 का उपयोग करें। इस प्रोजेक्ट द्वारा समझे जाने वाले हर पर्यावरण वेरिएबल की पूरी, क्रॉस-रेफ़रेंस्ड सूची — जिसमें यहाँ कवर न किए गए वेरिएबल (SSL, रिवर्स-प्रॉक्सी ट्रस्ट, SMTP,
2FA, …) भी शामिल हैं — इस रिपॉज़िटरी में .env.example में मौजूद है।
Compose उपयोगकर्ताओं को यह मुफ़्त में मिलता है: docker-compose.yml पहले से ही mariadb और postgres
सर्विस प्रोफ़ाइल के साथ आता है (डिफ़ॉल्ट रूप से कमेंट किया गया, समकक्ष env-var स्पष्टीकरण के साथ) —
docker compose --profile postgres up -d दोनों कंटेनरों को स्वचालित रूप से एक साथ जोड़कर शुरू करता है,
किसी मैन्युअल नेटवर्किंग या पासवर्ड कॉपी-पेस्ट करने की आवश्यकता नहीं होती।
डेटाबेस स्कीमा कैसे बनाई जाती है? न तो postgres:17 और न ही mariadb:11
इमेज इस प्रोजेक्ट के बारे में कुछ जानती हैं — वे Docker Hub से सीधे आने वाले सामान्य, खाली डेटाबेस इंजन हैं।
आयात करने के लिए कोई SQL डंप फ़ाइल नहीं है और न ही हाथ से चलाने के लिए कोई अलग माइग्रेशन कमांड है।
इसके बजाय, जिस क्षण isms-builder कंटेनर शुरू होता है और एक खाली डेटाबेस से जुड़ता है, उसका
अपना एप्लिकेशन कोड (डेटाबेस इमेज नहीं) मौके पर ही उसे आवश्यक हर टेबल बना देता है —
server/db/knexDatabase.js देखें: टेबल परिभाषाओं की एक सूची, जिनमें से प्रत्येक को
hasTable() से जाँचा जाता है और यदि अनुपस्थित हो तो createTable() से बनाया जाता है, यह सब ऐप HTTP
अनुरोध स्वीकार करना शुरू करने से पहले होता है। यह इसे idempotent बनाता है — पहला स्टार्ट पूरी स्कीमा को
शून्य से बनाता है, और उसी डेटाबेस के खिलाफ हर बाद का रीस्टार्ट एक मौन no-op होता है क्योंकि
टेबल पहले से मौजूद होती हैं। यह वही तंत्र है, बिना किसी संशोधन के, जिसे SQLite, MariaDB 11, और PostgreSQL 17 के खिलाफ लाइव-सत्यापित किया गया था (#70 देखें)।
इसके बजाय स्रोत से बनाने के लिए, docker-compose.yml में build: ब्लॉक को अनकमेंट करें और
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
- (वैकल्पिक) स्थानीय AI सिमेंटिक खोज के लिए [Ollama](https://ollama.ai)
---
## कॉन्फ़िगरेशन (`.env`)
| वेरिएबल | डिफ़ॉल्ट | विवरण |
|---|---|---|
| `JWT_SECRET` | *(आवश्यक)* | JWT हस्ताक्षर के लिए गुप्त कुंजी — 32+ यादृच्छिक वर्णों का उपयोग करें |
| `PORT` | `3000` | HTTP/HTTPS सुनने का पोर्ट |
| `STORAGE_BACKEND` | `json` | `json` (dev/demo) या `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 2FA (संगठन-व्यापी रूप से लागू करने योग्य) - RBAC:
reader→editor/dept_head→contentowner/auditor→admin - भंडारण: JSON फ़ाइलें (डिफ़ॉल्ट/डेमो) या
better-sqlite3के माध्यम से SQLite - AI: वैकल्पिक स्थानीय Ollama (nomic-embed-text); फ़ॉलबैक के रूप में कीवर्ड खोज हमेशा उपलब्ध
- ऑडिट लॉग: हर create/update/delete/login क्रिया दर्ज की जाती है, फ़िल्टर करने योग्य, निर्यात करने योग्य
C4 आरेख, पूर्ण डेटा मॉडल, और OpenAPI 3.0.3 स्पेक (80+ एंडपॉइंट) के लिए docs/architecture/ देखें।
परीक्षण चलाना
नोट:
tests/के अंतर्गत परीक्षण सूट लेखक के व्यक्तिगत विकास परीक्षण हैं और पारदर्शिता के लिए प्रोजेक्ट के साथ भेजे जाते हैं। यह एप्लिकेशन का हिस्सा नहीं है और ऐप चलाने के लिए आवश्यक नहीं है। परीक्षण आंतरिक API व्यवहार को कवर करते हैं और हार्डकोडेड परीक्षण क्रेडेंशियल का उपयोग करते हैं जो केवल पृथक परीक्षण वातावरण में मौजूद होते हैं — उनका किसी भी उत्पादन या डेमो डेटा से कोई संबंध नहीं होता।```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** को issue ट्रैकर में [`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) |
| ✅ पूर्ण | ऑडिट निष्कर्ष मॉड्यूल कार्य योजनाओं के साथ (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`) — MariaDB के समान Knex स्टोर परत, वास्तविक PostgreSQL 17 इंस्टेंस के विरुद्ध पूर्ण `docker compose` पथ सहित सत्यापित (V 1.37.5) |
| ✅ पूर्ण | ownCloud / Nextcloud एकीकरण — स्वीकृत नीतियाँ WebDAV के माध्यम से PDF के रूप में स्वतः प्रकाशित, वैकल्पिक पसंदीदा/सार्वजनिक-लिंक दृश्यता, वास्तविक 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)। रखरखाव-प्रयास परीक्षण: यदि यह अपेक्षा से अधिक रखरखाव साबित होता है तो फिर से हटा दिया जाएगा। |
| 🔜 अगला | AI नीति सहायक — Ollama शीर्षक + फ्रेमवर्क से नीति सामग्री का ड्राफ्ट तैयार करता है |
| 🔜 अगला | अनुसूचित रिपोर्ट — साप्ताहिक/मासिक अनुपालन रिपोर्ट ईमेल द्वारा वितरित |
| 🔜 अगला | ऑडिट-लॉग विसंगति पहचान (LLM बैच) |
| 🚀 बाद में | मात्रात्मक जोखिम स्कोरिंग (€-मान, FAIR-प्रेरित) |
| 🚀 बाद में | ऑडिटर सहयोग पोर्टल — ऑडिटरों के लिए बाहरी केवल-पढ़ने योग्य पहुँच |
| 🚀 बाद में | नीति अंतराल विश्लेषण (LLM) |
| 🏁 V 2.x | कॉन्फ़िगर करने योग्य गाइडेंस श्रेणियाँ — व्यवस्थापक कस्टम श्रेणियाँ परिभाषित करते हैं (जैसे वर्कफ़्लो, संगठन दस्तावेज़) |
---
## लेखक के बारे में
**Claude Hecker** 35 से अधिक वर्षों से IT में कार्यरत हैं। लगभग 15 वर्षों तक CIO के रूप में कार्य करने के बाद,
वे CISO और डेटा संरक्षण अधिकारी (DSO/DSB) की भूमिकाओं में आगे बढ़े। अपने करियर के दौरान
उन्होंने एक प्रमुख यूरोपीय निगम के लिए एंटरप्राइज़-व्यापी IT अवसंरचना और वाइड-एरिया नेटवर्क कनेक्टिविटी
(VPN, MPLS) डिज़ाइन और कार्यान्वित की है — कई साइटों और अधिकार क्षेत्रों में विश्वसनीय, सुरक्षित संचालन के लिए जिम्मेदार।
ISMS Builder सीधे उस अनुभव से विकसित हुआ: वास्तविक दुनिया में, वास्तविक ऑडिट के माध्यम से, वास्तविक नियामक दबाव के साथ
एक अनुपालन ISMS का निर्माण और रखरखाव। यह उपकरण वही दर्शाता है जो व्यवसायी वास्तव में चाहते हैं —
न कि जो एक उत्पाद प्रबंधक सोचता है कि उन्हें चाहिए।
**ओपन सोर्स क्यों?**
SME पाँच-अंकीय लाइसेंस शुल्क के बिना एक उचित 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** EU विधायी अधिनियम हैं और [eur-lex.europa.eu](https://eur-lex.europa.eu) के माध्यम से
सार्वजनिक रूप से उपलब्ध हैं।
---
## लाइसेंस
कॉपीराइट (C) 2026 Claude Hecker
यह प्रोग्राम [GNU Affero General Public License 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) देखें।






