From eb62e74f08d626db6fd0844b7e7113c0b01119b6 Mon Sep 17 00:00:00 2001 From: oussi Date: Tue, 7 Apr 2026 15:48:56 +0200 Subject: [PATCH] Ajout du Readme --- README.md | 135 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..6e8f8b0 --- /dev/null +++ b/README.md @@ -0,0 +1,135 @@ +# SuperVision + +Outil de supervision système avec interface web, écrit en Rust. Surveille CPU, RAM, disques et processus en temps réel, avec alertes par email et suivi des utilisateurs Amadea. + +## Fonctionnalités + +- **Dashboard temps réel** — CPU, RAM, disques, uptime, statut par code couleur (ok / warning / critical) +- **Surveillance de processus** — détection par pattern, alerte si processus arrêté, seuil mémoire configurable +- **Alertes email (SMTP)** — envoi automatique avec cooldown configurable pour éviter le spam +- **Suivi utilisateurs Amadea** — analyse des logs `awevents` et `isoft`, statuts actif/inactif/déconnecté, graphe d'activité horaire et hebdomadaire +- **Interface de configuration** — seuils, SMTP, processus, port, mot de passe admin, tout modifiable via l'UI +- **Service Windows** — installation en tant que service système avec démarrage automatique + +## Prérequis + +- [Rust](https://rustup.rs/) (édition 2021, Rust 1.75+) +- [Visual Studio Build Tools](https://visualstudio.microsoft.com/fr/visual-cpp-build-tools/) avec la charge de travail **Développement Desktop en C++** + +## Générer l'exécutable + +```cmd +cd SuperVisionRust +cargo build --release +``` + +L'exécutable est généré dans : `target\release\supervision.exe` + +## Déploiement + +Copier les éléments suivants dans un dossier de déploiement (ex: `C:\SuperVision\`) : + +``` +supervision.exe +static\ +templates\ +``` + +## Lancer l'application + +### En mode console (test / debug) + +```cmd +supervision.exe +``` + +L'interface web est accessible sur : **http://localhost:5000** + +Identifiants par défaut : `admin` / `admin` — à changer immédiatement dans les paramètres. + +### Changer le port + +Dans les paramètres de l'interface web (`/settings`), ou en éditant `data\config.json` avant le premier lancement : + +```json +{ + "port": 5000 +} +``` + +## Installation en tant que service Windows + +L'invite de commande doit être lancée **en tant qu'administrateur**. + +### Installer le service + +```cmd +supervision.exe install +``` + +Le service est enregistré sous le nom `Supervision` avec un démarrage automatique. + +### Démarrer / arrêter le service + +```cmd +sc start Supervision +sc stop Supervision +``` + +Ou via le Gestionnaire des services Windows (`services.msc`). + +### Désinstaller le service + +```cmd +sc stop Supervision +supervision.exe uninstall +``` + +## Structure des données + +Au premier lancement, un dossier `data\` est créé automatiquement dans le même répertoire que l'exécutable : + +``` +data\ + config.json # Configuration complète (port, seuils, SMTP, admin...) + alerts.json # Historique des alertes (500 entrées max) +``` + +## Configuration SMTP + +Dans l'interface web (`/settings`), section **SMTP** : + +| Champ | Description | +|-------|-------------| +| Serveur | Adresse du serveur SMTP (ex: `smtp.office365.com`) | +| Port | Généralement `587` (TLS) ou `465` (SSL) | +| Utilisateur | Adresse email d'envoi | +| Mot de passe | Mot de passe ou token d'application | +| Destinataires | Emails séparés par des virgules | + +Un bouton **Tester** permet de vérifier la configuration sans attendre une alerte réelle. + +## Surveillance des utilisateurs Amadea + +Renseigner le chemin des logs Amadea dans les paramètres (`/settings`) : + +``` +C:\ProgramData\ISoft\Amadea Web 8 x64\data\logs +``` + +SuperVision parse les fichiers `awevents_YY-MM-DD_*` et `isoft_YY-MM-DD_*` pour construire la liste des utilisateurs connectés et leur activité sur les dernières 24h. + +Les seuils de statut (actif / inactif / déconnecté) sont configurables en minutes. + +## Lancer les tests + +```cmd +cargo test +``` + +## Sécurité + +- Sessions HTTP sécurisées avec cookie de session +- Mots de passe stockés avec bcrypt +- En-têtes de sécurité HTTP automatiques (`X-Frame-Options`, `X-XSS-Protection`, `X-Content-Type-Options`) +- Toutes les routes (sauf `/login`) nécessitent une authentification