diff --git a/Dockerfile b/Dockerfile index 10bc766a..22050b3a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:18-alpine +FROM node:24-alpine # Install system dependencies (only what's absolutely necessary) RUN apk add \ diff --git a/apps/admin/src/config.ts b/apps/admin/src/config.ts index 250b04ad..b13ed224 100644 --- a/apps/admin/src/config.ts +++ b/apps/admin/src/config.ts @@ -1,6 +1,4 @@ export const Config = { - API_BASE_URL: "https://api.reflectionsprojections.org", - // API_BASE_URL: "http://localhost:3000", EVENT_TYPES: [ "SPEAKER", "CORPORATE", diff --git a/apps/admin/vite.config.ts b/apps/admin/vite.config.ts index 2591a045..26e4bc05 100644 --- a/apps/admin/vite.config.ts +++ b/apps/admin/vite.config.ts @@ -8,6 +8,7 @@ export default defineConfig({ port: 3002 }, plugins: [react()], + envPrefix: ["VITE_", "ENV"], envDir: resolve(__dirname, "../.."), resolve: { alias: { diff --git a/apps/dashboard/vite.config.ts b/apps/dashboard/vite.config.ts index 3798b51f..9c0231cc 100644 --- a/apps/dashboard/vite.config.ts +++ b/apps/dashboard/vite.config.ts @@ -9,6 +9,7 @@ export default defineConfig({ port: 3006 }, plugins: [react(), svgr()], + envPrefix: ["VITE_", "ENV"], envDir: resolve(__dirname, "../.."), resolve: { alias: { diff --git a/apps/hype/vite.config.ts b/apps/hype/vite.config.ts index 2a288a53..f5a2737d 100644 --- a/apps/hype/vite.config.ts +++ b/apps/hype/vite.config.ts @@ -8,6 +8,7 @@ export default defineConfig({ port: 3004 }, plugins: [react()], + envPrefix: ["VITE_", "ENV"], envDir: resolve(__dirname, "../.."), resolve: { alias: { diff --git a/apps/info/vite.config.ts b/apps/info/vite.config.ts index 53cf290a..3f179b23 100644 --- a/apps/info/vite.config.ts +++ b/apps/info/vite.config.ts @@ -8,6 +8,7 @@ export default defineConfig({ port: 3003 }, plugins: [react()], + envPrefix: ["VITE_", "ENV"], envDir: resolve(__dirname, "../.."), resolve: { alias: { diff --git a/apps/site/vite.config.ts b/apps/site/vite.config.ts index 2bcc922c..29559d0a 100644 --- a/apps/site/vite.config.ts +++ b/apps/site/vite.config.ts @@ -8,6 +8,7 @@ export default defineConfig({ port: 3001 }, plugins: [react()], + envPrefix: ["VITE_", "ENV"], envDir: resolve(__dirname, "../.."), resolve: { alias: { diff --git a/apps/sponsor/src/config.ts b/apps/sponsor/src/config.ts index d8d37175..f3f0b354 100644 --- a/apps/sponsor/src/config.ts +++ b/apps/sponsor/src/config.ts @@ -1,6 +1,5 @@ export const Config = { MAX_DROPDOWN_OPTIONS: 1000, - API_BASE_URL: "https://api.reflectionsprojections.org", RESUME_BOOK_URL: "https://sponsor.reflectionsprojections.org", STAFF_UIDs: [ "194cd6b5-1edf-47ff-b078-998290637fd8", diff --git a/apps/sponsor/vite.config.ts b/apps/sponsor/vite.config.ts index 3bf8aa44..875a2588 100644 --- a/apps/sponsor/vite.config.ts +++ b/apps/sponsor/vite.config.ts @@ -8,6 +8,7 @@ export default defineConfig({ port: 3005 }, plugins: [react()], + envPrefix: ["VITE_", "ENV"], envDir: resolve(__dirname, "../.."), resolve: { alias: { diff --git a/apps/template/vite.config.ts b/apps/template/vite.config.ts index ac0940cc..c9e461a4 100644 --- a/apps/template/vite.config.ts +++ b/apps/template/vite.config.ts @@ -5,6 +5,7 @@ import { resolve } from "path"; // https://vitejs.dev/config/ export default defineConfig({ plugins: [react()], + envPrefix: ["VITE_", "ENV"], envDir: resolve(__dirname, "../.."), resolve: { alias: { diff --git a/shared/src/config.ts b/shared/src/config.ts index e5212e98..ac7839aa 100644 --- a/shared/src/config.ts +++ b/shared/src/config.ts @@ -1,6 +1,7 @@ import * as yup from "yup"; interface ImportMetaEnv { + ENV?: "PRODUCTION" | "DEVELOPMENT" | "TESTING"; VITE_ENV?: "PRODUCTION" | "DEVELOPMENT" | "TESTING"; VITE_GOOGLE_OAUTH_CLIENT_ID?: string; } @@ -14,6 +15,7 @@ declare global { // Validation using zup const envSchema = yup.object({ + ENV: yup.string().oneOf(["PRODUCTION", "DEVELOPMENT", "TESTING"]).optional(), VITE_ENV: yup .string() .oneOf(["PRODUCTION", "DEVELOPMENT", "TESTING"]) @@ -23,9 +25,11 @@ const envSchema = yup.object({ const env = envSchema.validateSync(import.meta.env, { abortEarly: false }); -const isDefined = env.VITE_ENV !== undefined; +const resolvedEnv = env.ENV || env.VITE_ENV; -const isProduction = env.VITE_ENV === "PRODUCTION"; +const isDefined = resolvedEnv !== undefined; + +const isProduction = resolvedEnv === "PRODUCTION"; const IS_DEV = isDefined && !isProduction; @@ -38,7 +42,7 @@ const WS_BASE_URL = IS_DEV : "wss://api.reflectionsprojections.org"; const Config = { - ENV: env.VITE_ENV, + ENV: resolvedEnv, API_BASE_URL, WS_BASE_URL, EVENT_TYPES: [