# Linux BenchTools Application self-hosted de benchmarking et d'inventaire matériel pour machines Linux. ## 🎯 Objectifs Linux BenchTools permet de : - 📊 **Recenser vos machines** (physiques, VM, SBC type Raspberry Pi) - 🔍 **Collecter automatiquement** les informations matérielles (CPU, RAM, GPU, stockage, réseau) - ⚡ **Exécuter des benchmarks** standardisés (CPU, mémoire, disque, réseau, GPU) - 📈 **Calculer des scores** comparables entre machines - 🏆 **Afficher un classement** dans un dashboard web - 📝 **Gérer la documentation** (notices PDF, factures, liens constructeurs) - 🔌 **Inventorier les périphériques** (USB, Bluetooth, câbles, quincaillerie, etc.) - 📦 **Gérer les prêts** de matériel avec rappels automatiques - 📍 **Localiser physiquement** le matériel (avec QR codes) ## 🚀 Installation rapide ```bash # Cloner le dépôt git clone https://gitea.maison43.duckdns.org/gilles/linux-benchtools.git cd linux-benchtools # Lancer l'installation automatique ./install.sh # Ou avec Docker directement docker compose up -d ``` L'application sera accessible sur : - **Backend API** : http://localhost:8007 - **Frontend UI** : http://localhost:8087 ## 📦 Prérequis - Docker + Docker Compose - Système Linux (Debian/Ubuntu recommandé) ## 🔧 Utilisation ### 1. Exécuter un benchmark sur une machine Sur la machine à benchmarker, exécutez : ```bash curl -s https://gitea.maison43.duckdns.org/gilles/linux-benchtools/raw/branch/main/scripts/bench.sh \ | bash -s -- \ --server http://:8007/api/benchmark \ --token "VOTRE_TOKEN_API" \ --device "nom-machine" ``` Le token API est généré automatiquement lors de l'installation et disponible dans le fichier `.env`. ### 2. Consulter le dashboard Ouvrez votre navigateur sur `http://:8087` pour : - Voir le classement des machines par score global - Consulter les détails matériels de chaque machine - Visualiser l'historique des benchmarks - Uploader des documents (PDF, images) - Ajouter des liens constructeurs ### 3. Module Périphériques (nouveau !) Accédez à `http://:8087/peripherals.html` pour : - Inventorier tous vos périphériques (USB, Bluetooth, câbles, etc.) - Importer automatiquement depuis `sudo lsusb -v` - Gérer les prêts de matériel avec rappels - Organiser par localisations hiérarchiques - Générer des QR codes pour localiser le matériel - Uploader photos et documents 📖 **Documentation complète** : [README_PERIPHERALS.md](README_PERIPHERALS.md) ## 📚 Documentation ### Documentation principale - [Vision fonctionnelle](01_vision_fonctionnelle.md) - Objectifs et fonctionnalités - [Modèle de données](02_model_donnees.md) - Schéma SQLite - [API Backend](03_api_backend.md) - Endpoints REST - [Script client](04_bench_script_client.md) - bench.sh - [WebUI Design](05_webui_design.md) - Interface utilisateur - [Architecture](06_backend_architecture.md) - Backend FastAPI - [Installation](08_installation_bootstrap.md) - Guide d'installation - [Tests](09_tests_qualite.md) - Stratégie de tests - [Roadmap](10_roadmap_evolutions.md) - Évolutions futures - [Structure](STRUCTURE.md) - Arborescence du projet ### Module Périphériques - [README Périphériques](README_PERIPHERALS.md) - Guide complet du module - [Spécifications](docs/PERIPHERALS_MODULE_SPECIFICATION.md) - Spécifications détaillées - [Déploiement Docker](DOCKER_DEPLOYMENT.md) - Guide de déploiement Docker ## 🏗️ Architecture ``` ┌─────────────────┐ │ Machine Linux │ │ (bench.sh) │ └────────┬────────┘ │ POST JSON ↓ ┌─────────────────┐ ┌──────────────┐ │ Backend API │◄─────┤ Frontend │ │ FastAPI + SQL │ │ HTML/CSS/JS │ └─────────────────┘ └──────────────┘ ``` ## 🛠️ Stack technique - **Backend** : Python 3.11+, FastAPI, SQLAlchemy, SQLite - **Frontend** : HTML5, CSS3, JavaScript (Vanilla) - **Script client** : Bash - **Outils benchmark** : sysbench, fio, iperf3, glmark2 - **Déploiement** : Docker, docker-compose ## 📊 Scores calculés Pour chaque machine, l'application calcule : - **Score CPU** (sysbench) : événements/seconde - **Score Mémoire** (sysbench) : throughput MiB/s - **Score Disque** (fio) : read/write MB/s, IOPS - **Score Réseau** (iperf3) : débit up/down, latence - **Score GPU** (glmark2) : score graphique (optionnel) - **Score Global** : moyenne pondérée (CPU 30%, Mem 20%, Disk 25%, Net 15%, GPU 10%) ## 🎨 Interface Dashboard avec style **Monokai dark** : - Vue d'ensemble du parc machines - Classement par score global - Détail complet de chaque machine - Historique des benchmarks - Gestion des documents ## 🔐 Sécurité - Authentification par **token Bearer** pour l'API - Token généré automatiquement à l'installation - Accès local (LAN) par défaut - Intégration possible avec reverse proxy existant ## 🤝 Contribution Projet personnel self-hosted. Les suggestions et améliorations sont les bienvenues. ## 📝 License Usage personnel - Gilles @ maison43 ## 🗓️ Roadmap - ✅ Phase 1 : MVP (backend + frontend + bench.sh) - ⏳ Phase 2 : Améliorations UX (filtres, tri) - ⏳ Phase 3 : Graphiques d'historique (Chart.js) - ⏳ Phase 4 : Détection de régressions + alertes - ⏳ Phase 5 : Intégrations (Home Assistant, Prometheus) Voir [roadmap détaillée](10_roadmap_evolutions.md). --- **Linux BenchTools** - Benchmarking simplifié pour votre infrastructure Linux