diff --git a/apps/webapp/next.config.ts b/apps/webapp/next.config.ts index cb0278c..740aeb0 100644 --- a/apps/webapp/next.config.ts +++ b/apps/webapp/next.config.ts @@ -3,6 +3,10 @@ import path from "node:path"; const nextConfig: NextConfig = { outputFileTracingRoot: path.join(process.cwd(), "../.."), + async rewrites() { + const backend = process.env.API_BASE_URL ?? "http://localhost:9812"; + return [{ source: "/api/:path*", destination: `${backend}/api/:path*` }]; + }, }; export default nextConfig; diff --git a/apps/webapp/src/libs/api.ts b/apps/webapp/src/libs/api.ts index e3f17af..926b442 100644 --- a/apps/webapp/src/libs/api.ts +++ b/apps/webapp/src/libs/api.ts @@ -1,4 +1,6 @@ -const API = process.env.NEXT_PUBLIC_API_BASE_URL ?? "http://localhost:9812"; +// Empty base: all API calls go to /api/* which Next.js rewrites to the backend. +// The actual backend URL is set via API_BASE_URL env var in next.config.ts (server-side, runtime). +const API = ""; export type StructuredBlock = { path: string; @@ -130,4 +132,3 @@ export async function publishVersion( }); } -export { API as API_BASE_URL }; diff --git a/docker-compose.yml b/docker-compose.yml index 5ee20e9..f0d4128 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -12,7 +12,7 @@ services: context: ./ dockerfile: ./docker/webapp.Dockerfile environment: - - NEXT_PUBLIC_API_BASE_URL=https://api.cv.alves.world + - API_BASE_URL=http://cvfs-backend:8080 networks: - dokploy-network - cvfs-network