diff --git a/packages/app/src/app.tsx b/packages/app/src/app.tsx index 9a282bbb70..7c4e7ab841 100644 --- a/packages/app/src/app.tsx +++ b/packages/app/src/app.tsx @@ -284,6 +284,7 @@ export function AppInterface(props: { {routerProps.children}} + base={import.meta.env.BASE_URL.replace(/\/$/, "") || undefined} > diff --git a/packages/app/src/entry.tsx b/packages/app/src/entry.tsx index b5cbed6e75..f62dc78b02 100644 --- a/packages/app/src/entry.tsx +++ b/packages/app/src/entry.tsx @@ -99,9 +99,11 @@ if (!(root instanceof HTMLElement) && import.meta.env.DEV) { const getCurrentUrl = () => { if (location.hostname.includes("opencode.ai")) return "http://localhost:4096" + const serverBaseUrl = + "/" + (import.meta.env.VITE_OPENCODE_SERVER_BASE_URL ?? "/").replace(/^\//, "").replace(/\/$/, "") if (import.meta.env.DEV) - return `http://${import.meta.env.VITE_OPENCODE_SERVER_HOST ?? "localhost"}:${import.meta.env.VITE_OPENCODE_SERVER_PORT ?? "4096"}` - return location.origin + return `http://${import.meta.env.VITE_OPENCODE_SERVER_HOST ?? "localhost"}:${import.meta.env.VITE_OPENCODE_SERVER_PORT ?? "4096"}{serverBaseUrl}` + return location.origin + serverBaseUrl } const getDefaultUrl = () => { diff --git a/packages/app/src/env.d.ts b/packages/app/src/env.d.ts index 89721f34f2..c8d0a7d241 100644 --- a/packages/app/src/env.d.ts +++ b/packages/app/src/env.d.ts @@ -1,6 +1,7 @@ import "solid-js" interface ImportMetaEnv { + readonly BASE_URL: string readonly VITE_OPENCODE_SERVER_HOST: string readonly VITE_OPENCODE_SERVER_PORT: string } diff --git a/packages/app/vite.config.ts b/packages/app/vite.config.ts index 6a29ae6345..9c0685aa03 100644 --- a/packages/app/vite.config.ts +++ b/packages/app/vite.config.ts @@ -2,6 +2,7 @@ import { defineConfig } from "vite" import desktopPlugin from "./vite" export default defineConfig({ + base: process.env.VITE_BASE_URL || "/", plugins: [desktopPlugin] as any, server: { host: "0.0.0.0",