diff --git a/frontend/src/app/api/config/route.ts b/frontend/src/app/api/config/route.ts index 6b447f3..8cae51c 100644 --- a/frontend/src/app/api/config/route.ts +++ b/frontend/src/app/api/config/route.ts @@ -3,17 +3,35 @@ import { NextResponse } from 'next/server'; /** * Runtime Configuration API * - * This endpoint returns environment variables that can be read at runtime, - * allowing the application to use different configurations without rebuilding. + * This endpoint returns environment variables that are read at RUNTIME, + * not build time. This allows changing configuration without rebuilding. * - * Usage: Fetch /api/config on app initialization and use the returned values. + * IMPORTANT: Use env vars WITHOUT the NEXT_PUBLIC_ prefix here! + * - NEXT_PUBLIC_* = baked in at build time (bad for runtime config) + * - Regular env vars = read at runtime (good!) + * + * In your .env or container config, set: + * API_URL=https://api.example.com + * BACKOFFICE_URL=https://backoffice.example.com + * (etc.) + * + * The NEXT_PUBLIC_* versions are only used as fallbacks for local dev. */ export async function GET() { + // Priority: Runtime env vars > Build-time NEXT_PUBLIC_* > Defaults const config = { - apiUrl: process.env.NEXT_PUBLIC_API_URL || 'http://localhost:8521', - backofficeUrl: process.env.NEXT_PUBLIC_BACKOFFICE_URL || 'http://localhost:3001', - seederApiUrl: process.env.NEXT_PUBLIC_SEEDER_API_URL || 'http://localhost:3002', - scraperApiUrl: process.env.NEXT_PUBLIC_SCRAPER_API_URL || 'http://localhost:3003', + apiUrl: process.env.API_URL + || process.env.NEXT_PUBLIC_API_URL + || 'http://localhost:8521', + backofficeUrl: process.env.BACKOFFICE_URL + || process.env.NEXT_PUBLIC_BACKOFFICE_URL + || 'http://localhost:3001', + seederApiUrl: process.env.SEEDER_API_URL + || process.env.NEXT_PUBLIC_SEEDER_API_URL + || 'http://localhost:3002', + scraperApiUrl: process.env.SCRAPER_API_URL + || process.env.NEXT_PUBLIC_SCRAPER_API_URL + || 'http://localhost:3003', }; return NextResponse.json(config, { @@ -23,3 +41,4 @@ export async function GET() { }, }); } +