feat: add NEXT_PUBLIC_BACKEND_BASE_URL

This commit is contained in:
Henry Li
2026-01-19 11:23:40 +08:00
parent b431567666
commit 9d18e4e12d
5 changed files with 19 additions and 10 deletions

View File

@@ -9,6 +9,9 @@
# When adding additional environment variables, the schema in "/src/env.js" # When adding additional environment variables, the schema in "/src/env.js"
# should be updated accordingly. # should be updated accordingly.
# The base URL of DeerFlow's backend service
NEXT_PUBLIC_BACKEND_BASE_URL="http://localhost:8000"
# Better Auth # Better Auth
## Better Auth - Google OAuth ## Better Auth - Google OAuth
BETTER_AUTH_GOOGLE_CLIENT_ID="" BETTER_AUTH_GOOGLE_CLIENT_ID=""

View File

@@ -2,16 +2,12 @@
import { Client as LangGraphClient } from "@langchain/langgraph-sdk/client"; import { Client as LangGraphClient } from "@langchain/langgraph-sdk/client";
import { getBackendBaseURL } from "../config";
let _singleton: LangGraphClient | null = null; let _singleton: LangGraphClient | null = null;
export function getAPIClient(): LangGraphClient { export function getAPIClient(): LangGraphClient {
let url: URL | null = null;
if (typeof window === "undefined") {
url = new URL("/api/langgraph", "http://localhost:3000");
} else {
url = new URL("/api/langgraph", window.location.origin);
}
_singleton ??= new LangGraphClient({ _singleton ??= new LangGraphClient({
apiUrl: "http://localhost:2024", apiUrl: getBackendBaseURL(),
}); });
return _singleton; return _singleton;
} }

View File

@@ -1,3 +1,4 @@
import { getBackendBaseURL } from "../config";
import type { AgentThread } from "../threads"; import type { AgentThread } from "../threads";
export function urlOfArtifact({ export function urlOfArtifact({
@@ -9,7 +10,7 @@ export function urlOfArtifact({
threadId: string; threadId: string;
download?: boolean; download?: boolean;
}) { }) {
return `http://localhost:8000/api/threads/${threadId}/artifacts${filepath}${download ? "?download=true" : ""}`; return `${getBackendBaseURL()}/api/threads/${threadId}/artifacts${filepath}${download ? "?download=true" : ""}`;
} }
export function extractArtifactsFromThread(thread: AgentThread) { export function extractArtifactsFromThread(thread: AgentThread) {

View File

@@ -0,0 +1,5 @@
import { env } from "@/env";
export function getBackendBaseURL() {
return env.NEXT_PUBLIC_BACKEND_BASE_URL ?? "http://localhost:8000";
}

View File

@@ -24,7 +24,10 @@ export const env = createEnv({
* `NEXT_PUBLIC_`. * `NEXT_PUBLIC_`.
*/ */
client: { client: {
// NEXT_PUBLIC_CLIENTVAR: z.string(), NEXT_PUBLIC_BACKEND_BASE_URL: z
.string()
.optional()
.default("http://localhost:8000/api"),
}, },
/** /**
@@ -37,7 +40,8 @@ export const env = createEnv({
BETTER_AUTH_GITHUB_CLIENT_SECRET: BETTER_AUTH_GITHUB_CLIENT_SECRET:
process.env.BETTER_AUTH_GITHUB_CLIENT_SECRET, process.env.BETTER_AUTH_GITHUB_CLIENT_SECRET,
NODE_ENV: process.env.NODE_ENV, NODE_ENV: process.env.NODE_ENV,
// NEXT_PUBLIC_CLIENTVAR: process.env.NEXT_PUBLIC_CLIENTVAR,
NEXT_PUBLIC_BACKEND_BASE_URL: process.env.NEXT_PUBLIC_BACKEND_BASE_URL,
}, },
/** /**
* Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially * Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially