276e338b0e
NEXT_PUBLIC_API_URL was hardcoded to http://localhost:8083/api which gets baked into webpack bundles at build time. NEXT_PUBLIC_* vars run in the browser, so "localhost" resolves to the *user's own PC*, not the office host running the container — connect refused for anyone hitting the site over Tailscale or LAN. Use a relative URL (/api) and let next dev's rewrites proxy to SERVER_API_URL (invyone-backend-spring:8081 inside invyone-net). This way the request always lands on whatever host the browser is already talking to (localhost / 100.126.230.80 / public domain), and the Next dev server forwards it to the backend container. Verified: POST /api/auth/login from browser path returns the spring controller's 400 response, confirming the full browser → frontend → backend chain works. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>