From 6f8d8b8af07e41280ecec0b9df5fe7dbb1bcd57a Mon Sep 17 00:00:00 2001 From: Nik Afiq Date: Wed, 10 Dec 2025 22:57:48 +0900 Subject: [PATCH] feat(auth): add Firebase environment variables to Docker configuration --- docker-compose.yml | 6 ++++++ frontend/Dockerfile | 10 ++++++++++ frontend/vite.config.ts | 12 +++++++++--- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index f58a693..0f85d60 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,6 +9,12 @@ services: args: PUBLIC_BASE_PATH: ${PUBLIC_BASE_PATH} FRONTEND_MODE: ${FRONTEND_MODE:-production} + VITE_AUTH_ENABLED: ${VITE_AUTH_ENABLED:-true} + VITE_FIREBASE_API_KEY: ${VITE_FIREBASE_API_KEY} + VITE_FIREBASE_AUTH_DOMAIN: ${VITE_FIREBASE_AUTH_DOMAIN} + VITE_FIREBASE_PROJECT_ID: ${VITE_FIREBASE_PROJECT_ID} + VITE_FIREBASE_APP_ID: ${VITE_FIREBASE_APP_ID} + VITE_BACKEND_ORIGIN: ${VITE_BACKEND_ORIGIN:-/api} image: watchparty-frontend:prod container_name: watchparty-frontend environment: diff --git a/frontend/Dockerfile b/frontend/Dockerfile index a839946..3a5ff3d 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -13,6 +13,16 @@ ENV FRONTEND_MODE=${FRONTEND_MODE} ENV VITE_APP_MODE=${FRONTEND_MODE} ARG VITE_BACKEND_ORIGIN=/api ENV VITE_BACKEND_ORIGIN=${VITE_BACKEND_ORIGIN} +ARG VITE_AUTH_ENABLED=true +ENV VITE_AUTH_ENABLED=${VITE_AUTH_ENABLED} +ARG VITE_FIREBASE_API_KEY= +ENV VITE_FIREBASE_API_KEY=${VITE_FIREBASE_API_KEY} +ARG VITE_FIREBASE_AUTH_DOMAIN= +ENV VITE_FIREBASE_AUTH_DOMAIN=${VITE_FIREBASE_AUTH_DOMAIN} +ARG VITE_FIREBASE_PROJECT_ID= +ENV VITE_FIREBASE_PROJECT_ID=${VITE_FIREBASE_PROJECT_ID} +ARG VITE_FIREBASE_APP_ID= +ENV VITE_FIREBASE_APP_ID=${VITE_FIREBASE_APP_ID} RUN npm run build diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts index da6dba3..ab7b01a 100644 --- a/frontend/vite.config.ts +++ b/frontend/vite.config.ts @@ -1,15 +1,21 @@ -import { defineConfig } from "vite"; +import path from "node:path"; +import { defineConfig, loadEnv } from "vite"; import react from "@vitejs/plugin-react"; // Use PUBLIC_BASE_PATH="/watch-party/" for prod container builds. // In dev, keep "/" so local paths are simple. export default defineConfig(({ mode }) => { + // Load env from the repo root so both frontend and backend share the same .env. + const envDir = path.resolve(__dirname, ".."); + const env = loadEnv(mode, envDir, ""); + const base = mode === "development" ? "/" - : process.env.PUBLIC_BASE_PATH || "/watch-party/"; + : env.PUBLIC_BASE_PATH || process.env.PUBLIC_BASE_PATH || "/watch-party/"; return { + envDir, base, plugins: [react()], @@ -35,4 +41,4 @@ export default defineConfig(({ mode }) => { }, }, }; -}); \ No newline at end of file +});