rayhan-erp/Livrables/docs/Guide-Installation-Windows.md

6.6 KiB

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 PerformanceCPU
  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 :

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 :

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 :

# 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é)

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 :

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

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 :

$body = '{"username":"admin","password":"Rayhan2024!"}'
Invoke-RestMethod -Uri "http://localhost:8090/api/auth/signin" -Method POST -Body $body -ContentType "application/json"

Réponse attendue :

{
  "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 (localhost), le port MySQL n'est pas exposé à l'extérieur par mesure de sécurité.


Commandes Docker Utiles

# 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 :

# 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é)

# 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)

# 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