diff --git a/client/.env.production b/client/.env.production index 25849c7b9..d5b77ff28 100644 --- a/client/.env.production +++ b/client/.env.production @@ -1,4 +1,6 @@ -VITE_APP_API_BASE_URL=UPTIME_APP_API_BASE_URL -VITE_APP_API_V2_BASE_URL=UPTIME_APP_API_V2_BASE_URL -VITE_APP_CLIENT_HOST=UPTIME_APP_CLIENT_HOST -VITE_APP_LOG_LEVEL=UPTIME_APP_LOG_LEVEL \ No newline at end of file +# Production builds use same-origin defaults: API at /api/v1, client host from +# window.location.origin. The empty values below override any local .env so a +# production build never bakes in a developer's localhost URLs. +VITE_APP_API_BASE_URL= +VITE_APP_CLIENT_HOST= +VITE_APP_LOG_LEVEL= diff --git a/client/src/Pages/Account/components/InviteTeamMemberDialog.tsx b/client/src/Pages/Account/components/InviteTeamMemberDialog.tsx index e23f24e53..b3e08fe67 100644 --- a/client/src/Pages/Account/components/InviteTeamMemberDialog.tsx +++ b/client/src/Pages/Account/components/InviteTeamMemberDialog.tsx @@ -56,7 +56,7 @@ export const InviteTeamMemberDialog = ({ const result = await generateToken("/invite", data); if (result?.data?.token) { const token = result.data.token; - const link = CLIENT_HOST ? `${CLIENT_HOST}/register/${token}` : token; + const link = `${CLIENT_HOST || window.location.origin}/register/${token}`; setInviteLink(link); } }; diff --git a/client/src/Types/env.d.ts b/client/src/Types/env.d.ts index af8f983fb..0e753a580 100644 --- a/client/src/Types/env.d.ts +++ b/client/src/Types/env.d.ts @@ -3,7 +3,8 @@ declare const __APP_VERSION__: string; interface ImportMetaEnv { - readonly VITE_APP_API_V2_BASE_URL?: string; + readonly VITE_APP_API_BASE_URL?: string; + readonly VITE_APP_CLIENT_HOST?: string; readonly VITE_APP_LOG_LEVEL?: "debug" | "info" | "warn" | "error"; } diff --git a/client/src/Utils/ApiClient.ts b/client/src/Utils/ApiClient.ts index b18f2dfbc..d88dca6b1 100644 --- a/client/src/Utils/ApiClient.ts +++ b/client/src/Utils/ApiClient.ts @@ -2,7 +2,7 @@ import axios from "axios"; import type { AxiosError } from "axios"; import type { AxiosRequestConfig, AxiosResponse } from "axios"; -const BASE_URL = import.meta.env.VITE_APP_API_BASE_URL; +const BASE_URL = import.meta.env.VITE_APP_API_BASE_URL || "/api/v1"; const api = axios.create({ baseURL: BASE_URL,