diff --git a/frontend/src/layouts/PageLayout.astro b/frontend/src/layouts/PageLayout.astro index d4a729c..2dd34fd 100644 --- a/frontend/src/layouts/PageLayout.astro +++ b/frontend/src/layouts/PageLayout.astro @@ -10,7 +10,10 @@ type Props = { }; const { title, description } = Astro.props; -const apiUrl = process.env.VITE_API_URL || 'https://api.swissai.svc.cscs.ch'; +// process.env wins so a deployed container can override at runtime (no +// rebuild); import.meta.env covers the `astro dev` / `make dummy-run` path +// where dotenv loads frontend/.env into Vite's env but NOT into process.env. +const apiUrl = process.env.VITE_API_URL || import.meta.env.VITE_API_URL || 'https://api.swissai.svc.cscs.ch'; --- diff --git a/frontend/src/lib/config.ts b/frontend/src/lib/config.ts index b748a03..a4d4c01 100644 --- a/frontend/src/lib/config.ts +++ b/frontend/src/lib/config.ts @@ -4,5 +4,8 @@ export function getApiUrl(): string { if (typeof window !== 'undefined') { return (window as any).__API_URL__ || DEFAULT_API_URL; } - return process.env.VITE_API_URL || DEFAULT_API_URL; + // process.env wins so a deployed container can override at runtime (no + // rebuild); import.meta.env covers `astro dev` / `make dummy-run` where + // dotenv loads frontend/.env into Vite's env but NOT into process.env. + return process.env.VITE_API_URL || import.meta.env.VITE_API_URL || DEFAULT_API_URL; } diff --git a/frontend/src/pages/api_key.astro b/frontend/src/pages/api_key.astro index 2e47c1e..fdae9f8 100644 --- a/frontend/src/pages/api_key.astro +++ b/frontend/src/pages/api_key.astro @@ -28,7 +28,7 @@ if (isDev) { // API key will be fetched client-side to avoid exposing it in the HTML let apiKey = "Loading..."; -const apiUrl = process.env.VITE_API_URL || 'https://api.swissai.svc.cscs.ch'; +const apiUrl = process.env.VITE_API_URL || import.meta.env.VITE_API_URL || 'https://api.swissai.svc.cscs.ch'; --- diff --git a/frontend/src/pages/leaderboard/index.astro b/frontend/src/pages/leaderboard/index.astro index 8016d36..46f6e5e 100644 --- a/frontend/src/pages/leaderboard/index.astro +++ b/frontend/src/pages/leaderboard/index.astro @@ -9,7 +9,8 @@ let tokenData = {}; let error = null; try { - const response = await fetch(`${process.env.VITE_API_URL || 'https://api.swissai.svc.cscs.ch'}/v1/metrics`, { + const apiUrl = process.env.VITE_API_URL || import.meta.env.VITE_API_URL || 'https://api.swissai.svc.cscs.ch'; + const response = await fetch(`${apiUrl}/v1/metrics`, { method: "POST", headers: { "Content-Type": "application/json",