// Centralized environment loader import path from 'path'; import { fileURLToPath } from 'url'; import dotenv from 'dotenv'; import fs from 'fs'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); // Versuche zuerst Produktions-.env, dann lokale .env const productionEnvPath = '/opt/yourpart/backend/.env'; const localEnvPath = path.resolve(__dirname, '../.env'); let envPath = localEnvPath; // Fallback if (fs.existsSync(productionEnvPath)) { envPath = productionEnvPath; console.log('[env] Lade Produktions-.env:', productionEnvPath); } else { console.log('[env] Lade lokale .env:', localEnvPath); } // Lade .env-Datei console.log('[env] Versuche .env zu laden von:', envPath); console.log('[env] Datei existiert:', fs.existsSync(envPath)); console.log('[env] Datei lesbar:', fs.accessSync ? (() => { try { fs.accessSync(envPath, fs.constants.R_OK); return true; } catch { return false; } })() : 'unbekannt'); const result = dotenv.config({ path: envPath }); if (result.error) { console.warn('[env] Konnte .env nicht laden:', result.error.message); console.warn('[env] Fehler-Details:', result.error); } else { console.log('[env] .env erfolgreich geladen von:', envPath); console.log('[env] Geladene Variablen:', Object.keys(result.parsed || {})); } // Debug: Zeige Redis-Konfiguration console.log('[env] Redis-Konfiguration:'); console.log('[env] REDIS_HOST:', process.env.REDIS_HOST); console.log('[env] REDIS_PORT:', process.env.REDIS_PORT); console.log('[env] REDIS_PASSWORD:', process.env.REDIS_PASSWORD ? '***gesetzt***' : 'NICHT GESETZT'); console.log('[env] REDIS_URL:', process.env.REDIS_URL); if (!process.env.SECRET_KEY) { console.warn('[env] SECRET_KEY nicht gesetzt in .env'); } export {};