docs: add Windows Docker installation guide

This commit is contained in:
Nabil Derouiche 2026-04-19 20:35:01 +01:00
parent d1e3ffe12a
commit c2092d72d6
2 changed files with 283 additions and 1 deletions

View File

@ -80,7 +80,8 @@
| `docs/UML-DiagrammeClasses.md` | Explication du diagramme de classes | ⏳ | | `docs/UML-DiagrammeClasses.md` | Explication du diagramme de classes | ⏳ |
| `docs/UML-CasUtilisation.md` | Explication des cas d'utilisation | ⏳ | | `docs/UML-CasUtilisation.md` | Explication des cas d'utilisation | ⏳ |
| `docs/Architecture-API.md` | Documentation complète des endpoints | ✅ | | `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 | ✅ | | `docs/Guide-Tests-Postman.md` | Collection Postman + scénarios de test | ✅ |
--- ---

View File

@ -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` |