import type { NextConfig } from "next" import path from "path" // The backend is proxied rather than called cross-origin. This makes /api/* same-origin, // which means (a) no CORS config is needed on ERPCore, and (b) its Secure/SameSite=Strict // session cookies just work. BACKEND_ORIGIN is server-side only — deliberately not // NEXT_PUBLIC_*, since the browser only ever talks to this Next server. // // Defaults to the backend's HTTP port: the HTTPS port uses a self-signed dev cert that // this proxy would reject. // // Uses 127.0.0.1, not "localhost": Node resolves "localhost" to the IPv6 loopback (::1) // first on this machine, but Kestrel only binds the IPv4 wildcard (0.0.0.0), so every // proxied request failed with ECONNREFUSED ::1:6701 until this was pinned to IPv4. const BACKEND_ORIGIN = process.env.BACKEND_ORIGIN ?? "http://127.0.0.1:6701" const nextConfig: NextConfig = { turbopack: { root: path.join(__dirname), }, async rewrites() { return [ { source: "/api/:path*", destination: `${BACKEND_ORIGIN}/api/:path*`, }, ] }, } export default nextConfig