diff --git a/Livrables/SUIVI-PROJET.md b/Livrables/SUIVI-PROJET.md index 1ded01e..666ffdf 100644 --- a/Livrables/SUIVI-PROJET.md +++ b/Livrables/SUIVI-PROJET.md @@ -80,7 +80,8 @@ | `docs/UML-DiagrammeClasses.md` | Explication du diagramme de classes | ⏳ | | `docs/UML-CasUtilisation.md` | Explication des cas d'utilisation | ⏳ | | `docs/Architecture-API.md` | Documentation complète des endpoints | ✅ | -| `docs/Guide-Deploiement.md` | Guide Docker + déploiement local | ⏳ | +| `docs/Guide-Installation-Windows.md` | Guide installation Docker sur Windows | ✅ | +| `docs/Guide-Deploiement.md` | Guide Docker + déploiement serveur Linux | ⏳ | | `docs/Guide-Tests-Postman.md` | Collection Postman + scénarios de test | ✅ | --- diff --git a/Livrables/docs/Guide-Installation-Windows.md b/Livrables/docs/Guide-Installation-Windows.md new file mode 100644 index 0000000..4da040e --- /dev/null +++ b/Livrables/docs/Guide-Installation-Windows.md @@ -0,0 +1,281 @@ +# Guide d'Installation — ERP Rayhan sur Windows +**PFE Ali Guennari — SUARL Rayhan** + +--- + +## Prérequis + +Avant de commencer, assure-toi d'avoir : +- Windows 10 version 1903+ ou Windows 11 +- Un compte administrateur sur le PC +- Une connexion Internet + +--- + +## Étape 1 — Installer Docker Desktop + +### 1.1 Télécharger Docker Desktop + +Rends-toi sur le site officiel de Docker et télécharge **Docker Desktop for Windows** : +``` +https://www.docker.com/products/docker-desktop/ +``` + +Clique sur **"Download for Windows"**. + +### 1.2 Activer la virtualisation dans le BIOS + +Docker nécessite la virtualisation matérielle. Pour vérifier qu'elle est activée : +1. Ouvre le **Gestionnaire des tâches** (Ctrl + Shift + Échap) +2. Onglet **Performance** → **CPU** +3. Vérifie que **Virtualisation : Activée** apparaît en bas + +Si elle est désactivée, il faut l'activer dans le BIOS (redémarrer → appuyer sur F2/F12/Suppr selon le PC). + +### 1.3 Activer WSL 2 (Windows Subsystem for Linux) + +Ouvre **PowerShell en tant qu'administrateur** et exécute : + +```powershell +wsl --install +``` + +Redémarre le PC si demandé. + +### 1.4 Installer Docker Desktop + +1. Lance le fichier `Docker Desktop Installer.exe` téléchargé +2. Laisse les options par défaut (WSL 2 coché) +3. Clique **OK** puis **Close and restart** +4. Après redémarrage, Docker Desktop se lance automatiquement +5. Accepte les conditions d'utilisation si demandé + +**Vérification :** Ouvre un terminal (PowerShell ou CMD) et tape : +```cmd +docker --version +docker compose version +``` +Tu dois voir quelque chose comme : `Docker version 26.x.x` + +--- + +## Étape 2 — Récupérer le Projet + +### Option A — Télécharger depuis Gitea (recommandé) + +Ouvre PowerShell et exécute : + +```powershell +# Créer un dossier de travail +mkdir C:\rayhan-erp +cd C:\rayhan-erp + +# Télécharger l'archive du projet +Invoke-WebRequest -Uri "https://gitea.bolbol.tn/bolbol/rayhan-erp/archive/main.zip" -OutFile "rayhan-erp.zip" + +# Extraire l'archive +Expand-Archive -Path "rayhan-erp.zip" -DestinationPath "." + +# Se placer dans le dossier +cd rayhan-erp +``` + +### Option B — Cloner avec Git (si Git est installé) + +```cmd +git clone https://gitea.bolbol.tn/bolbol/rayhan-erp.git +cd rayhan-erp +``` + +> Git pour Windows : https://git-scm.com/download/win + +--- + +## Étape 3 — Lancer l'Application + +### 3.1 Démarrer Docker Desktop + +Vérifie que Docker Desktop est lancé (icône de baleine dans la barre des tâches en bas à droite). + +### 3.2 Lancer les conteneurs + +Dans PowerShell, depuis le dossier `rayhan-erp` : + +```powershell +docker compose up -d --build +``` + +> La première fois, cette commande prend **5 à 10 minutes** car elle : +> - Télécharge l'image MySQL 8 +> - Télécharge l'image Maven + Java 17 +> - Compile le projet Spring Boot +> - Crée les conteneurs + +### 3.3 Vérifier que les conteneurs tournent + +```powershell +docker ps +``` + +Tu dois voir deux conteneurs en état `Up` : +``` +CONTAINER ID IMAGE STATUS +xxxxx rayhan-erp-backend Up X seconds +xxxxx mysql:8.0 Up X seconds (healthy) +``` + +--- + +## Étape 4 — Tester l'API + +### 4.1 Vérifier que l'API répond + +Ouvre un navigateur et va sur : +``` +http://localhost:8090/api/auth/signin +``` +Tu verras une erreur 401 (normal, une connexion est requise). + +### 4.2 Se connecter (obtenir un token JWT) + +Ouvre PowerShell et exécute : + +```powershell +$body = '{"username":"admin","password":"Rayhan2024!"}' +Invoke-RestMethod -Uri "http://localhost:8090/api/auth/signin" -Method POST -Body $body -ContentType "application/json" +``` + +**Réponse attendue :** +```json +{ + "token": "eyJhbGciOiJIUzUxMiJ9...", + "type": "Bearer", + "username": "admin", + "roles": ["ROLE_PDG"] +} +``` + +### 4.3 Tester avec Postman (recommandé) + +Télécharge Postman : https://www.postman.com/downloads/ + +Configure l'environnement : +- `baseUrl` = `http://localhost:8090` +- Consulte le fichier `Livrables/docs/Guide-Tests-Postman.md` pour tous les scénarios de test + +--- + +## Étape 5 — Accès à la Base de Données (optionnel) + +Pour accéder directement à MySQL depuis le PC Windows, utilise **MySQL Workbench** ou **DBeaver** : + +``` +Host : localhost +Port : 3307 +Database : rayhan_erp_db +Username : root +Password : rayhan_erp_2024 +``` + +> MySQL Workbench : https://dev.mysql.com/downloads/workbench/ + +**Note :** Sur le serveur de production (192.168.100.33), le port MySQL n'est pas exposé à l'extérieur par mesure de sécurité. + +--- + +## Commandes Docker Utiles + +```powershell +# Démarrer les conteneurs (sans rebuild) +docker compose up -d + +# Arrêter les conteneurs +docker compose down + +# Rebuild après modification du code +docker compose up -d --build + +# Voir les logs de l'API en temps réel +docker logs rayhan-backend -f + +# Voir les logs MySQL +docker logs rayhan-mysql -f + +# Redémarrer uniquement le backend +docker restart rayhan-backend + +# Accéder au shell MySQL +docker exec -it rayhan-mysql mysql -u root -prayhan_erp_2024 rayhan_erp_db +``` + +--- + +## Résolution des Problèmes Fréquents + +### Problème : "Port already in use" (port 8090 occupé) + +Un autre programme utilise le port 8090. Solutions : +```powershell +# Trouver ce qui utilise le port +netstat -ano | findstr :8090 + +# Modifier le port dans docker-compose.yml +# Changer "8090:8080" par "8091:8080" par exemple +``` + +### Problème : Docker ne démarre pas (WSL 2 non activé) + +```powershell +# En PowerShell administrateur +wsl --install +wsl --set-default-version 2 +``` + +Puis redémarre et relance Docker Desktop. + +### Problème : "Cannot connect to the Docker daemon" + +Docker Desktop n'est pas lancé. Cherche "Docker Desktop" dans le menu Démarrer et lance-le. Attends que l'icône de baleine apparaisse dans la barre des tâches. + +### Problème : Build échoue (erreur Maven) + +```powershell +# Nettoyer le cache Docker et reconstruire +docker compose down +docker system prune -f +docker compose up -d --build +``` + +--- + +## Architecture du Déploiement + +``` +PC Windows +│ +├── Docker Desktop (moteur de conteneurs) +│ ├── rayhan-mysql (conteneur MySQL 8) +│ │ └── Base de données : rayhan_erp_db +│ │ Port interne : 3306 → Port Windows : 3307 +│ │ +│ └── rayhan-backend (conteneur Spring Boot) +│ └── API REST Java +│ Port interne : 8080 → Port Windows : 8090 +│ +└── Application Flutter (client) + └── Se connecte à http://localhost:8090 +``` + +--- + +## Informations de Connexion par Défaut + +| Paramètre | Valeur | +|-----------|--------| +| URL API | `http://localhost:8090` | +| Utilisateur admin | `admin` | +| Mot de passe admin | `Rayhan2024!` | +| Rôle | `ROLE_PDG` (accès complet) | +| DB Host | `localhost:3307` | +| DB Name | `rayhan_erp_db` | +| DB Password | `rayhan_erp_2024` |