docs: mise a jour README pour la version Rust
Instructions de compilation (locale + cross-compilation Windows), deploiement, stack technique, migration depuis Python. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
89
README.md
89
README.md
@@ -4,6 +4,8 @@ Outil de surveillance systeme avec interface web securisee.
|
||||
Surveille CPU, RAM, disques et processus specifiques (JVM, Nginx, Amadea Web 8 x64).
|
||||
Envoie des alertes email lorsque les seuils configures sont depasses.
|
||||
|
||||
**Binaire natif Rust** — aucune dependance runtime, ~6 Mo.
|
||||
|
||||
---
|
||||
|
||||
## Fonctionnalites
|
||||
@@ -31,9 +33,11 @@ Envoie des alertes email lorsque les seuils configures sont depasses.
|
||||
|
||||
### Etapes
|
||||
|
||||
1. **Dezipper** `supervision_portable.zip` dans un dossier, par exemple :
|
||||
1. **Copier** les fichiers suivants dans un dossier, par exemple `C:\supervision\` :
|
||||
```
|
||||
C:\supervision\
|
||||
supervision.exe
|
||||
templates\ (dossier complet)
|
||||
static\ (dossier complet)
|
||||
```
|
||||
|
||||
2. **Lancer** l'executable :
|
||||
@@ -56,6 +60,8 @@ Envoie des alertes email lorsque les seuils configures sont depasses.
|
||||
|
||||
7. **Ajuster les seuils** si necessaire (valeurs par defaut : CPU 90%, RAM 85%, Disque 90%)
|
||||
|
||||
> Le dossier `data\` est cree automatiquement au premier lancement avec la configuration par defaut.
|
||||
|
||||
---
|
||||
|
||||
## Acces distant
|
||||
@@ -98,34 +104,54 @@ Pour que Supervision demarre automatiquement avec Windows, utiliser [NSSM](https
|
||||
|
||||
---
|
||||
|
||||
## Installation depuis les sources (developpement)
|
||||
## Compilation depuis les sources
|
||||
|
||||
### Pre-requis
|
||||
|
||||
- Python 3.10 ou superieur
|
||||
- [Rust](https://rustup.rs/) 1.75 ou superieur
|
||||
|
||||
### Etapes
|
||||
### Compiler pour la machine locale (Linux/Windows)
|
||||
|
||||
1. Creer l'environnement virtuel et installer les dependances :
|
||||
```cmd
|
||||
cd C:\supervision
|
||||
python -m venv .venv
|
||||
.venv\Scripts\pip.exe install -r requirements.txt
|
||||
```bash
|
||||
cargo build --release
|
||||
```
|
||||
|
||||
2. Lancer :
|
||||
```cmd
|
||||
.venv\Scripts\python.exe app.py
|
||||
L'executable est genere dans `target/release/supervision` (Linux) ou `target\release\supervision.exe` (Windows).
|
||||
|
||||
### Cross-compiler pour Windows depuis Linux
|
||||
|
||||
```bash
|
||||
# Installation (une seule fois)
|
||||
rustup target add x86_64-pc-windows-gnu
|
||||
sudo apt install gcc-mingw-w64-x86-64
|
||||
|
||||
# Compilation
|
||||
cargo build --release --target x86_64-pc-windows-gnu
|
||||
```
|
||||
|
||||
### Compiler en executable
|
||||
L'executable Windows est genere dans `target/x86_64-pc-windows-gnu/release/supervision.exe`.
|
||||
|
||||
```cmd
|
||||
.venv\Scripts\pip.exe install pyinstaller
|
||||
.venv\Scripts\pyinstaller.exe --name supervision --onedir --add-data "templates;templates" --add-data "static;static" --hidden-import flask --hidden-import flask_login --hidden-import flask_limiter --hidden-import psutil --noconfirm app.py
|
||||
### Lancer en mode developpement
|
||||
|
||||
```bash
|
||||
cargo run
|
||||
```
|
||||
|
||||
L'executable est genere dans `dist\supervision\`.
|
||||
L'application demarre sur http://localhost:5000 avec rechargement des templates depuis le dossier `templates/`.
|
||||
|
||||
---
|
||||
|
||||
## Stack technique
|
||||
|
||||
| Composant | Crate Rust | Remplace (Python) |
|
||||
|-----------|-----------|-------------------|
|
||||
| Serveur web | axum | Flask |
|
||||
| Metriques systeme | sysinfo | psutil |
|
||||
| Templates HTML | tera (Jinja2-compatible) | Jinja2 |
|
||||
| Envoi email | lettre | smtplib |
|
||||
| Hashing mot de passe | argon2 | werkzeug (PBKDF2) |
|
||||
| Serialisation JSON | serde + serde_json | json |
|
||||
| Async runtime | tokio | threading |
|
||||
|
||||
---
|
||||
|
||||
@@ -134,16 +160,25 @@ L'executable est genere dans `dist\supervision\`.
|
||||
```
|
||||
supervision\
|
||||
├── supervision.exe # Executable principal
|
||||
├── _internal\ # Dependances Python embarquees
|
||||
├── Cargo.toml # Dependances Rust
|
||||
├── src\
|
||||
│ ├── main.rs # Serveur web, routes, sessions
|
||||
│ ├── config.rs # Gestion configuration JSON
|
||||
│ ├── monitor.rs # Collecte metriques systeme
|
||||
│ └── alerter.rs # Envoi alertes email SMTP
|
||||
├── templates\ # Pages HTML de l'interface
|
||||
├── static\ # CSS
|
||||
│ ├── base.html
|
||||
│ ├── login.html
|
||||
│ ├── dashboard.html
|
||||
│ ├── settings.html
|
||||
│ └── alerts.html
|
||||
├── static\
|
||||
│ └── style.css # Styles CSS
|
||||
└── data\ # (cree au 1er lancement)
|
||||
├── config.json # Configuration (seuils, SMTP, processus)
|
||||
└── alerts.json # Historique des alertes
|
||||
```
|
||||
|
||||
> **Important** : ne pas supprimer le dossier `_internal\`, il est necessaire au fonctionnement.
|
||||
|
||||
---
|
||||
|
||||
## Configuration par defaut
|
||||
@@ -169,6 +204,14 @@ Tous les parametres sont modifiables depuis l'interface web.
|
||||
|
||||
---
|
||||
|
||||
## Migration depuis la version Python
|
||||
|
||||
Si un fichier `data/config.json` existant contient un hash de mot de passe au format Python (werkzeug/PBKDF2), la version Rust le detecte automatiquement et reinitialise le mot de passe a `admin`. Un message d'avertissement s'affiche dans la console.
|
||||
|
||||
Les autres parametres (seuils, SMTP, processus) sont conserves.
|
||||
|
||||
---
|
||||
|
||||
## Depannage
|
||||
|
||||
| Probleme | Solution |
|
||||
@@ -177,4 +220,4 @@ Tous les parametres sont modifiables depuis l'interface web.
|
||||
| Impossible de se connecter a distance | Verifier la regle firewall (port 5000 TCP entrant) |
|
||||
| Pas d'email recu | Verifier la configuration SMTP et utiliser le bouton "Envoyer un email de test" |
|
||||
| Mot de passe oublie | Supprimer `data\config.json` et relancer (reinitialise a admin/admin) |
|
||||
| L'executable ne se lance pas | Verifier que le dossier `_internal\` est present a cote de `supervision.exe` |
|
||||
| L'executable ne se lance pas | Verifier que les dossiers `templates\` et `static\` sont a cote de l'executable |
|
||||
|
||||
Reference in New Issue
Block a user