282 lines
6.6 KiB
Markdown
282 lines
6.6 KiB
Markdown
# 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` |
|