✨ Features: - Backend FastAPI complete (25 Python files) - 5 SQLAlchemy models (Device, HardwareSnapshot, Benchmark, Link, Document) - Pydantic schemas for validation - 4 API routers (benchmark, devices, links, docs) - Authentication with Bearer token - Automatic score calculation - File upload support - Frontend web interface (13 files) - 4 HTML pages (Dashboard, Devices, Device Detail, Settings) - 7 JavaScript modules - Monokai dark theme CSS - Responsive design - Complete CRUD operations - Client benchmark script (500+ lines Bash) - Hardware auto-detection - CPU, RAM, Disk, Network benchmarks - JSON payload generation - Robust error handling - Docker deployment - Optimized Dockerfile - docker-compose with 2 services - Persistent volumes - Environment variables - Documentation & Installation - Automated install.sh script - README, QUICKSTART, DEPLOYMENT guides - Complete API documentation - Project structure documentation 📊 Stats: - ~60 files created - ~5000 lines of code - Full MVP feature set implemented 🚀 Ready for production deployment! 🤖 Generated with Claude Code Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
193 lines
6.7 KiB
HTML
193 lines
6.7 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="fr">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>Settings - Linux BenchTools</title>
|
||
<link rel="stylesheet" href="css/main.css">
|
||
<link rel="stylesheet" href="css/components.css">
|
||
</head>
|
||
<body>
|
||
<!-- Header -->
|
||
<header class="header">
|
||
<div class="container">
|
||
<h1>🚀 Linux BenchTools</h1>
|
||
<p>Configuration</p>
|
||
|
||
<!-- Navigation -->
|
||
<nav class="nav">
|
||
<a href="index.html" class="nav-link">Dashboard</a>
|
||
<a href="devices.html" class="nav-link">Devices</a>
|
||
<a href="settings.html" class="nav-link active">Settings</a>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
|
||
<!-- Main Content -->
|
||
<main class="container">
|
||
<!-- Bench Script Configuration -->
|
||
<div class="card">
|
||
<div class="card-header">⚡ Configuration Benchmark Script</div>
|
||
<div class="card-body">
|
||
<div class="alert alert-info" style="margin-bottom: 1.5rem;">
|
||
Configurez les paramètres par défaut pour la génération de la commande bench.sh
|
||
</div>
|
||
|
||
<div class="form-group">
|
||
<label class="form-label">URL du backend</label>
|
||
<input
|
||
type="text"
|
||
id="backendUrl"
|
||
class="form-control"
|
||
placeholder="http://votre-serveur:8007"
|
||
value="http://localhost:8007"
|
||
>
|
||
<small style="color: var(--text-muted);">URL de l'API backend (accessible depuis les machines clientes)</small>
|
||
</div>
|
||
|
||
<div class="form-group">
|
||
<label class="form-label">Serveur iperf3 (optionnel)</label>
|
||
<input
|
||
type="text"
|
||
id="iperfServer"
|
||
class="form-control"
|
||
placeholder="10.0.0.10 ou nom-serveur"
|
||
>
|
||
<small style="color: var(--text-muted);">Adresse IP ou hostname du serveur iperf3 pour les tests réseau</small>
|
||
</div>
|
||
|
||
<div class="form-group">
|
||
<label class="form-label">Mode benchmark</label>
|
||
<select id="benchMode" class="form-control">
|
||
<option value="">Complet (tous les tests)</option>
|
||
<option value="--short">Court (tests rapides)</option>
|
||
</select>
|
||
</div>
|
||
|
||
<button class="btn btn-primary" onclick="generateBenchCommand()">Générer la commande</button>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Generated Command -->
|
||
<div class="card">
|
||
<div class="card-header">📋 Commande Générée</div>
|
||
<div class="card-body">
|
||
<p style="margin-bottom: 1rem; color: var(--text-secondary);">
|
||
Copiez cette commande et exécutez-la sur vos machines Linux :
|
||
</p>
|
||
<div class="code-block">
|
||
<button class="copy-btn" onclick="copyGeneratedCommand()">Copier</button>
|
||
<code id="generatedCommand">Veuillez configurer les paramètres ci-dessus</code>
|
||
</div>
|
||
|
||
<div style="margin-top: 1rem;">
|
||
<h4 style="color: var(--color-info); margin-bottom: 0.5rem;">Options supplémentaires :</h4>
|
||
<ul style="color: var(--text-secondary); margin-left: 1.5rem;">
|
||
<li><code>--device "nom-machine"</code> : Nom personnalisé du device (par défaut: hostname)</li>
|
||
<li><code>--skip-cpu</code> : Ignorer le test CPU</li>
|
||
<li><code>--skip-memory</code> : Ignorer le test mémoire</li>
|
||
<li><code>--skip-disk</code> : Ignorer le test disque</li>
|
||
<li><code>--skip-network</code> : Ignorer le test réseau</li>
|
||
<li><code>--skip-gpu</code> : Ignorer le test GPU</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- API Information -->
|
||
<div class="card">
|
||
<div class="card-header">🔑 Informations API</div>
|
||
<div class="card-body">
|
||
<div class="alert alert-warning">
|
||
⚠️ Le token API est confidentiel. Ne le partagez pas publiquement.
|
||
</div>
|
||
|
||
<div class="form-group">
|
||
<label class="form-label">API Token</label>
|
||
<div style="display: flex; gap: 0.5rem;">
|
||
<input
|
||
type="password"
|
||
id="apiToken"
|
||
class="form-control"
|
||
readonly
|
||
value="Chargement..."
|
||
>
|
||
<button class="btn btn-secondary" onclick="toggleTokenVisibility()">👁️ Afficher</button>
|
||
<button class="btn btn-secondary" onclick="copyToken()">📋 Copier</button>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="form-group">
|
||
<label class="form-label">Endpoint benchmark</label>
|
||
<input
|
||
type="text"
|
||
class="form-control"
|
||
readonly
|
||
value="POST /api/benchmark"
|
||
>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- System Information -->
|
||
<div class="card">
|
||
<div class="card-header">ℹ️ Informations Système</div>
|
||
<div class="card-body">
|
||
<div class="grid grid-2">
|
||
<div>
|
||
<strong>Version:</strong> 1.0.0 (MVP)
|
||
</div>
|
||
<div>
|
||
<strong>Backend:</strong> FastAPI + SQLite
|
||
</div>
|
||
<div>
|
||
<strong>Frontend:</strong> Vanilla JS
|
||
</div>
|
||
<div>
|
||
<strong>Script:</strong> bench.sh v1.0.0
|
||
</div>
|
||
</div>
|
||
|
||
<div style="margin-top: 1.5rem;">
|
||
<a href="https://gitea.maison43.duckdns.org/gilles/linux-benchtools" class="btn btn-secondary" target="_blank">
|
||
📚 Documentation
|
||
</a>
|
||
<a href="https://gitea.maison43.duckdns.org/gilles/linux-benchtools/issues" class="btn btn-secondary" target="_blank" style="margin-left: 0.5rem;">
|
||
🐛 Reporter un bug
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- About -->
|
||
<div class="card">
|
||
<div class="card-header">📖 À propos</div>
|
||
<div class="card-body">
|
||
<p style="color: var(--text-secondary);">
|
||
<strong>Linux BenchTools</strong> est une application self-hosted de benchmarking
|
||
et d'inventaire matériel pour machines Linux.
|
||
</p>
|
||
<p style="color: var(--text-secondary); margin-top: 0.5rem;">
|
||
Elle permet de recenser vos machines (physiques, VM, SBC), collecter automatiquement
|
||
les informations hardware, exécuter des benchmarks standardisés et afficher un
|
||
classement comparatif.
|
||
</p>
|
||
<p style="color: var(--text-muted); margin-top: 1rem; font-size: 0.85rem;">
|
||
Développé avec ❤️ pour l'infrastructure maison43
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</main>
|
||
|
||
<!-- Footer -->
|
||
<footer class="footer">
|
||
<p>© 2025 Linux BenchTools - Self-hosted benchmarking tool</p>
|
||
</footer>
|
||
|
||
<!-- Scripts -->
|
||
<script src="js/utils.js"></script>
|
||
<script src="js/api.js"></script>
|
||
<script src="js/settings.js"></script>
|
||
</body>
|
||
</html>
|