Spaces:
Runtime error
Runtime error
| import { existsSync } from "node:fs"; | |
| import { | |
| resolveRuntimePorts, | |
| withRuntimePortEnv, | |
| resolveMaxOldSpaceMb, | |
| spawnWithForwardedSignals, | |
| } from "../build/runtime-env.mjs"; | |
| import { bootstrapEnv } from "../build/bootstrap-env.mjs"; | |
| const env = bootstrapEnv(); | |
| const runtimePorts = resolveRuntimePorts(env); | |
| const childEnv = withRuntimePortEnv(env, runtimePorts); | |
| // #2939: honor OMNIROUTE_MEMORY_MB (default 512), the same knob | |
| // `omniroute serve` uses, so Docker users can control the server heap under | |
| // load / large SQLite DBs. A trailing --max-old-space-size wins, so this | |
| // overrides the image fallback without clobbering any other NODE_OPTIONS flags. | |
| const maxOldSpaceMb = resolveMaxOldSpaceMb(childEnv.OMNIROUTE_MEMORY_MB); | |
| childEnv.NODE_OPTIONS = | |
| `${childEnv.NODE_OPTIONS || ""} --max-old-space-size=${maxOldSpaceMb}`.trim(); | |
| // Prefer the WS-aware wrapper (server-ws.mjs) over the bare Next standalone | |
| // server.js: it installs the trusted peer-IP stamp (scripts/dev/peer-stamp.mjs) | |
| // that the authz middleware needs to allow loopback/LAN access to LOCAL_ONLY | |
| // routes. Falling back to server.js fails CLOSED (every LOCAL_ONLY request 403s) | |
| // rather than trusting the spoofable Host header. | |
| const entry = existsSync("server-ws.mjs") ? "server-ws.mjs" : "server.js"; | |
| spawnWithForwardedSignals("node", [entry], { | |
| stdio: "inherit", | |
| env: childEnv, | |
| }); | |