Skip to main content

🛠️ 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​

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​

🛠️ 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