From a774ab4027a927c1a5870446d104f5330a93204d Mon Sep 17 00:00:00 2001 From: Jacob Edley Date: Tue, 17 Mar 2026 15:00:52 -0500 Subject: [PATCH 1/3] update node version in dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 \ From 4ea089003dcf8a01325b4a1d5affd819adead9ee Mon Sep 17 00:00:00 2001 From: Jacob Edley Date: Tue, 17 Mar 2026 15:01:02 -0500 Subject: [PATCH 2/3] fix prod vs dev api handling --- apps/admin/src/config.ts | 2 -- apps/admin/vite.config.ts | 1 + apps/dashboard/vite.config.ts | 1 + apps/hype/vite.config.ts | 1 + apps/info/vite.config.ts | 1 + apps/site/vite.config.ts | 1 + apps/sponsor/src/config.ts | 1 - apps/sponsor/vite.config.ts | 1 + apps/template/vite.config.ts | 1 + shared/src/config.ts | 13 ++++++++++--- 10 files changed, 17 insertions(+), 6 deletions(-) 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..7352e688 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,10 @@ 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 +28,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 isDefined = resolvedEnv !== undefined; -const isProduction = env.VITE_ENV === "PRODUCTION"; +const isProduction = resolvedEnv === "PRODUCTION"; const IS_DEV = isDefined && !isProduction; @@ -38,7 +45,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: [ From fc582ae51e3598e7c8bb6baaf352bce65e8736a6 Mon Sep 17 00:00:00 2001 From: Jacob Edley Date: Tue, 17 Mar 2026 15:03:52 -0500 Subject: [PATCH 3/3] run formatter --- shared/src/config.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/shared/src/config.ts b/shared/src/config.ts index 7352e688..ac7839aa 100644 --- a/shared/src/config.ts +++ b/shared/src/config.ts @@ -15,10 +15,7 @@ declare global { // Validation using zup const envSchema = yup.object({ - ENV: yup - .string() - .oneOf(["PRODUCTION", "DEVELOPMENT", "TESTING"]) - .optional(), + ENV: yup.string().oneOf(["PRODUCTION", "DEVELOPMENT", "TESTING"]).optional(), VITE_ENV: yup .string() .oneOf(["PRODUCTION", "DEVELOPMENT", "TESTING"])