Files
legal-ai/web-ui/next.config.ts
Chaim 94bc66d7c1 Bundle FastAPI backend into Next.js Docker container
The Next.js app was proxying /api/* to the old Flask/FastAPI server
at legal-ai.nautilus.marcusgroup.org. When that server went down,
the Next.js app's API calls failed with 503.

Now both services run in the same container:
- FastAPI (uvicorn) on :8000 — the API backend
- Next.js (node) on :3000 — proxies /api/* to localhost:8000

Changes:
- Dockerfile: multi-stage build with Python 3.12 + Node.js
- next.config.ts: default proxy target is now 127.0.0.1:8000
- start.sh: launches uvicorn in background + node in foreground
- pyproject.toml: add fastapi + uvicorn as explicit deps

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 14:33:52 +00:00

31 lines
731 B
TypeScript

import type { NextConfig } from "next";
/**
* Proxies /api/* and /openapi.json to the FastAPI backend.
* In Docker both processes run in the same container, so the default
* target is http://127.0.0.1:8000. Override with NEXT_PUBLIC_API_ORIGIN
* if the backend lives elsewhere (e.g. during local dev).
*/
const API_ORIGIN =
process.env.NEXT_PUBLIC_API_ORIGIN ?? "http://127.0.0.1:8000";
const nextConfig: NextConfig = {
output: "standalone",
async rewrites() {
return [
{
source: "/api/:path*",
destination: `${API_ORIGIN}/api/:path*`,
},
{
source: "/openapi.json",
destination: `${API_ORIGIN}/openapi.json`,
},
];
},
};
export default nextConfig;