diff --git a/apps/ops/src/config/hub.js b/apps/ops/src/config/hub.js index a2dfe99..ffb8d32 100644 --- a/apps/ops/src/config/hub.js +++ b/apps/ops/src/config/hub.js @@ -11,8 +11,13 @@ * EventSource (/sse, /conversations) work, and rides the existing Authentik * forward-auth on /ops. Mirrors the /ops/api → ERPNext pattern (config/erpnext.js). * - * Can also be overridden via VITE_HUB_URL env variable. + * VITE_HUB_URL n'est honoré qu'en DEV (proxy du serveur de dev). */ const _opsBase = (import.meta.env.BASE_URL || '/').replace(/\/$/, '') // '' in dev, '/ops' in prod -export const HUB_URL = import.meta.env.VITE_HUB_URL - || (window.location.hostname === 'localhost' ? 'http://localhost:3300' : _opsBase + '/hub') +// ⚠️ PROD : TOUJOURS le proxy same-origin `_opsBase + '/hub'` (= /ops/hub → Traefik strip /ops → nginx `location /hub/` +// → hub). On n'honore VITE_HUB_URL qu'en DEV : il vaut `/hub` dans .env.local (proxy du serveur de dev) et, comme +// .env.local est chargé MÊME au build prod (cf. fuite VITE_DEV_USER), l'utiliser en prod ferait appeler `/hub` à la +// RACINE → hors du préfixe /ops → routé vers ERPNext → **404** (= le bug « menu vide / Accès OPS indisponible »). +export const HUB_URL = import.meta.env.DEV + ? (import.meta.env.VITE_HUB_URL || 'http://localhost:3300') + : _opsBase + '/hub'