diff --git a/src/config/env.js b/src/config/env.js index 5c6af416..f25f67e6 100644 --- a/src/config/env.js +++ b/src/config/env.js @@ -3,8 +3,31 @@ * Ce fichier doit être importé en premier dans l'application */ import dotenv from 'dotenv'; +import path from 'path'; +import { fileURLToPath } from 'url'; -// Charger les variables d'environnement sans écraser celles fournies par Docker/système +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const rootDir = path.resolve(__dirname, '../..'); + +// Déterminer le fichier .env à charger selon NODE_ENV +const nodeEnv = process.env.NODE_ENV || 'development'; +let envFile = '.env'; + +if (nodeEnv === 'production') { + envFile = '.env.production'; +} else if (nodeEnv === 'preproduction') { + envFile = '.env.preprod'; +} else if (nodeEnv === 'development') { + envFile = '.env.dev'; +} + +// Charger d'abord le fichier spécifique à l'environnement +const envPath = path.join(rootDir, envFile); +console.log(`📁 Chargement config: ${envFile} (NODE_ENV=${nodeEnv})`); +dotenv.config({ path: envPath, override: false }); + +// Charger aussi .env comme fallback (sans écraser) dotenv.config({ override: false }); export default { diff --git a/src/services/email.service.js b/src/services/email.service.js index ccffad25..bb71f379 100644 --- a/src/services/email.service.js +++ b/src/services/email.service.js @@ -1,10 +1,8 @@ /** * Service d'envoi d'emails avec Nodemailer + * Note: Les variables d'environnement sont chargées par src/config/env.js */ import nodemailer from 'nodemailer'; -import dotenv from 'dotenv'; - -dotenv.config(); // Configuration du transporteur email (créé à la demande pour éviter les problèmes de chargement) let transporter = null;