docs: add Windows Docker installation guide
This commit is contained in:
parent
d1e3ffe12a
commit
c2092d72d6
|
|
@ -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 | ✅ |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
||||||
|
|
@ -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` |
|
||||||
Loading…
Reference in New Issue