🛠️ Installation et Configuration
Ce guide vous accompagne dans l'installation complète de FreeTrade, de la configuration initiale au démarrage des services.
📋 Prérequis système​
Logiciels requis​
- Node.js 18.0+ (Télécharger)
- Docker et Docker Compose (Télécharger)
- Git pour cloner le projet
- MySQL 8.0 (via Docker ou installation locale)
Configuration système recommandée​
- RAM : 8 GB minimum, 16 GB recommandé
- CPU : 4 cœurs minimum
- Stockage : 20 GB d'espace libre
- OS : Linux, macOS, ou Windows avec WSL2
📦 Installation du projet​
1. Cloner le repository​
# Cloner le projet principal
git clone https://github.com/OFR/freetrade-docs.git
cd freetrade-docs
# Cloner les services (si séparés)
git clone https://github.com/OFR/api-gateway.git ../api-gateway
git clone https://github.com/OFR/auth-service.git ../auth-service
git clone https://github.com/OFR/admin-service.git ../admin-service
git clone https://github.com/OFR/trade-service.git ../trade-service
git clone https://github.com/OFR/organization-service.git ../organization-service
git clone https://github.com/OFR/storage-service.git ../storage-service
2. Configuration de l'environnement​
# Copier le fichier d'exemple
cp .env.example .env
# Éditer la configuration
nano .env # ou votre éditeur préféré
3. Configuration des variables d'environnement​
# Base de données
DATABASE_URL="mysql://freetrade:root@admin@freetrade-db:3340/free-trade"
DB_ROOT_PASSWORD=root@OFR
DB_USER_PASSWORD=root@admin
DB_NAME="free-trade"
DB_USER=freetrade
# NATS Cluster
NATS_URLS=nats://nats-server1:4232,nats://nats-server2:4233,nats://nats-server3:4234
# JWT Configuration
JWT_SECRET=8f9a12b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9
JWT_EXPIRATION_TIME=3600
# Chemins des services
ADMIN_SERVICE_PATH="../admin-service"
TRADE_SERVICE_PATH="../trade-service"
AUTH_SERVICE_PATH="../auth-service"
ORGANIZATION_SERVICE_PATH="../organization-service"
API_GATEWAY_PATH="../api-gateway"
STORAGE_SERVICE_PATH="../storage-service"
# Ports
API_GATEWAY_PORT=3004
🚀 Démarrage des services​
Option 1 : Démarrage automatique (Recommandé)​
# Démarrer tout l'écosystème
./start-services.sh -a
# Vérifier le statut
./start-services.sh -s
Option 2 : Démarrage manuel étape par étape​
1. Infrastructure (obligatoire en premier)​
# Base de données et NATS
docker-compose -f db-docker-compose.yml up -d
docker-compose -f nats-docker-compose.yml up -d
# Attendre que les services soient prĂŞts (30 secondes)
sleep 30
2. Services métier​
# Services d'authentification et d'administration
docker-compose -f auth-docker-compose.yml up --build -d
docker-compose -f admin-docker-compose.yml up --build -d
# Services de commerce et d'organisation
docker-compose -f trade-docker-compose.yml up --build -d
docker-compose -f organization-docker-compose.yml up --build -d
docker-compose -f storage-docker-compose.yml up --build -d
3. API Gateway (point d'entrée)​
# Démarrer l'API Gateway
docker-compose -f gateway-docker-compose.yml up --build -d
🔍 Vérification de l'installation​
1. Vérifier les services Docker​
# Lister tous les containers
docker ps
# Vérifier les logs
docker-compose -f gateway-docker-compose.yml logs -f
2. Tester les endpoints​
Test de santé de l'API Gateway​
curl http://localhost:3004/health
Test d'authentification​
curl -X POST http://localhost:3004/auth/login \
-H "Content-Type: application/json" \
-d '{
"username": "admin@example.com",
"password": "password123"
}'
3. Accéder aux interfaces​
- API Gateway : http://localhost:3004
- Adminer (DB Admin) : http://localhost:8080
- Serveur :
freetrade-db:3340 - Utilisateur :
freetrade - Mot de passe :
root@admin - Base :
free-trade
- Serveur :
🛠️ Configuration avancée​
Personnalisation des ports​
Modifiez le fichier .env pour changer les ports :
API_GATEWAY_PORT=3005 # Au lieu de 3004
DB_PORT=3341 # Au lieu de 3340
ADMINER_PORT=8081 # Au lieu de 8080
Configuration SSL/HTTPS​
Pour la production, configurez un reverse proxy Nginx :
server {
listen 443 ssl;
server_name api.freetrade.cm;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;
location / {
proxy_pass http://localhost:3004;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Optimisation des performances​
Configuration Redis pour le cache​
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=your_redis_password
CACHE_TTL=300 # 5 minutes
Configuration NATS avancée​
NATS_MAX_RECONNECT_ATTEMPTS=10
NATS_RECONNECT_TIME_WAIT=2000
NATS_MAX_PAYLOAD=1048576
🔧 Résolution des problèmes courants​
Erreur package-lock.json​
# Synchroniser les package-lock.json
./fix-package-locks.sh
Services qui ne démarrent pas​
# Nettoyer et redémarrer
docker system prune -f
./start-services.sh -a
Problèmes de base de données​
# Réinitialiser la base de données
docker-compose -f db-docker-compose.yml down -v
docker-compose -f db-docker-compose.yml up -d
Problèmes de réseau Docker​
# Recréer le réseau
docker network prune
docker-compose down
docker-compose up -d
✅ Validation de l'installation​
Checklist de vérification​
- Tous les containers Docker sont en cours d'exécution
- L'API Gateway répond sur le port 3004
- La base de données est accessible via Adminer
- Les services NATS sont connectés
- L'authentification fonctionne
- Les logs ne montrent pas d'erreurs critiques
Tests automatisés​
# Exécuter les tests de validation
./test-docker-setup.sh
# Tests d'intégration
npm run test:integration
Prochaine étape : Guide de démarrage rapide