Documentation Technique

Architecture CyberSensei

Guide complet de l'architecture microservices, des technologies utilisees, et de l'administration de la plateforme CyberSensei.

14 Services
6 Profiles Docker
20+ Technologies
100% On-Premise possible
Vue d'ensemble

Architecture Globale

Utilisateurs
NavigateurTeamsExtension Chrome
Traefik Reverse Proxy:80
On-Premise
⚛️Node Dashboard
:3005
Node Backend
:8080
SaaS Central
⚛️Central Dashboard
:5173
⚛️M365 Dashboard
:5174
🔴Central Backend
:3006
AI Security (DLP)
AI Security API
:8081
🐍AI Engine (Mistral)
:8002
Teams
⚛️Teams Tabs
:5176
🤖Teams Bot
:5175
JDBC / TypeORM / Mongoose
🐘
PostgreSQL
:5432
🍃
MongoDB
:27017
MonitoringPrometheus :9090|Grafana :3300

On-Premise

Deploiement 100% local pour les donnees sensibles. Aucune donnee ne quitte votre infrastructure.

SaaS Multi-Tenant

Plateforme centrale pour gerer plusieurs clients avec isolation des donnees par tenant.

IA Souveraine

Mistral 7B tourne localement. Aucun prompt n'est envoye vers un cloud externe.

Detail de chaque service

Les Microservices

Cliquez sur un service pour voir sa description detaillee, ses fonctionnalites, ses endpoints API, et comment l'utiliser.

Comment les services communiquent

Flux de Donnees

Flux principaux

Extension ChromeAI Security BackendAI Engine (Python)

Chaque prompt envoye a ChatGPT/Copilot/Gemini est intercepte et analyse avant envoi

Teams BotNode BackendPostgreSQL

Les quiz quotidiens et la progression sont geres par le backend Node via le bot Teams

Node InstanceCentral BackendPostgreSQL + MongoDB

Les instances on-premise envoient leur telemetrie et recuperent les mises a jour depuis Central

Central BackendMicrosoft Graph APIM365 Dashboard

OAuth lecture seule vers le tenant M365 pour scanner 10 categories de securite

Protocoles & securite

Authentification

  • JWT (JSON Web Tokens) pour tous les backends
  • API Key pour l'extension Chrome
  • SSO Microsoft Teams via MSAL
  • OAuth 2.0 pour Microsoft 365

Communication inter-services

  • REST/HTTP sur reseau Docker interne
  • Pas d'exposition externe des ports internes
  • Healthchecks automatiques
  • Traefik reverse proxy pour le routage

Protection des donnees

  • Prompts jamais stockes en clair (hash SHA256)
  • RGPD complet (Articles 15, 17, 20, 30)
  • Retention automatique (90j / 30j Article 9)
  • Audit log de toutes les operations RGPD
Technologies utilisees

Stack Technologique

Backend

Java 21
🍃Spring Boot 3
🔴NestJS

AI/ML

🐍Python FastAPI
🧠Mistral 7B
🔍Presidio
🛡️LLM Guard

Frontend

⚛️React 18
📘TypeScript
Next.js 14
🎨Tailwind CSS
Vite
🎬Framer Motion

Data

🐘PostgreSQL 15
🍃MongoDB 6

Infra

🐳Docker
🔀Traefik

Monitoring

🔥Prometheus
📊Grafana

Integration

🤖Bot Framework
Docker Compose Profiles

Demarrage Rapide

CyberSensei utilise des profiles Docker Compose pour demarrer uniquement les services dont vous avez besoin.

minimal
docker compose --profile minimal up -d

Le minimum pour tester le frontend

PostgreSQLNode Dashboard
node
docker compose --profile node up -d

Stack on-premise complete

PostgreSQLPgAdminNode BackendNode Dashboard
central
docker compose --profile central up -d

Stack SaaS avec monitoring M365

PostgreSQLPgAdminMongoDBCentral BackendCentral DashboardM365 Dashboard
ai-security
docker compose --profile ai-security up -d

Module DLP avec analyse IA

PostgreSQLAI Security EngineAI Security Backend
teams
docker compose --profile teams up -d

Integration Microsoft Teams

Teams BotTeams Tabs
full
docker compose --profile full up -d

Tout demarrer (dev/test)

Tous les services

Variables d'environnement principales

# .env (a la racine du projet)

POSTGRES_USER=cybersensei
POSTGRES_PASSWORD=cybersensei123
JWT_SECRET=votre-secret-jwt

# Microsoft 365 (optionnel)
M365_CLIENT_ID=votre-client-id
M365_CLIENT_SECRET=votre-secret

# IA (optionnel)
ANTHROPIC_API_KEY=sk-ant-...
SEMANTIC_THRESHOLD=40
Acces & identifiants

Administration

Identifiants par defaut - A changer en production

Les identifiants ci-dessous sont ceux par defaut pour le developpement. En production, modifiez-les via les variables d'environnement dans votre fichier .env ou votre orchestrateur.

Admin
admin@cybersensei.io
Demo123!

Mode dev avec SECURITY_BYPASS=true pour les tests

SuperAdmin
admin@cybersensei.com
Admin@123456

Acces complet a la gestion des tenants et licences

Pas d'identifiants - authentification OAuth

Necessaire : OAuth M365 avec Tenant ID Microsoft configure

Admin
admin@cybersensei.io
admin123

Interface web pour gerer PostgreSQL

Admin
admin
changeme

Dashboards de monitoring

PostgreSQL (direct)

localhost:5432
DB User
cybersensei
cybersensei123

Bases : cybersensei_db, cybersensei_central, cybersensei_ai_security

MongoDB (direct)

localhost:27017
Root
cybersensei
cybersensei123

Base : cybersensei_central

Guide d'administration rapide

1. Deployer la stack On-Premise

  1. 1Lancez : docker compose --profile node up -d
  2. 2Accedez au dashboard : http://localhost:3005
  3. 3Connectez-vous en admin
  4. 4Creez les comptes utilisateurs
  5. 5Configurez le SMTP pour le phishing
  6. 6Creez votre premiere campagne de phishing

2. Configurer l'AI Security (DLP)

  1. 1Lancez : docker compose --profile ai-security up -d
  2. 2Attendez le telechargement de Mistral (~4 Go)
  3. 3Verifiez la sante : http://localhost:8002/health
  4. 4Installez l'extension Chrome CyberSensei
  5. 5Les prompts vers ChatGPT/Copilot seront analyses
  6. 6Consultez les alertes sur le dashboard

3. Gerer la plateforme SaaS

  1. 1Lancez : docker compose --profile central up -d
  2. 2Accedez a http://localhost:5173 (admin SaaS)
  3. 3Creez des tenants pour vos clients
  4. 4Generez des licences
  5. 5Uploadez les mises a jour de contenu
  6. 6Surveillez la telemetrie des instances

4. Auditer Microsoft 365

  1. 1Configurez M365_CLIENT_ID dans le .env
  2. 2Accedez a http://localhost:5174 (M365 Dashboard)
  3. 3Entrez votre Tenant ID dans les parametres
  4. 4Autorisez l'acces OAuth (lecture seule)
  5. 5Lancez un scan de securite
  6. 6Generez un rapport PDF avec resume IA

Commandes utiles

$docker compose down
$docker compose --profile full logs -f
$docker compose --profile full ps
$docker compose --profile node restart node-backend
$docker volume prune
$docker compose --profile full build --no-cache