mirror of
https://github.com/BigBodyCobain/Shadowbroker.git
synced 2026-04-30 14:57:58 +02:00
e2a9ef9bbf
Previously, NEXT_PUBLIC_API_URL was a build-time Next.js variable, making
it impossible to configure the backend URL in docker-compose `environment`
without rebuilding the image.
This change introduces a proper server-side proxy:
- next.config.ts: adds a rewrite rule that forwards all /api/* requests
to BACKEND_URL (read at server startup, not baked at build time).
Defaults to http://localhost:8000 so local dev works without config.
- api.ts: API_BASE is now an empty string — all fetch calls use relative
/api/... paths, which the Next.js server proxies to the backend.
- docker-compose.yml: replaces NEXT_PUBLIC_API_URL build arg with a
runtime BACKEND_URL env var defaulting to http://backend:8000, using
Docker's internal networking. Port 8000 no longer needs to be exposed.
- README: updates Docker setup docs, standalone compose example, and
environment variable reference to reflect BACKEND_URL.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Former-commit-id: b4c9e78cdd
28 lines
750 B
TypeScript
28 lines
750 B
TypeScript
import type { NextConfig } from "next";
|
|
|
|
// BACKEND_URL is a plain (non-NEXT_PUBLIC_) env var read at server startup —
|
|
// not baked at build time — so it can be set in docker-compose `environment`.
|
|
// Defaults to localhost for local dev where both services run on the same host.
|
|
const backendUrl = process.env.BACKEND_URL ?? "http://localhost:8000";
|
|
|
|
const nextConfig: NextConfig = {
|
|
transpilePackages: ['react-map-gl', 'mapbox-gl', 'maplibre-gl'],
|
|
output: "standalone",
|
|
typescript: {
|
|
ignoreBuildErrors: true,
|
|
},
|
|
eslint: {
|
|
ignoreDuringBuilds: true,
|
|
},
|
|
async rewrites() {
|
|
return [
|
|
{
|
|
source: "/api/:path*",
|
|
destination: `${backendUrl}/api/:path*`,
|
|
},
|
|
];
|
|
},
|
|
};
|
|
|
|
export default nextConfig;
|