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. // // Rewrites are resolved at `next build`, so this is effectively a local-dev setting. In the // deployed environments Apache sends /api/ straight to ERPCore before Next ever sees it, which // keeps one built image valid for both test and release (docs/40-DEPLOYMENT.md). const BACKEND_ORIGIN = process.env.BACKEND_ORIGIN ?? "http://localhost:5224" const nextConfig: NextConfig = { // Self-contained server bundle (.next/standalone) for the runtime-only Docker image // (Dockerfile in this folder). Has no effect on `next dev`. output: "standalone", turbopack: { root: path.join(__dirname), }, async rewrites() { return [ { source: "/api/:path*", destination: `${BACKEND_ORIGIN}/api/:path*`, }, ] }, } export default nextConfig