
Sistema di Gestione della Sicurezza delle Informazioni self-hosted — ISO 27001, NIS2, GDPR/DSGVO, BSI IT-Grundschutz
<!-- © 2026 Claude Hecker — ISMS Builder V 1.40.3 — AGPL-3.0 -->

# ISMS Builder
**Sistema di gestione della sicurezza delle informazioni self-hosted — open source, nessun cloud richiesto**
[](https://github.com/coolstartnow/isms-builder/actions/workflows/ci.yml)
[](https://github.com/coolstartnow/isms-builder/actions)
[](LICENSE)
[](https://nodejs.org)
[](CHANGELOG.md)
📖 **[Wiki](https://github.com/coolstartnow/isms-builder/wiki)** — Utilizzo dell'immagine Docker e
variabili d'ambiente, architettura e moduli, FAQ, contribuire (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. -->
---
> ## ⚠️ Avviso di sicurezza: repository falsi e copie che distribuiscono malware
> ISMS Builder **non ha "release" pacchettizzate, installer o file ZIP scaricabili** — l'unica
> fonte legittima è questo repository, clonato o scaricato direttamente da GitHub come semplice
> codice sorgente. Siamo a conoscenza di almeno un **repository malevolo che impersona questo progetto**
> (README falso, pulsante "Download" falso che rimanda a uno ZIP camuffato da screenshot, contenente un
> loader malware per Windows — catena di payload `.cmd` → `.exe` → Lua-DLL). **Non scaricare né eseguire alcun
> ZIP/installer/exe "isms_builder" da fonti diverse da questo repository.**
> Se trovi un repo o un sito sospetto che impersona questo progetto, apri una
> [issue](https://github.com/coolstartnow/isms-builder/issues) o una
> [discussion](https://github.com/coolstartnow/isms-builder/discussions) così possiamo segnalarlo.
---
> **Stato: sviluppo attivo — non ancora un prodotto finito.**
> I moduli principali sono funzionanti e in uso, ma alcune funzionalità sono incomplete
> e la piattaforma è ancora in crescita. Contributi, feedback e test
> sul campo sono molto benvenuti — è esattamente per questo che è stato reso open source.
---
> 🛡️ **Progetto correlato: [NIS2 Quick-Check](https://github.com/coolstartnow/nis2-quickcheck)** —
> un self-check NIS2 gratuito e autonomo (10 domini × 5 domande, tutti i 27 stati membri dell'UE, tutte le 24
> lingue ufficiali dell'UE). Funziona interamente nel browser, senza backend, senza installazione. Non fa parte di
> ISMS Builder e non è necessario per utilizzarlo — solo uno strumento complementare per un primo orientamento rapido.
---
## Cos'è ISMS Builder?
ISMS Builder è una **piattaforma web self-hosted** per la gestione di un Sistema di Gestione della Sicurezza delle Informazioni (ISMS).
Copre l'intero ciclo di vita della conformità — dalla redazione delle policy alle evidenze di audit — per ISO 27001:2022, NIS2, GDPR/DSGVO, BSI IT-Grundschutz e altri framework.
**Nessun cloud. Nessun costo SaaS. I tuoi dati restano sul tuo server.**
> Progettato per PMI, team IT e consulenti che necessitano di un vero strumento ISMS senza un contratto con un fornitore a cinque cifre.
---
## Uso previsto e ambito
Questo progetto è nato come strumento di lavoro per un singolo professionista ISMS e da lì è cresciuto. È
open source perché il lavoro può essere utile ad altri — non perché sia un prodotto commerciale
mascherato. Essere espliciti su questo ti aiuta a decidere se è adatto alla tua situazione.
**Per cosa è pensato.** Un piccolo team ISMS — spesso una persona, a volte una manciata — che
redige e mantiene la documentazione di un sistema di gestione: policy, rischi, asset,
controlli, evidenze. Si prevede che il numero di persone che *necessitano di un account* rimanga contenuto.
Raggiungere un vasto pubblico funziona senza account: le conferme delle policy vengono inviate come
link basati su token, così i destinatari leggono e confermano un documento senza mai effettuare il login e
senza comparire in alcun elenco utenti.
**Cosa si aspetta da te.** ISMS Builder è self-hosted, e tutto ciò che ne consegue
è tuo: deployment, TLS, hardening, backup, aggiornamenti, controllo degli accessi e gli obblighi
di protezione dei dati per qualunque cosa tu vi memorizzi. Il progetto fornisce una configurazione
predefinita ragionevole, non un servizio gestito.
**Cosa non è.** Non esiste un'offerta SaaS ospitata, né un contratto di supporto commerciale, né un
accordo sul livello di servizio. Non è un prodotto di hosting multi-tenant. Non ti certifica
rispetto ad alcuno standard e non è consulenza legale — ti aiuta a organizzare e documentare il lavoro,
ma la valutazione resta tua e del tuo auditor.
**Chi lo mantiene.** Una persona, accanto a un lavoro a tempo pieno. Issue e discussioni vengono lette e
ricevono risposta, di solito entro pochi giorni; le segnalazioni di sicurezza hanno priorità. Le richieste di funzionalità sono benvenute e
influenzano davvero la roadmap, ma competono per serate limitate. Se la tua organizzazione dipende
da una tempistica fissa o da una risposta garantita, un fornitore commerciale è la raccomandazione onesta —
e non è un motivo per evitare il progetto, solo un motivo per pianificare in modo realistico.
---
## Screenshot
| Login | Dashboard |
|---|---|
|  |  |
| Dichiarazione di Applicabilità | Gestione dei Rischi |
|---|---|
|  |  |
| GDPR e Protezione dei Dati | Gestione degli Asset |
|---|---|
|  |  |
| Guida e Documentazione | Report |
|---|---|
|  |  |
> Esegui `npm start` e apri `https://localhost:3000` per esplorare localmente il dataset demo completo.
---
## Panoramica delle funzionalità
| Modulo | Descrizione | Standard |
|---|---|---|
| **Gestione delle Policy** | CRUD dei template, versioning, ciclo di vita (bozza → revisione → approvata → archiviata), gerarchia degli spazi, allegati | ISO 27001 §5 |
| **Dichiarazione di Applicabilità** | 313 controlli su 8 framework, modifica inline, analisi dei gap, cross-mapping | ISO 27001 A / BSI / NIS2 / EUCS / EUAI / ISO 9001 / CRA |
| **Gestione dei Rischi** | Registro dei rischi, piani di trattamento, ruolo auditor | ISO 27001 §6.1 |
| **Obiettivi di Sicurezza** | Monitoraggio KPI con barre di avanzamento, integrazione calendario | ISO 27001 §6.2 |
| **GDPR e Privacy** | VVT, contratti per il trattamento, DSFA, TOM, coda DSAR, timer 72h, registro delle cancellazioni con avvisi email | DSGVO Art. 13–35 |
| **Gestione degli Asset** | Registro degli asset, tipi di asset modificabili, obiettivi di protezione (CIA + autenticità) con ereditarietà delle dipendenze, livelli di classificazione, monitoraggio EoL | ISO 27001 A.5.9–5.12 |
| **BCM / BCP** | Business Impact Analysis, piani di continuità, esercitazioni | ISO 27001 A.5.29–5.30 / NIS2 |
| **Registri di Formazione** | Catalogo formativo, monitoraggio del completamento, caricamento dei certificati | ISO 27001 A.6.3 |
| **Gestione dei Fornitori** | Registro dei fornitori, pianificazione degli audit, valutazione del rischio | ISO 27001 A.5.19–5.22 |
| **Legale e Contratti** | Contratti, NDA, informative sulla privacy, calendario delle scadenze | |
| **Casella degli Incidenti** | Casella CISO + **modulo di segnalazione pubblico** (nessun login richiesto) | NIS2 / BSI |
| **Governance** | Riesami della direzione, monitoraggio delle azioni | ISO 27001 §9.3 |
| **Report** | Matrice di conformità (Controllo × Entità), report dei gap, cicli di revisione, esportazione CSV | |
| **Risultanze di Audit** | Registro delle risultanze (IST→SOLL→Rischio→Raccomandazione), piani d'azione, monitoraggio di gravità/stato, riferimento FIND-YYYY-NNNN | ISO 27001 §9.2 |
| **Tracciabilità** | Ogni record si collega ai controlli SoA + ai documenti di policy — bidirezionale | |
| **Ricerca Semantica** | Ricerca AI locale tramite Ollama (nomic-embed-text) con fallback per parole chiave | |
| **Multi-Entità** | Albero della struttura aziendale, applicabilità per entità per controlli e policy | |
| **UI e Dati Demo Multilingua** | UI completa e contenuti demo in 🇩🇪 DE / 🇬🇧 EN / 🇫🇷 FR / 🇳🇱 NL; l'admin controlla le lingue disponibili | |
---
### ⚠ IMPORTANTE: i Controlli ISO richiedono l'installazione manuale da parte dell'amministratore
> **ISO 27001:2022, ISO 9000:2015 e ISO 9001:2015** sono standard protetti da copyright pubblicati
> dall'International Organization for Standardization (ISO, © ISO). Le definizioni dei controlli
> (titoli, descrizioni, testo dei requisiti) **non sono incluse** in questo software e **non devono**
> essere ridistribuite senza una valida licenza ISO.
**Cosa significa in pratica:**
I moduli SoA per ISO 27001, ISO 9000 e ISO 9001 vengono forniti senza il contenuto dei controlli.
L'amministratore **deve importare manualmente** i controlli prima che questi framework siano utilizzabili:
1. Ottieni una copia con licenza dello standard da [iso.org](https://www.iso.org/) o da un ente nazionale autorizzato
2. Prepara un file JSON con le tue definizioni dei controlli (formato documentato in `scripts/import-iso-controls.sh`)
3. Esegui lo script di importazione: ```bash
bash scripts/import-iso-controls.sh path/to/iso-controls.json
```
4. Riavvia il server ISMS Builder
> **Framework inclusi out-of-the-box (nessuna licenza ISO richiesta):**
> BSI IT-Grundschutz, EU NIS2, EUCS, EU AI Act e CRA si basano su normative UE
> e pubblicazioni federali tedesche disponibili pubblicamente e sono completamente preinstallati.
L'utilizzo dei moduli framework ISO senza una licenza valida per il rispettivo standard è
di esclusiva responsabilità dell'operatore. Il progetto ISMS Builder e i suoi contributori non si assumono alcuna
responsabilità per l'uso non autorizzato di contenuti protetti da ISO.
---
## Avvio rapido```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
```
Accedi con **`[email protected]` / `adminpass`**. Al primo accesso ti verrà chiesto di scegliere la **lingua dei dati demo** (🇩🇪 DE / 🇬🇧 EN / 🇫🇷 FR / 🇳🇱 NL) oppure di iniziare con un sistema vuoto. Cambia immediatamente la password dell'amministratore dopo l'accesso.
Per l'uso in produzione con 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
```
**Passare in produzione dopo aver valutato con dati demo?** Esegui lo strumento interattivo di preparazione alla produzione invece di partire da un'installazione pulita — cancella i contenuti demo/di test modulo per modulo (o tutti in una volta), così i dati reali che hai già inserito (ad es. rischi, asset) non devono essere reinseriti:```bash
bash stop.sh
node scripts/prepare-production.js
bash start.sh
```
Crea sempre un backup (`data.bak.<timestamp>/`, accanto alla tua directory `data/`) prima di
modificare qualsiasi cosa, e non tocca mai `STORAGE_BACKEND` — a differenza dell'azione admin
"Demo Reset" nell'app, che è pensata per l'istanza demo e per ragioni storiche passa ancora a `sqlite`
(vedi [Issue #42](https://github.com/coolstartnow/isms-builder/issues/42)).
---
## Docker
Ogni release è pubblicata come GitHub Package nel GitHub Container Registry, per
`linux/amd64` e `linux/arm64` — con tag `:latest` e `:<version>` (ad es. `:1.37.5.2`):```bash
docker compose up -d
# App runs at http://localhost:3000
```
Oppure senza Compose (`data/` deve essere un bind mount — i dati non vengono mai incorporati nell'immagine):```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
```
Questo è il default, memorizza i dati come file JSON semplici in `./data` — non serve alcun container database. È la configurazione consigliata per piccoli team ed è quella utilizzata dai due comandi sopra.
**Usare PostgreSQL (o MariaDB) invece di JSON.** L'immagine lo supporta out of the box, ma — a differenza della configurazione JSON sopra — richiede un secondo container (il database vero e proprio) più una manciata di variabili d'ambiente che indicano all'app come raggiungerlo. Se hai scaricato solo l'immagine (`docker pull ghcr.io/coolstartnow/isms-builder`) senza mai clonare questo repository, quei nomi di variabili non sono visibili da nessuna parte di default — `docker-compose.yml` e `.env.example`, dove sono documentati, sono file in questo repository Git, non parte dell'immagine. Questa sezione esiste proprio perché quell'informazione non sia un segreto solo del repo.
L'immagine `isms-builder` stessa non include mai un server database — `postgres:17` (o `mariadb:11`) è un motore database completamente generico e vuoto da Docker Hub, senza alcuna conoscenza delle tabelle di questo progetto. Quelle tabelle (rischi, asset, controlli SoA, e così via) vengono create automaticamente dall'applicazione stessa nel momento in cui si avvia e trova un database vuoto — nessun import SQL manuale, nessuno step di migrazione separato da eseguire. Vedi "Come viene creato lo schema del database?" qui sotto se vuoi i dettagli completi.
Due container, una rete Docker condivisa, poi all'app viene indicato dove trovare il database:```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
```
Ecco cosa significa ciascuna variabile:
| Variabile | Scopo |
|---|---|
| `STORAGE_BACKEND` | `postgres` (o `pg`) per PostgreSQL, `mariadb` per MariaDB/MySQL. Lasciare non impostato (o `json`) per la configurazione JSON predefinita. |
| `DB_HOST` | Nome host del container del database. Su una rete Docker condivisa, è semplicemente il `--name` del container — Docker lo risolve automaticamente. |
| `DB_PORT` | `5432` per PostgreSQL, `3306` per MariaDB. |
| `DB_USER` / `DB_PASS` / `DB_NAME` | Devono corrispondere a quanto impostato sul container del database (`POSTGRES_USER`/`POSTGRES_PASSWORD`/`POSTGRES_DB` sopra, o gli equivalenti MariaDB). |
Per MariaDB, sostituire `postgres:17-alpine` con `mariadb:11`, usare le sue variabili `MARIADB_DATABASE` /
`MARIADB_USER` / `MARIADB_PASSWORD` nel passaggio 2, e `STORAGE_BACKEND=mariadb` /
`DB_PORT=3306` nel passaggio 3. L'elenco completo e con riferimenti incrociati di ogni variabile d'ambiente che questo
progetto comprende — incluse quelle non trattate qui (SSL, trust del reverse-proxy, SMTP,
2FA, …) — si trova in [`.env.example`](https://github.com/coolstartnow/isms-builder/blob/main/.env.example) in questo repository.
Gli utenti di Compose ottengono tutto questo gratuitamente: `docker-compose.yml` include già i profili
di servizio `mariadb` e `postgres` (commentati per impostazione predefinita, insieme alle spiegazioni equivalenti delle variabili d'ambiente) —
`docker compose --profile postgres up -d` avvia entrambi i container collegati automaticamente,
senza necessità di configurare manualmente la rete o copiare e incollare le password.
**Come viene creato lo schema del database?** Né l'immagine `postgres:17` né quella `mariadb:11`
sanno nulla di questo progetto — sono motori di database generici e vuoti direttamente da
Docker Hub. Non c'è alcun file di dump SQL da importare né alcun comando di migrazione separato da eseguire manualmente.
Invece, nel momento in cui il container `isms-builder` si avvia e si connette a un database vuoto, il suo
stesso codice applicativo (non l'immagine del database) crea ogni tabella di cui ha bisogno sul momento — vedere
[`server/db/knexDatabase.js`](https://github.com/coolstartnow/isms-builder/blob/main/server/db/knexDatabase.js): un elenco di definizioni di tabelle, ciascuna
verificata con `hasTable()` e creata con `createTable()` se mancante, tutto prima che l'app inizi
ad accettare richieste HTTP. Questo lo rende idempotente — il primissimo avvio costruisce lo schema completo
dal nulla, e ogni riavvio successivo sullo stesso database è un silenzioso no-op perché le
tabelle esistono già. Questo è lo stesso meccanismo, non modificato, che è stato verificato dal vivo su
SQLite, MariaDB 11 e PostgreSQL 17 (vedere [#70](https://github.com/coolstartnow/isms-builder/issues/70)).
Per compilare dai sorgenti, invece, decommentare il blocco `build:` in `docker-compose.yml` ed eseguire
`docker compose up -d --build`.
Le immagini portano un'attestazione firmata di provenienza della build:```bash
gh attestation verify oci://ghcr.io/coolstartnow/isms-builder:latest --owner coolstartnow
```
---
## Requisiti
- **Node.js 18+** (testato: 18, 20, 22)
- npm 9+
- (Opzionale) Docker + Docker Compose
- (Opzionale) [Ollama](https://ollama.ai) per la ricerca semantica AI locale
---
## Configurazione (`.env`)
| Variabile | Predefinito | Descrizione |
|---|---|---|
| `JWT_SECRET` | *(obbligatorio)* | Segreto per la firma JWT — usa 32+ caratteri casuali |
| `PORT` | `3000` | Porta di ascolto HTTP/HTTPS |
| `STORAGE_BACKEND` | `json` | `json` (sviluppo/demo) o `sqlite` (produzione) |
| `SSL_CERT_FILE` | — | Percorso del certificato TLS → abilita HTTPS |
| `SSL_KEY_FILE` | — | Percorso della chiave privata TLS |
| `DATA_DIR` | `./data` | Sovrascrive la directory dei dati (volumi Docker) |
| `SMTP_HOST` | — | Server SMTP per gli avvisi email |
| `SMTP_PORT` | `587` | Porta SMTP |
| `SMTP_USER` | — | Nome utente SMTP |
| `SMTP_PASS` | — | Password SMTP |
| `SMTP_FROM` | — | Indirizzo mittente per le notifiche |
---
## Architettura```
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)
```
- **Auth:** cookie JWT (`sm_session`), password bcrypt, 2FA TOTP (applicabile a livello di organizzazione)
- **RBAC:** `reader` → `editor` / `dept_head` → `contentowner` / `auditor` → `admin`
- **Persistenza:** file JSON (predefinito/demo) o SQLite tramite `better-sqlite3`
- **AI:** Ollama locale opzionale (nomic-embed-text); ricerca per parole chiave sempre disponibile come fallback
- **Registro di audit:** ogni azione di creazione/modifica/eliminazione/login registrata, filtrabile, esportabile
Vedi [`docs/architecture/`](https://github.com/coolstartnow/isms-builder/blob/main/docs/architecture) per i diagrammi C4, il modello dati completo e la specifica OpenAPI 3.0.3 (oltre 80 endpoint).
---
## Esecuzione dei test
> **Nota:** la suite di test in `tests/` è costituita dai test di sviluppo personali dell'autore ed è
> distribuita insieme al progetto per trasparenza. **Non** fa parte dell'applicazione stessa
> e **non è necessaria** per eseguire l'app. I test coprono il comportamento interno dell'API e utilizzano
> credenziali di test hardcoded che esistono solo nell'ambiente di test isolato — non hanno alcuna
> relazione con dati di produzione o demo.```bash
npm test # runs all 423 tests
npm run preflight # exactly what CI gates on (tests + pinning + audit)
npm test -- --verbose # with test names
```
I test utilizzano una directory temporanea isolata — nessun dato di produzione viene toccato.
---
## Contribuire
I contributi sono molto benvenuti! Consulta [CONTRIBUTING.md](https://github.com/coolstartnow/isms-builder/blob/main/CONTRIBUTING.md) per:
- Configurazione di sviluppo (5 minuti per la prima esecuzione dei test)
- Stile del codice e convenzioni
- Come aprire una buona issue o PR
**Hai trovato un problema di sicurezza?** Ti preghiamo di non aprire una issue pubblica — utilizza
la [segnalazione privata di vulnerabilità](https://github.com/coolstartnow/isms-builder/security/advisories/new).
[SECURITY.md](https://github.com/coolstartnow/isms-builder/blob/main/SECURITY.md) descrive l'ambito, il salvacondotto e cosa aspettarsi realisticamente.
Le **good first issue** sono etichettate [`good first issue`](https://github.com/coolstartnow/isms-builder/issues?q=label%3A%22good+first+issue%22) nel tracker delle issue.
---
## Roadmap
| Stato | Funzionalità |
|---|---|
| ✅ Completato | Ricerca semantica (Ollama / nomic-embed-text) |
| ✅ Completato | Backend SQLite, Docker, CI/CD |
| ✅ Completato | Avvisi email del registro di cancellazione GDPR |
| ✅ Completato | Bundle demo multilingua (DE / EN / FR / NL) |
| ✅ Completato | Modulo Audit Findings con piani d'azione (V 1.37.2.0) |
| ✅ Completato | Traduzioni della Guida FR/NL + configurazione della lingua admin (V 1.37.2.0) |
| ✅ Completato | Backend MariaDB/MySQL (`STORAGE_BACKEND=mariadb`, V 1.37.2.1) |
| ✅ Completato | Scanner → bozza di Rischio (importazione XML + PDF Greenbone/OpenVAS, V 1.37.2.0) |
| ✅ Completato | Presa visione delle policy — il personale conferma digitalmente le policy con tracciabilità delle verifiche (V 1.37.2.0) |
| ✅ Completato | CRUD della Guida — crea, modifica e carica la propria documentazione (V 1.37.2.0) |
| ✅ Completato | Ricerca nella Guida — ricerca full-text trasversale alle categorie con estratto (V 1.37.2.0) |
| ✅ Completato | Obiettivi di protezione degli asset — CIA + autenticità (1–4), dipendenze ed ereditarietà del principio del massimo BSI (V 1.37.2.0) |
| ✅ Completato | Checklist di governance NIS2 Art. 21 (30 voci) e scadenze di segnalazione Art. 23 con avvisi automatici (V 1.37.2.0) |
| ✅ Completato | Backend PostgreSQL (`STORAGE_BACKEND=pg`) — stesso livello di store Knex di MariaDB, verificato su una vera istanza PostgreSQL 17 incl. percorso completo `docker compose` (V 1.37.5) |
| ✅ Completato | Integrazione ownCloud / Nextcloud — le policy approvate vengono pubblicate automaticamente come PDF via WebDAV, visibilità opzionale come preferito/link pubblico, verificato dal vivo su una vera istanza NextcloudPi (#66, V 1.37.5.1) |
| ✅ Completato | Immagine Docker pubblicata su GitHub Container Registry dopo ogni release (`ghcr.io/coolstartnow/isms-builder`, `linux/amd64` + `linux/arm64`, provenienza di build firmata) — contribuito da @bucherfa (#71, V 1.40.0). Prova di impegno di manutenzione: verrà rimossa di nuovo se si rivelerà più onerosa del previsto. |
| 🔜 Prossimo | Assistente AI per le Policy — Ollama redige il contenuto delle policy da titolo + framework |
| 🔜 Prossimo | Report programmati — report di conformità settimanale/mensile inviato via email |
| 🔜 Prossimo | Rilevamento di anomalie nel registro di audit (batch LLM) |
| 🚀 Più avanti | Punteggio di rischio quantitativo (valori in €, ispirato a FAIR) |
| 🚀 Più avanti | Portale di collaborazione per auditor — accesso esterno in sola lettura per gli auditor |
| 🚀 Più avanti | Analisi dei gap delle policy (LLM) |
| 🏁 V 2.x | Categorie della Guida configurabili — gli admin definiscono categorie personalizzate (es. flussi di lavoro, documenti organizzativi) |
---
## Informazioni sull'Autore
**Claude Hecker** lavora nel settore IT da oltre 35 anni. Dopo circa 15 anni come CIO,
è passato ai ruoli di CISO e Data Protection Officer (DSO/DSB). Nel corso della sua carriera
ha progettato e implementato infrastrutture IT a livello aziendale e connettività di rete geografica
(VPN, MPLS) per una grande azienda europea — responsabile di operazioni affidabili e sicure su
più sedi e giurisdizioni.
ISMS Builder è nato direttamente da quell'esperienza: costruire e mantenere un ISMS conforme nel
mondo reale, attraverso audit reali, con una reale pressione normativa. Lo strumento riflette ciò di cui i professionisti
hanno effettivamente bisogno — non ciò che un product manager pensa che serva.
**Perché open source?**
Le PMI meritano l'accesso a una vera piattaforma ISMS senza canoni di licenza a cinque cifre. L'impegno
di onboarding è reale indipendentemente dallo strumento scelto — ma quel costo non dovrebbe essere aggravato dal vendor
lock-in o dal fatto che i dati lascino la propria infrastruttura. Questo progetto sostiene la libertà del software e il
principio secondo cui i tuoi dati di conformità appartengono a te.
---
## Nota di riferimento agli standard
Questo software fa riferimento a identificatori di controllo e titoli brevi tratti da standard
pubblicati esclusivamente per finalità di interoperabilità e gestione della conformità.
- **ISO/IEC 27001, ISO 9000, ISO 9001** sono standard pubblicati dall'
International Organization for Standardization (ISO). Le definizioni dei controlli
per questi standard **non sono incluse** in questa distribuzione software —
il copyright ISO non consente la ridistribuzione del testo dei controlli. Gli utenti devono
fornire il proprio file JSON (vedi la sezione sopra e `scripts/import-iso-controls.sh`).
Gli standard devono essere ottenuti da [ISO](https://www.iso.org/) o da un
distributore nazionale autorizzato.
- Il materiale **BSI IT-Grundschutz** è pubblicato dall'Ufficio federale tedesco
per la sicurezza informatica (BSI) ed è liberamente disponibile su
[bsi.bund.de](https://www.bsi.bund.de).
- **NIS2, CRA, EUCS, EU AI Act** sono atti legislativi dell'UE e sono pubblicamente
disponibili tramite [eur-lex.europa.eu](https://eur-lex.europa.eu).
---
## Licenza
Copyright (C) 2026 Claude Hecker
Questo programma è un software libero concesso in licenza sotto la
[GNU Affero General Public License v3.0](https://github.com/coolstartnow/isms-builder/blob/main/LICENSE).
Se esegui una versione modificata come servizio di rete, devi rendere disponibile il
codice sorgente completo agli utenti di quel servizio (AGPL §13).
Questo progetto include componenti di terze parti sotto licenze MIT, BSD-2-Clause e
Apache-2.0. Consulta [THIRD-PARTY-LICENSES.md](https://github.com/coolstartnow/isms-builder/blob/main/THIRD-PARTY-LICENSES.md)
per l'attribuzione completa e i testi delle licenze.