generated from vincent/template-projet
2.9 KiB
2.9 KiB
AuditShield
Projet
Outil d'audit infrastructure et sécurité pour clients MSP. Permet de lancer des scans réseau, vulnérabilités et pentest automatisés, avec suivi des actions et génération de rapports exportables (PDF + dashboard web) compréhensibles pour des clients non-techniques.
Stack
- Frontend : Next.js 14 + Tailwind + shadcn/ui
- Backend : FastAPI (Python 3.11)
- Base de données : PostgreSQL
- ORM : SQLAlchemy + Alembic (migrations)
- Auth : JWT + bcrypt
- PDF : WeasyPrint
- Déploiement : Docker → Synology NAS ou VPS (rigolet.tech)
Structure
frontend/
app/ # Next.js App Router
components/ # Composants réutilisables
lib/ # Utilitaires, API client
backend/
api/ # Routes FastAPI
scanners/ # Orchestration Nmap, OpenVAS, Metasploit, AD
models/ # Modèles SQLAlchemy
reports/ # Génération PDF
docker/
docker-compose.yml
docker-compose.prod.yml
Commandes
# Frontend
cd frontend && npm install && npm run dev
# Backend
cd backend && pip install -r requirements.txt && uvicorn main:app --reload
# Docker complet
docker compose -f docker/docker-compose.yml up -d
# Migrations BDD
cd backend && alembic upgrade head
# Tests
pytest backend/tests/
Modèle de données
- Client : id, nom, contact, créé_le
- Audit : id, client_id, statut, date_début, date_fin, score_global
- Cible : id, audit_id, type (IP/domaine/subnet), valeur
- Vulnérabilité : id, audit_id, criticité (critique/important/modéré/faible), titre, description, recommandation
- Action : id, vulnérabilité_id, statut (ouvert/en_cours/résolu), assigné_à, note
Sécurité IMPORTANT
- Jamais de credentials dans le code, toujours via .env
- Les scans ne se lancent QUE sur des cibles validées par l'utilisateur
- Logs de toutes les actions de scan en BDD
- Rate limiting sur toutes les routes API
Code style
- ES modules (import/export), jamais CommonJS
- Functional components + hooks uniquement
- TypeScript strict sur le frontend
- Type hints Python obligatoires sur le backend
- IMPORTANT : typecheck après chaque série de modifications
Git
- Branches : main (prod) → dev → feature/xxx
- Commits : feat: / fix: / docs: / refactor: / chore:
- IMPORTANT : toujours créer une branche pour chaque tâche
- IMPORTANT : ne jamais pusher directement sur main
Déploiement
Gitea Actions → Docker → NAS ou VPS selon le client Voir @docker/docker-compose.yml et @.gitea/workflows/deploy.yml
Ce que Claude doit savoir sur CE projet
- Les scans sont des opérations longues → utiliser des jobs asynchrones (Celery ou BackgroundTasks FastAPI)
- Le rapport PDF doit être compréhensible par un dirigeant non-technique
- Toujours traduire les CVE en langage clair dans les rapports
- La BDD utilise snake_case, le frontend TypeScript utilise camelCase
- Les criticités : critique (CVSS 9-10), important (7-8.9), modéré (4-6.9), faible (0-3.9)