diff --git a/.gitignore b/.gitignore
index 77b0ef3..dce6236 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,13 +1,13 @@
# === Données réelles — gardées en local, jamais publiées ===
# Base CMDB (inventaire + mot de passe bind LDAP)
-CMDB/cmdb.db
-CMDB/cmdb.db.ver
-CMDB/cmdb.db.tmp
+cmdb/cmdb.db
+cmdb/cmdb.db.ver
+cmdb/cmdb.db.tmp
# Snapshots horodatés de la base (copies des données réelles)
-CMDB/snapshots/
+cmdb/snapshots/
# Certificats générés (contiennent des clés privées)
-GENERATEUR_CERTIFICATES/LISTS_ALL_CERT/
+cert-generator/LISTS_ALL_CERT/
# === Environnement / build ===
.venv/
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..1838380
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,4 @@
+[submodule "cmdb"]
+ path = cmdb
+ url = ssh://git@git.thehackdes.com/TheHackdes/Noctame.git
+ branch = dev
diff --git a/CMDB/__pycache__/cmdb_server.cpython-313.pyc b/CMDB/__pycache__/cmdb_server.cpython-313.pyc
deleted file mode 100644
index 3d8c12e..0000000
Binary files a/CMDB/__pycache__/cmdb_server.cpython-313.pyc and /dev/null differ
diff --git a/CMDB/__pycache__/cmdb_server.cpython-314.pyc b/CMDB/__pycache__/cmdb_server.cpython-314.pyc
deleted file mode 100644
index 36bf750..0000000
Binary files a/CMDB/__pycache__/cmdb_server.cpython-314.pyc and /dev/null differ
diff --git a/CMDB/cmdb.html b/CMDB/cmdb.html
deleted file mode 100644
index 085ef68..0000000
--- a/CMDB/cmdb.html
+++ /dev/null
@@ -1,4055 +0,0 @@
-
-
-
-
-
-CMDB — Admin
-
-
-
-
-
-
-
-
-
-
-
Dashboard
Vue d'ensemble de l'infrastructure
-
-
-
Répartition
-
-
-
Physique / Virtuel
-
-
-
-
Adressage IP
-
-
-
-
-
-
Machines par statut
-
-
-
-
Systèmes d'exploitation
-
-
-
-
Occupation des baies
-
-
-
-
-
-
-
-
Réseaux
Cliquez sur un réseau pour voir ses IPs
-
-
-
-
-
-
-
-
-
Machines
Cliquez sur un nom pour ouvrir la fiche détaillée
-
-
-
-
-
-
-
-
-
-
-
-
- Types :
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Informations manquantes
Champs vides ou incomplets détectés dans l'inventaire
-
-
-
-
-
-
-
-
-
-
-
-
Préférences
Types de machine, catalogue OS et réglages de base
-
-
-
-
Général
-
-
-
-
-
-
-
-
-
Sauvegardes (snapshots)
-
-
-
-
Copies horodatées de la base sur le serveur (dossier snapshots/).
- Un snapshot automatique est créé après une modification, au plus une fois par heure. La restauration remplace la base
- actuelle et crée d'abord un snapshot de sécurité de l'état courant.
-
-
-
-
-
Import / Export CSV
-
-
-
-
-
-
-
Exporte l'inventaire (machines, réseaux, IP/MAC, salles/baies) en un fichier CSV — une ligne par IP.
- À l'import, les réseaux, salles, baies et machines existants sont mis à jour par correspondance de nom,
- les nouveaux sont créés ; les IP d'une machine importée remplacent les siennes. Utile pour sauvegarder ou
- migrer les données hors de la base.
-
-
-
-
-
Types de machine
-
-
-
-
« Virtuel » = hébergé sur une autre machine. « Rackable » = peut occuper des U dans une baie. « User » = permet d'assigner un utilisateur (laptop, optiplex…).
-
-
-
-
-
Statuts de machine
-
-
-
-
-
-
-
-
Lien vers ticket
-
-
-
-
Lien + modèle de description à copier pour créer un ticket (ex : changement de configuration switch). {name} est remplacé par le nom de la machine.
-
-
-
-
-
Catalogue OS
-
-
-
-
-
-
-
Active Directory (recherche d'utilisateurs)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Recommandé : lancer python3 cmdb_server.py (remplace python -m http.server) —
- il sert la page sur http://127.0.0.1:8000 et interroge l'AD directement, aucun connecteur à configurer.
- Prérequis : pip install ldap3. Si la page est ouverte en file://, utilisez le connecteur séparé ci-dessous.
- Le mot de passe bind est stocké dans la base locale.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Modèles de serveur
-
-
-
-
-
-
-
-
-
-
CPU
-
-
-
-
-
-
-
-
Sur un serveur : choisir le CPU + nombre de sockets → total de cores calculé automatiquement.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/CMDB/cmdb_server.py b/CMDB/cmdb_server.py
deleted file mode 100644
index 4b3baa1..0000000
--- a/CMDB/cmdb_server.py
+++ /dev/null
@@ -1,482 +0,0 @@
-#!/usr/bin/env python3
-"""Serveur CMDB : sert cmdb.html, la base partagée et la recherche AD.
-
-Remplace `python -m http.server` ET le connecteur séparé :
- pip install ldap3
- python3 cmdb_server.py # http://0.0.0.0:8000
- python3 cmdb_server.py 8080 # port custom
-
-Endpoints :
- GET /db → base SQLite (bytes) + entête X-DB-Version
- GET /db/version → {"version": n} (poll léger)
- POST /db → écrit la base ; entête X-Base-Version pour la
- concurrence optimiste (409 si obsolète)
- POST /ldap/search → recherche annuaire (config envoyée par la page)
-
-La base est un vrai fichier `cmdb.db` partagé : plusieurs personnes
-peuvent l'utiliser en même temps, avec détection de conflit.
-"""
-import json
-import os
-import re
-import ssl
-import sys
-import threading
-import time
-from http.server import SimpleHTTPRequestHandler, ThreadingHTTPServer
-from urllib.parse import urlparse, parse_qs
-
-PORT = int(sys.argv[1]) if len(sys.argv) > 1 else 8000
-
-HERE = os.path.dirname(os.path.abspath(__file__))
-DB_PATH = os.path.join(HERE, 'cmdb.db')
-VER_PATH = DB_PATH + '.ver'
-DB_LOCK = threading.Lock()
-
-
-def db_version():
- try:
- with open(VER_PATH) as f:
- return int(f.read().strip() or 0)
- except (OSError, ValueError):
- return 1 if os.path.exists(DB_PATH) else 0
-
-
-def db_bytes():
- try:
- with open(DB_PATH, 'rb') as f:
- return f.read()
- except OSError:
- return b''
-
-
-def db_write(data):
- """Écrit la base atomiquement et incrémente la version. Renvoie la version."""
- with DB_LOCK:
- ver = db_version() + 1
- tmp = DB_PATH + '.tmp'
- with open(tmp, 'wb') as f:
- f.write(data)
- os.replace(tmp, DB_PATH)
- with open(VER_PATH, 'w') as f:
- f.write(str(ver))
- return ver
-
-
-# ---------------------------------------------------------------------------
-# Snapshots : copies horodatées de la base dans snapshots/.
-# - « auto » : créées après une écriture, au plus 1/heure, rétention 72.
-# - « manuel » : créées à la demande (bouton), rétention 100, label libre.
-# Restaurer un snapshot crée d'abord un snapshot de sécurité de l'état courant.
-# ---------------------------------------------------------------------------
-SNAP_DIR = os.path.join(HERE, 'snapshots')
-# nom : cmdb---v[-