#!/bin/bash # Script de test pour vĂ©rifier la configuration des variables d'environnement set -e # Couleurs pour les logs RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color # Fonction de logging log() { echo -e "${BLUE}[$(date '+%Y-%m-%d %H:%M:%S')]${NC} $1" } error() { echo -e "${RED}[ERROR]${NC} $1" } success() { echo -e "${GREEN}[SUCCESS]${NC} $1" } warning() { echo -e "${YELLOW}[WARNING]${NC} $1" } log "đŸ§Ș TEST DE LA CONFIGURATION DES VARIABLES D'ENVIRONNEMENT" log "=======================================================" cd /home/debian/4NK_env/lecoffre_node # Test 1: VĂ©rification du fichier .env.master log "1. VĂ©rification du fichier .env.master..." if [ -f ".env.master" ]; then success "✅ Fichier .env.master existe" echo " Taille: $(wc -l < .env.master) lignes" echo " Variables SDK_RELAY: $(grep -c "^SDK_RELAY_" .env.master)" echo " Variables SIGNER: $(grep -c "^SIGNER_" .env.master)" echo " Variables VITE: $(grep -c "^VITE_" .env.master)" else error "❌ Fichier .env.master manquant" exit 1 fi # Test 2: VĂ©rification de la syntaxe docker-compose.yml log "2. VĂ©rification de la syntaxe docker-compose.yml..." if docker compose --env-file .env.master config --quiet; then success "✅ Syntaxe docker-compose.yml valide" else error "❌ Erreur de syntaxe dans docker-compose.yml" exit 1 fi # Test 3: VĂ©rification des fichiers .env supprimĂ©s log "3. VĂ©rification des fichiers .env supprimĂ©s..." missing_env_files=0 for project in sdk_relay sdk_signer sdk_storage ihm_client lecoffre-back-mini lecoffre-front; do if [ -f "../$project/.env" ]; then error "❌ Fichier .env existe encore dans $project" missing_env_files=$((missing_env_files + 1)) else success "✅ Fichier .env supprimĂ© de $project" fi done if [ $missing_env_files -eq 0 ]; then success "✅ Tous les fichiers .env ont Ă©tĂ© supprimĂ©s" else error "❌ $missing_env_files fichiers .env existent encore" exit 1 fi # Test 4: VĂ©rification des fichiers de configuration modifiĂ©s log "4. VĂ©rification des fichiers de configuration..." # Test sdk_relay config.rs if grep -q "std::env" ../sdk_relay/src/config.rs; then success "✅ sdk_relay/src/config.rs utilise std::env" else error "❌ sdk_relay/src/config.rs n'utilise pas std::env" fi # Test sdk_signer config.ts if ! grep -q "dotenv.config()" ../sdk_signer/src/config.ts; then success "✅ sdk_signer/src/config.ts ne charge plus dotenv" else error "❌ sdk_signer/src/config.ts charge encore dotenv" fi # Test 5: VĂ©rification des variables d'environnement dans docker-compose.yml log "5. VĂ©rification des variables d'environnement dans docker-compose.yml..." # Compter les services avec des variables d'environnement env_services=$(grep -c "environment:" docker-compose.yml) success "✅ $env_services services ont des variables d'environnement" # VĂ©rifier les variables critiques critical_vars=("SDK_RELAY_CORE_URL" "SIGNER_API_KEY" "VITE_JWT_SECRET_KEY") for var in "${critical_vars[@]}"; do if grep -q "\${$var}" docker-compose.yml; then success "✅ Variable $var rĂ©fĂ©rencĂ©e dans docker-compose.yml" else warning "⚠ Variable $var non rĂ©fĂ©rencĂ©e dans docker-compose.yml" fi done # Test 6: Test de chargement des variables log "6. Test de chargement des variables d'environnement..." source .env.master if [ -n "$SDK_RELAY_CORE_URL" ] && [ -n "$SIGNER_API_KEY" ] && [ -n "$VITE_JWT_SECRET_KEY" ]; then success "✅ Variables critiques chargĂ©es correctement" else error "❌ Erreur lors du chargement des variables" exit 1 fi log "🎯 RÉSUMÉ DES TESTS" log "==================" success "✅ Configuration des variables d'environnement validĂ©e" success "✅ Architecture centralisĂ©e opĂ©rationnelle" log "" log "📋 PROCHAINES ÉTAPES:" log "1. CrĂ©er le dĂ©pĂŽt 4NK_env sur git.4nkweb.com" log "2. Pousser le dĂ©pĂŽt: git push origin int-dev" log "3. Tester le dĂ©ploiement avec: docker compose --env-file .env.master up"