8e472ac996
CI/CD - ERP Core / scripts (pull_request) Failing after 12m21s
CI/CD - ERP Core / e2e-typecheck (pull_request) Failing after 13m13s
CI/CD - ERP Core / frontend (pull_request) Failing after 14m5s
CI/CD - ERP Core / backend (pull_request) Failing after 14m57s
CI/CD - ERP Core / detect (pull_request) Failing after 13m42s
CI/CD - ERP Core / Build & Deploy (pull_request) Failing after 12m47s
CI/CD - ERP Core / ci-ok (pull_request) Failing after 14m58s
35 lines
1.3 KiB
TypeScript
35 lines
1.3 KiB
TypeScript
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
|