addon
This commit is contained in:
158
docs/STRUCTURE.md
Executable file
158
docs/STRUCTURE.md
Executable file
@@ -0,0 +1,158 @@
|
||||
# Structure du projet Linux BenchTools
|
||||
|
||||
## Arborescence complète
|
||||
|
||||
```
|
||||
linux-benchtools/
|
||||
│
|
||||
├── backend/ # Backend FastAPI
|
||||
│ ├── app/
|
||||
│ │ ├── api/ # Endpoints API
|
||||
│ │ │ ├── __init__.py
|
||||
│ │ │ ├── benchmark.py # POST /api/benchmark
|
||||
│ │ │ ├── devices.py # CRUD devices
|
||||
│ │ │ ├── docs.py # Upload/download documents
|
||||
│ │ │ └── links.py # CRUD liens constructeur
|
||||
│ │ │
|
||||
│ │ ├── core/ # Configuration & sécurité
|
||||
│ │ │ ├── __init__.py
|
||||
│ │ │ ├── config.py # Variables d'environnement
|
||||
│ │ │ └── security.py # Authentification token
|
||||
│ │ │
|
||||
│ │ ├── models/ # Modèles SQLAlchemy
|
||||
│ │ │ ├── __init__.py
|
||||
│ │ │ ├── device.py # Table devices
|
||||
│ │ │ ├── hardware_snapshot.py # Table hardware_snapshots
|
||||
│ │ │ ├── benchmark.py # Table benchmarks
|
||||
│ │ │ ├── manufacturer_link.py # Table manufacturer_links
|
||||
│ │ │ └── document.py # Table documents
|
||||
│ │ │
|
||||
│ │ ├── schemas/ # Schémas Pydantic (validation)
|
||||
│ │ │ ├── __init__.py
|
||||
│ │ │ ├── benchmark.py # Schémas payload benchmark
|
||||
│ │ │ ├── device.py # Schémas device
|
||||
│ │ │ ├── hardware.py # Schémas hardware
|
||||
│ │ │ ├── document.py # Schémas document
|
||||
│ │ │ └── link.py # Schémas liens
|
||||
│ │ │
|
||||
│ │ ├── db/ # Base de données
|
||||
│ │ │ ├── __init__.py
|
||||
│ │ │ ├── base.py # Déclaration base SQLAlchemy
|
||||
│ │ │ ├── session.py # Session & engine
|
||||
│ │ │ └── init_db.py # Initialisation tables
|
||||
│ │ │
|
||||
│ │ ├── utils/ # Utilitaires
|
||||
│ │ │ ├── __init__.py
|
||||
│ │ │ └── scoring.py # Calcul scores
|
||||
│ │ │
|
||||
│ │ ├── main.py # Point d'entrée FastAPI
|
||||
│ │ └── __init__.py
|
||||
│ │
|
||||
│ ├── data/ # Base SQLite (gitignored)
|
||||
│ ├── Dockerfile # Image Docker backend
|
||||
│ ├── requirements.txt # Dépendances Python
|
||||
│ └── README.md
|
||||
│
|
||||
├── frontend/ # Interface web
|
||||
│ ├── index.html # Dashboard
|
||||
│ ├── devices.html # Liste devices
|
||||
│ ├── device_detail.html # Détail device
|
||||
│ ├── settings.html # Configuration
|
||||
│ │
|
||||
│ ├── css/
|
||||
│ │ ├── main.css # Styles principaux (Monokai)
|
||||
│ │ └── components.css # Composants réutilisables
|
||||
│ │
|
||||
│ └── js/
|
||||
│ ├── api.js # Appels API
|
||||
│ ├── dashboard.js # Logique Dashboard
|
||||
│ ├── devices.js # Logique liste devices
|
||||
│ ├── device_detail.js # Logique détail device
|
||||
│ ├── settings.js # Logique settings
|
||||
│ └── utils.js # Fonctions utilitaires
|
||||
│
|
||||
├── scripts/ # Scripts clients
|
||||
│ └── bench.sh # Script de benchmark client
|
||||
│
|
||||
├── uploads/ # Documents uploadés (gitignored)
|
||||
│
|
||||
├── tests/ # Tests
|
||||
│ └── data/ # Données de test
|
||||
│ ├── bench_full.json # Payload complet
|
||||
│ ├── bench_no_gpu.json # Sans GPU
|
||||
│ └── bench_short.json # Mode court
|
||||
│
|
||||
├── docker-compose.yml # Orchestration Docker
|
||||
├── .env.example # Exemple variables d'env
|
||||
├── .gitignore # Fichiers ignorés par Git
|
||||
├── install.sh # Script d'installation
|
||||
├── STRUCTURE.md # Ce fichier
|
||||
└── README.md # Documentation principale
|
||||
|
||||
├── 01_vision_fonctionnelle.md # Spécifications (existants)
|
||||
├── 02_model_donnees.md
|
||||
├── 03_api_backend.md
|
||||
├── 04_bench_script_client.md
|
||||
├── 05_webui_design.md
|
||||
├── 06_backend_architecture.md
|
||||
├── 08_installation_bootstrap.md
|
||||
├── 09_tests_qualite.md
|
||||
└── 10_roadmap_evolutions.md
|
||||
```
|
||||
|
||||
## Description des composants
|
||||
|
||||
### Backend (Python/FastAPI)
|
||||
- **Port** : 8007
|
||||
- **Base de données** : SQLite (`backend/data/data.db`)
|
||||
- **Auth** : Token Bearer simple
|
||||
- **Upload** : Documents stockés dans `uploads/`
|
||||
|
||||
### Frontend (HTML/CSS/JS)
|
||||
- **Port** : 8087 (via nginx)
|
||||
- **Style** : Monokai dark theme
|
||||
- **Framework** : Vanilla JS (pas de framework lourd)
|
||||
|
||||
### Script client (Bash)
|
||||
- **Nom** : `bench.sh`
|
||||
- **OS cibles** : Debian, Ubuntu, Proxmox
|
||||
- **Outils** : sysbench, fio, iperf3, dmidecode, lscpu, smartctl
|
||||
|
||||
### Docker
|
||||
- **2 services** :
|
||||
- `backend` : FastAPI + Uvicorn
|
||||
- `frontend` : nginx servant les fichiers statiques
|
||||
|
||||
## Flux de données
|
||||
|
||||
```
|
||||
[Machine cliente]
|
||||
│ exécute bench.sh
|
||||
↓
|
||||
[Collecte hardware + Benchmarks]
|
||||
│ génère JSON
|
||||
↓
|
||||
[POST /api/benchmark]
|
||||
│ avec token Bearer
|
||||
↓
|
||||
[Backend FastAPI]
|
||||
│ valide + stocke SQLite
|
||||
↓
|
||||
[SQLite DB]
|
||||
│ devices, hardware_snapshots, benchmarks
|
||||
↓
|
||||
[Frontend]
|
||||
│ GET /api/devices, /api/benchmarks
|
||||
↓
|
||||
[Dashboard web]
|
||||
│ affiche classement + détails
|
||||
```
|
||||
|
||||
## Prochaines étapes
|
||||
|
||||
1. ✅ Arborescence créée
|
||||
2. ⏳ Développement frontend
|
||||
3. ⏳ Développement backend
|
||||
4. ⏳ Script bench.sh
|
||||
5. ⏳ Configuration Docker
|
||||
6. ⏳ Script d'installation
|
||||
Reference in New Issue
Block a user