Änderungen: - Hinzufügung von Protokollausgaben zur Anzeige des Ladeprozesses der .env-Datei, einschließlich Existenz- und Lesbarkeitsprüfungen. - Detaillierte Fehlermeldungen bei Problemen mit dem Laden der .env-Datei. Diese Anpassungen verbessern die Transparenz und erleichtern die Fehlersuche beim Laden von Umgebungsvariablen.
47 lines
1.7 KiB
JavaScript
47 lines
1.7 KiB
JavaScript
// 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 {};
|