fix: Use direct process.env access for email configuration

Simplified email configuration to always use process.env directly instead of
Nuxt runtime config. This ensures Docker environment variables are properly
read at runtime rather than being baked in at build time.

Changes:
- Removed Nuxt runtime config dependency from getEmailConfig()
- Always read EMAIL_* environment variables directly from process.env
- Added comprehensive debug logging to diagnose configuration issues
- Updated nuxt.config.ts with better documentation of runtime config behavior

This ensures environment variables set in docker-compose.yml are properly
used by the application at runtime.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-05 18:16:35 -05:00
parent 47b4a14c4b
commit df92ebefb8
2 changed files with 28 additions and 29 deletions

View File

@@ -7,30 +7,24 @@ import type { H3Event } from 'h3'
* In production, environment variables are accessed directly for reliability
*/
function getEmailConfig(event?: H3Event) {
// Try to use runtime config if event is provided
if (event) {
try {
const config = useRuntimeConfig(event)
return {
emailHost: config.emailHost,
emailPort: config.emailPort,
emailUser: config.emailUser,
emailPassword: config.emailPassword,
emailFrom: config.emailFrom,
}
} catch (e) {
console.warn('[EMAIL] Failed to access runtime config, falling back to env vars')
}
}
// Fallback to direct environment variable access
return {
// In production, always use environment variables directly
// This ensures Docker runtime env vars are used, not build-time values
const config = {
emailHost: process.env.EMAIL_HOST || 'smtp.example.com',
emailPort: process.env.EMAIL_PORT || '587',
emailUser: process.env.EMAIL_USER || 'noreply@example.com',
emailPassword: process.env.EMAIL_PASSWORD || '',
emailFrom: process.env.EMAIL_FROM || 'New Life Christian Church <noreply@example.com>',
}
// Debug: Log what we're reading from environment
console.log('[EMAIL DEBUG] Reading from process.env:')
console.log('[EMAIL DEBUG] EMAIL_HOST env var:', process.env.EMAIL_HOST)
console.log('[EMAIL DEBUG] EMAIL_PORT env var:', process.env.EMAIL_PORT)
console.log('[EMAIL DEBUG] EMAIL_USER env var:', process.env.EMAIL_USER)
console.log('[EMAIL DEBUG] EMAIL_FROM env var:', process.env.EMAIL_FROM)
return config
}
export async function sendPasswordResetEmail(email: string, code: string, event?: H3Event) {