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).
|
Surveille CPU, RAM, disques et processus specifiques (JVM, Nginx, Amadea Web 8 x64).
|
||||||
Envoie des alertes email lorsque les seuils configures sont depasses.
|
Envoie des alertes email lorsque les seuils configures sont depasses.
|
||||||
|
|
||||||
|
**Binaire natif Rust** — aucune dependance runtime, ~6 Mo.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Fonctionnalites
|
## Fonctionnalites
|
||||||
@@ -31,9 +33,11 @@ Envoie des alertes email lorsque les seuils configures sont depasses.
|
|||||||
|
|
||||||
### Etapes
|
### 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 :
|
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%)
|
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
|
## 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
|
### 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 :
|
```bash
|
||||||
```cmd
|
cargo build --release
|
||||||
cd C:\supervision
|
|
||||||
python -m venv .venv
|
|
||||||
.venv\Scripts\pip.exe install -r requirements.txt
|
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Lancer :
|
L'executable est genere dans `target/release/supervision` (Linux) ou `target\release\supervision.exe` (Windows).
|
||||||
```cmd
|
|
||||||
.venv\Scripts\python.exe app.py
|
### 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
|
### Lancer en mode developpement
|
||||||
.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
|
```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\
|
||||||
├── supervision.exe # Executable principal
|
├── 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
|
├── 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)
|
└── data\ # (cree au 1er lancement)
|
||||||
├── config.json # Configuration (seuils, SMTP, processus)
|
├── config.json # Configuration (seuils, SMTP, processus)
|
||||||
└── alerts.json # Historique des alertes
|
└── alerts.json # Historique des alertes
|
||||||
```
|
```
|
||||||
|
|
||||||
> **Important** : ne pas supprimer le dossier `_internal\`, il est necessaire au fonctionnement.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Configuration par defaut
|
## 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
|
## Depannage
|
||||||
|
|
||||||
| Probleme | Solution |
|
| 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) |
|
| 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" |
|
| 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) |
|
| 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