Dom 0ac8a2ecfa 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>
2026-04-13 15:58:35 +02:00

Supervision — Monitoring Systeme Windows

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

  • Dashboard temps reel : CPU, RAM, disques, processus surveilles (rafraichissement auto)
  • Alertes email : envoi automatique quand un seuil est depasse, avec cooldown anti-spam
  • Configuration complete via l'interface :
    • Seuils d'alerte (CPU, RAM, disque)
    • Frequence de verification (en minutes)
    • Serveur SMTP + test d'envoi integre
    • Ajout/suppression de processus a surveiller
    • Port de l'application
    • Mot de passe administrateur
  • Securite : authentification par login/mot de passe, rate limiting anti-bruteforce, en-tetes HTTP securises
  • Historique des alertes consultable dans l'interface

Installation rapide (executable)

Pre-requis

  • Windows 10/11 ou Windows Server 2016+
  • Acces administrateur (pour le firewall et l'installation en service)

Etapes

  1. Copier les fichiers suivants dans un dossier, par exemple C:\supervision\ :

    supervision.exe
    templates\        (dossier complet)
    static\           (dossier complet)
    
  2. Lancer l'executable :

    C:\supervision\supervision.exe
    
  3. Ouvrir le navigateur a l'adresse :

    http://localhost:5000
    
  4. Se connecter avec les identifiants par defaut :

    • Identifiant : admin
    • Mot de passe : admin
  5. Changer le mot de passe immediatement dans Configuration > Mot de passe administrateur

  6. Configurer le SMTP dans Configuration > Configuration SMTP, puis cliquer sur "Envoyer un email de test" pour valider

  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

Pour acceder a l'interface depuis une autre machine :

  1. Ouvrir le port dans le firewall Windows (PowerShell en administrateur) :

    New-NetFirewallRule -DisplayName "Supervision Monitoring" -Direction Inbound -LocalPort 5000 -Protocol TCP -Action Allow
    
  2. Acceder via : http://<adresse-ip-du-serveur>:5000

Recommandation : pour un acces depuis internet, placer l'application derriere un reverse proxy (IIS, Nginx) avec HTTPS.


Installation en tant que service Windows

Pour que Supervision demarre automatiquement avec Windows, utiliser NSSM :

  1. Telecharger NSSM et le placer dans le PATH

  2. Executer en administrateur :

    nssm install Supervision "C:\supervision\supervision.exe"
    nssm set Supervision AppDirectory "C:\supervision"
    nssm set Supervision Description "Monitoring systeme - Supervision"
    nssm set Supervision Start SERVICE_AUTO_START
    nssm start Supervision
    
  3. Gestion du service :

    nssm start Supervision
    nssm stop Supervision
    nssm restart Supervision
    nssm remove Supervision confirm
    

Compilation depuis les sources

Pre-requis

  • Rust 1.75 ou superieur

Compiler pour la machine locale (Linux/Windows)

cargo build --release

L'executable est genere dans target/release/supervision (Linux) ou target\release\supervision.exe (Windows).

Cross-compiler pour Windows depuis Linux

# 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

L'executable Windows est genere dans target/x86_64-pc-windows-gnu/release/supervision.exe.

Lancer en mode developpement

cargo run

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

Structure des fichiers

supervision\
├── supervision.exe      # Executable principal
├── 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
│   ├── 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

Configuration par defaut

Parametre Valeur par defaut
Port 5000
Intervalle de check 1 minute
Cooldown entre alertes 30 minutes
Seuil CPU 90%
Seuil RAM 85%
Seuil Disque 90%

Processus surveilles par defaut

Nom Pattern de recherche Alerte si arrete
JVM java Oui
Nginx nginx Non (desactive)
Amadea Web 8 x64 amadea Oui

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
"Le port 5000 est deja utilise" Changer le port dans data\config.json ou fermer le programme qui occupe le port
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 les dossiers templates\ et static\ sont a cote de l'executable
Description
Monitoring systeme Windows — CPU, RAM, disques, processus. Interface web securisee + alertes email.
Readme 679 MiB
VersionRust Latest
2026-04-27 16:40:46 +02:00
Languages
Rust 42.2%
HTML 29.3%
Python 25%
Batchfile 2.4%
CSS 0.8%
Other 0.3%