From 2333e4f0177661655bb5c1bc07f9b2fe1bea6fa4 Mon Sep 17 00:00:00 2001 From: YTFL Date: Tue, 23 Jun 2026 22:03:32 +0530 Subject: [PATCH] re: add next public app url environment variable instead of default vercel url --- .env.example | 3 +++ src/ai/flows/generate-scenario.ts | 12 +++++++----- src/ai/flows/receive-strategic-analysis.ts | 12 +++++++----- src/ai/flows/strategic-command-chat.ts | 12 +++++++----- src/app/api/procedural/urban/[seed]/route.ts | 2 +- src/app/api/procedural/urban/generate/route.ts | 2 +- src/app/api/procedural/urban/preview/route.ts | 2 +- src/app/api/sitrep/route.ts | 2 +- 8 files changed, 28 insertions(+), 19 deletions(-) diff --git a/.env.example b/.env.example index 2c5b566..16d92f4 100644 --- a/.env.example +++ b/.env.example @@ -9,3 +9,6 @@ LM_STUDIO_API_KEY= # MODEL_PATH=ai_server/wargaming_llm/wargame_final_outputs/checkpoint-125 # LOAD_IN_4BIT=true # MAX_GPU_MEMORY_GB=4.5 + +# Vercel deployment variables (optional) +# NEXT_PUBLIC_APP_URL=https://your-custom-domain.vercel.app diff --git a/src/ai/flows/generate-scenario.ts b/src/ai/flows/generate-scenario.ts index adff1e1..287dbe7 100644 --- a/src/ai/flows/generate-scenario.ts +++ b/src/ai/flows/generate-scenario.ts @@ -10,11 +10,13 @@ import { const isVercel = process.env.VERCEL === 'true'; -const apiBaseUrl = isVercel - ? (process.env.VERCEL_ENV === 'production' - ? 'https://war-matrix.vercel.app/api' // Hardcode your production domain here - : (process.env.BACKEND_URL ? `${process.env.BACKEND_URL}/api` : '/api')) - : 'http://localhost:8000/api'; +const apiBaseUrl = process.env.NEXT_PUBLIC_APP_URL + ? `${process.env.NEXT_PUBLIC_APP_URL}/api` + : (isVercel + ? (process.env.VERCEL_ENV === 'production' + ? 'https://war-matrix.vercel.app/api' // Hardcode your production domain here + : (process.env.BACKEND_URL ? `${process.env.BACKEND_URL}/api` : '/api')) + : 'http://localhost:8000/api'); // ── Input ───────────────────────────────────────────────────────────────────── diff --git a/src/ai/flows/receive-strategic-analysis.ts b/src/ai/flows/receive-strategic-analysis.ts index 11408e7..b5078d5 100644 --- a/src/ai/flows/receive-strategic-analysis.ts +++ b/src/ai/flows/receive-strategic-analysis.ts @@ -14,11 +14,13 @@ import { GEMINI_API_KEY_COOKIE } from '@/lib/gemini-auth'; const isVercel = process.env.VERCEL === 'true'; -const apiBaseUrl = isVercel - ? (process.env.VERCEL_ENV === 'production' - ? 'https://war-matrix.vercel.app/api' // Hardcode your production domain here - : (process.env.BACKEND_URL ? `${process.env.BACKEND_URL}/api` : '/api')) - : 'http://localhost:8000/api'; +const apiBaseUrl = process.env.NEXT_PUBLIC_APP_URL + ? `${process.env.NEXT_PUBLIC_APP_URL}/api` + : (isVercel + ? (process.env.VERCEL_ENV === 'production' + ? 'https://war-matrix.vercel.app/api' // Hardcode your production domain here + : (process.env.BACKEND_URL ? `${process.env.BACKEND_URL}/api` : '/api')) + : 'http://localhost:8000/api'); const ReceiveStrategicAnalysisInputSchema = z.object({ battlefieldSummary: z diff --git a/src/ai/flows/strategic-command-chat.ts b/src/ai/flows/strategic-command-chat.ts index f1497c7..26457ba 100644 --- a/src/ai/flows/strategic-command-chat.ts +++ b/src/ai/flows/strategic-command-chat.ts @@ -2,11 +2,13 @@ import { z } from 'zod'; const isVercel = process.env.VERCEL === 'true'; -const apiBaseUrl = isVercel - ? (process.env.VERCEL_ENV === 'production' - ? 'https://war-matrix.vercel.app/api' // Hardcode your production domain here - : (process.env.BACKEND_URL ? `${process.env.BACKEND_URL}/api` : '/api')) - : (typeof window !== 'undefined' ? '/api' : 'http://localhost:8000/api'); +const apiBaseUrl = process.env.NEXT_PUBLIC_APP_URL + ? `${process.env.NEXT_PUBLIC_APP_URL}/api` + : (isVercel + ? (process.env.VERCEL_ENV === 'production' + ? 'https://war-matrix.vercel.app/api' // Hardcode your production domain here + : (process.env.BACKEND_URL ? `${process.env.BACKEND_URL}/api` : '/api')) + : (typeof window !== 'undefined' ? '/api' : 'http://localhost:8000/api')); // ─── Input / Output Schemas ─────────────────────────────────────────────────── const StrategicChatInputSchema = z.object({ diff --git a/src/app/api/procedural/urban/[seed]/route.ts b/src/app/api/procedural/urban/[seed]/route.ts index a60c2b9..1276388 100644 --- a/src/app/api/procedural/urban/[seed]/route.ts +++ b/src/app/api/procedural/urban/[seed]/route.ts @@ -1,6 +1,6 @@ import { NextResponse } from 'next/server'; -const SIM_SERVER_BASE = process.env.SIM_SERVER_BASE_URL || (process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}/backend` : 'http://127.0.0.1:8001'); +const SIM_SERVER_BASE = process.env.SIM_SERVER_BASE_URL || (process.env.NEXT_PUBLIC_APP_URL ? `${process.env.NEXT_PUBLIC_APP_URL}/backend` : (process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}/backend` : 'http://127.0.0.1:8001')); export async function GET( req: Request, diff --git a/src/app/api/procedural/urban/generate/route.ts b/src/app/api/procedural/urban/generate/route.ts index 4fa7f5f..756c00c 100644 --- a/src/app/api/procedural/urban/generate/route.ts +++ b/src/app/api/procedural/urban/generate/route.ts @@ -1,6 +1,6 @@ import { NextResponse } from 'next/server'; -const SIM_SERVER_BASE = process.env.SIM_SERVER_BASE_URL || (process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}/backend` : 'http://127.0.0.1:8001'); +const SIM_SERVER_BASE = process.env.SIM_SERVER_BASE_URL || (process.env.NEXT_PUBLIC_APP_URL ? `${process.env.NEXT_PUBLIC_APP_URL}/backend` : (process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}/backend` : 'http://127.0.0.1:8001')); export async function POST(req: Request) { try { diff --git a/src/app/api/procedural/urban/preview/route.ts b/src/app/api/procedural/urban/preview/route.ts index 66ca89e..14a26a7 100644 --- a/src/app/api/procedural/urban/preview/route.ts +++ b/src/app/api/procedural/urban/preview/route.ts @@ -1,6 +1,6 @@ import { NextResponse } from 'next/server'; -const SIM_SERVER_BASE = process.env.SIM_SERVER_BASE_URL || (process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}/backend` : 'http://127.0.0.1:8001'); +const SIM_SERVER_BASE = process.env.SIM_SERVER_BASE_URL || (process.env.NEXT_PUBLIC_APP_URL ? `${process.env.NEXT_PUBLIC_APP_URL}/backend` : (process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}/backend` : 'http://127.0.0.1:8001')); export async function POST(req: Request) { try { diff --git a/src/app/api/sitrep/route.ts b/src/app/api/sitrep/route.ts index 72ec8c1..4962a25 100644 --- a/src/app/api/sitrep/route.ts +++ b/src/app/api/sitrep/route.ts @@ -4,7 +4,7 @@ import { GEMINI_API_KEY_COOKIE, GEMINI_MODEL_COOKIE } from '@/lib/gemini-auth'; import { GoogleGenerativeAI } from '@google/generative-ai'; const AI_SERVER_BASE = process.env.AI_SERVER_BASE_URL ?? 'http://127.0.0.1:8000'; -const SIM_SERVER_BASE = process.env.SIM_SERVER_BASE_URL || (process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}/backend` : 'http://127.0.0.1:8001'); +const SIM_SERVER_BASE = process.env.SIM_SERVER_BASE_URL || (process.env.NEXT_PUBLIC_APP_URL ? `${process.env.NEXT_PUBLIC_APP_URL}/backend` : (process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}/backend` : 'http://127.0.0.1:8001')); const INFERENCE_TIMEOUT_MS = 300_000; // 5 min — CPU inference can be slow const HEALTH_TIMEOUT_MS = 5_000; // 5 s — quick ping only const SIM_TIMEOUT_MS = 120_000;