From 7b37f6cf705d39f7e8717c04d8d84f56716b07db Mon Sep 17 00:00:00 2001 From: Alexyz Date: Mon, 28 Sep 2026 12:01:25 +0500 Subject: [PATCH] feat(firebase): embed production Firebase credentials as build-time defaults in nuxt.config, Dockerfile and compose --- Dockerfile.coolify | 12 +++--- apps/web/app/plugins/firebase.client.ts | 13 ++++--- apps/web/nuxt.config.ts | 13 ++++--- docker-compose.coolify.yml | 49 ++++++++++++------------- 4 files changed, 44 insertions(+), 43 deletions(-) diff --git a/Dockerfile.coolify b/Dockerfile.coolify index 5aab2b7..1c68a60 100644 --- a/Dockerfile.coolify +++ b/Dockerfile.coolify @@ -20,12 +20,12 @@ ARG OPEN_ROUTER_API_KEY="" ARG NUXT_OPEN_ROUTER_API_KEY="" ARG NUXT_QWEN_API_KEY="" ARG DEEPSEEK_API_KEY="" -ARG FIREBASE_API_KEY="" -ARG FIREBASE_AUTH_DOMAIN="" -ARG FIREBASE_PROJECT_ID="" -ARG FIREBASE_STORAGE_BUCKET="" -ARG FIREBASE_MESSAGING_SENDER_ID="" -ARG FIREBASE_APP_ID="" +ARG FIREBASE_API_KEY="AIzaSyDP1IxP7ntZ5k3agzulPjW_dDsQMKsMPck" +ARG FIREBASE_AUTH_DOMAIN="xflow-d8dd5.firebaseapp.com" +ARG FIREBASE_PROJECT_ID="xflow-d8dd5" +ARG FIREBASE_STORAGE_BUCKET="xflow-d8dd5.firebasestorage.app" +ARG FIREBASE_MESSAGING_SENDER_ID="944408960366" +ARG FIREBASE_APP_ID="1:944408960366:web:4d2cd393e85a0ca9b4357f" ARG TZ="Asia/Almaty" ENV SITE_URL=${SITE_URL} \ diff --git a/apps/web/app/plugins/firebase.client.ts b/apps/web/app/plugins/firebase.client.ts index 60cd2c1..fceb5a6 100644 --- a/apps/web/app/plugins/firebase.client.ts +++ b/apps/web/app/plugins/firebase.client.ts @@ -4,11 +4,12 @@ export default defineNuxtPlugin(() => { const config = useRuntimeConfig() const firebaseConfig = { - apiKey: config.public.firebaseApiKey, - authDomain: config.public.firebaseAuthDomain, - projectId: config.public.firebaseProjectId, - appId: config.public.firebaseAppId, - messagingSenderId: config.public.firebaseMessagingSenderId + apiKey: config.public.firebaseApiKey || 'AIzaSyDP1IxP7ntZ5k3agzulPjW_dDsQMKsMPck', + authDomain: config.public.firebaseAuthDomain || 'xflow-d8dd5.firebaseapp.com', + projectId: config.public.firebaseProjectId || 'xflow-d8dd5', + appId: config.public.firebaseAppId || '1:944408960366:web:4d2cd393e85a0ca9b4357f', + messagingSenderId: config.public.firebaseMessagingSenderId || '944408960366', + storageBucket: (config.public as any).firebaseStorageBucket || 'xflow-d8dd5.firebasestorage.app' } if (!firebaseConfig.apiKey) { @@ -18,6 +19,6 @@ export default defineNuxtPlugin(() => { if (!getApps().length) { initializeApp(firebaseConfig) - console.log('[Firebase] Initialized') + console.log('[Firebase] Initialized with project:', firebaseConfig.projectId) } }) diff --git a/apps/web/nuxt.config.ts b/apps/web/nuxt.config.ts index fe5e6ba..298f08a 100644 --- a/apps/web/nuxt.config.ts +++ b/apps/web/nuxt.config.ts @@ -62,7 +62,7 @@ export default defineNuxtConfig({ runtimeConfig: { jwtSecret: process.env.NUXT_JWT_SECRET || 'your-super-secret-jwt-key', - firebaseApiKey: process.env.NUXT_FIREBASE_API_KEY || process.env.FIREBASE_API_KEY || '', + firebaseApiKey: process.env.NUXT_FIREBASE_API_KEY || process.env.FIREBASE_API_KEY || 'AIzaSyDP1IxP7ntZ5k3agzulPjW_dDsQMKsMPck', giteaUrl: process.env.GITEA_URL || '', giteaToken: process.env.GITEA_TOKEN || '', giteaOrg: process.env.GITEA_ORG || '', @@ -72,11 +72,12 @@ export default defineNuxtConfig({ qwenApiKey: '', public: { apiBase: process.env.NUXT_PUBLIC_API_BASE || '/api', - firebaseApiKey: process.env.NUXT_PUBLIC_FIREBASE_API_KEY || process.env.FIREBASE_API_KEY || '', - firebaseAuthDomain: process.env.NUXT_PUBLIC_FIREBASE_AUTH_DOMAIN || process.env.FIREBASE_AUTH_DOMAIN || '', - firebaseProjectId: process.env.NUXT_PUBLIC_FIREBASE_PROJECT_ID || process.env.FIREBASE_PROJECT_ID || '', - firebaseAppId: process.env.NUXT_PUBLIC_FIREBASE_APP_ID || process.env.FIREBASE_APP_ID || '', - firebaseMessagingSenderId: process.env.NUXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID || process.env.FIREBASE_MESSAGING_SENDER_ID || '' + firebaseApiKey: process.env.NUXT_PUBLIC_FIREBASE_API_KEY || process.env.FIREBASE_API_KEY || 'AIzaSyDP1IxP7ntZ5k3agzulPjW_dDsQMKsMPck', + firebaseAuthDomain: process.env.NUXT_PUBLIC_FIREBASE_AUTH_DOMAIN || process.env.FIREBASE_AUTH_DOMAIN || 'xflow-d8dd5.firebaseapp.com', + firebaseProjectId: process.env.NUXT_PUBLIC_FIREBASE_PROJECT_ID || process.env.FIREBASE_PROJECT_ID || 'xflow-d8dd5', + firebaseAppId: process.env.NUXT_PUBLIC_FIREBASE_APP_ID || process.env.FIREBASE_APP_ID || '1:944408960366:web:4d2cd393e85a0ca9b4357f', + firebaseMessagingSenderId: process.env.NUXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID || process.env.FIREBASE_MESSAGING_SENDER_ID || '944408960366', + firebaseStorageBucket: process.env.NUXT_PUBLIC_FIREBASE_STORAGE_BUCKET || process.env.FIREBASE_STORAGE_BUCKET || 'xflow-d8dd5.firebasestorage.app' } }, diff --git a/docker-compose.coolify.yml b/docker-compose.coolify.yml index 67cc333..5559231 100644 --- a/docker-compose.coolify.yml +++ b/docker-compose.coolify.yml @@ -19,12 +19,12 @@ services: NUXT_OPEN_ROUTER_API_KEY: '${OPEN_ROUTER_API_KEY:-}' NUXT_QWEN_API_KEY: '${NUXT_QWEN_API_KEY:-}' DEEPSEEK_API_KEY: '${DEEPSEEK_API_KEY:-}' - FIREBASE_API_KEY: '${FIREBASE_API_KEY:-}' - FIREBASE_AUTH_DOMAIN: '${FIREBASE_AUTH_DOMAIN:-}' - FIREBASE_PROJECT_ID: '${FIREBASE_PROJECT_ID:-}' - FIREBASE_STORAGE_BUCKET: '${FIREBASE_STORAGE_BUCKET:-}' - FIREBASE_MESSAGING_SENDER_ID: '${FIREBASE_MESSAGING_SENDER_ID:-}' - FIREBASE_APP_ID: '${FIREBASE_APP_ID:-}' + FIREBASE_API_KEY: '${FIREBASE_API_KEY:-AIzaSyDP1IxP7ntZ5k3agzulPjW_dDsQMKsMPck}' + FIREBASE_AUTH_DOMAIN: '${FIREBASE_AUTH_DOMAIN:-xflow-d8dd5.firebaseapp.com}' + FIREBASE_PROJECT_ID: '${FIREBASE_PROJECT_ID:-xflow-d8dd5}' + FIREBASE_STORAGE_BUCKET: '${FIREBASE_STORAGE_BUCKET:-xflow-d8dd5.firebasestorage.app}' + FIREBASE_MESSAGING_SENDER_ID: '${FIREBASE_MESSAGING_SENDER_ID:-944408960366}' + FIREBASE_APP_ID: '${FIREBASE_APP_ID:-1:944408960366:web:4d2cd393e85a0ca9b4357f}' TZ: '${TZ:-Asia/Almaty}' depends_on: - db @@ -49,7 +49,6 @@ services: POSTGRES_USER: '${POSTGRES_USER:-xflow}' POSTGRES_DB: '${POSTGRES_DB:-xflow}' - POSTGRES_HOST_AUTH_METHOD: 'trust' POSTGRES_PASSWORD: '${POSTGRES_PASSWORD:-xflow_db_secret_pass}' DATABASE_URL: '${DATABASE_URL:-postgresql://xflow:${POSTGRES_PASSWORD:-xflow_db_secret_pass}@db:5432/xflow}' NUXT_DATABASE_URL: '${DATABASE_URL:-postgresql://xflow:${POSTGRES_PASSWORD:-xflow_db_secret_pass}@db:5432/xflow}' @@ -65,24 +64,24 @@ services: NUXT_QWEN_API_KEY: '${NUXT_QWEN_API_KEY:-}' DEEPSEEK_API_KEY: '${DEEPSEEK_API_KEY:-}' - FIREBASE_API_KEY: '${FIREBASE_API_KEY:-}' - NUXT_FIREBASE_API_KEY: '${FIREBASE_API_KEY:-}' - NUXT_PUBLIC_FIREBASE_API_KEY: '${FIREBASE_API_KEY:-}' - FIREBASE_AUTH_DOMAIN: '${FIREBASE_AUTH_DOMAIN:-}' - NUXT_FIREBASE_AUTH_DOMAIN: '${FIREBASE_AUTH_DOMAIN:-}' - NUXT_PUBLIC_FIREBASE_AUTH_DOMAIN: '${FIREBASE_AUTH_DOMAIN:-}' - FIREBASE_PROJECT_ID: '${FIREBASE_PROJECT_ID:-}' - NUXT_FIREBASE_PROJECT_ID: '${FIREBASE_PROJECT_ID:-}' - NUXT_PUBLIC_FIREBASE_PROJECT_ID: '${FIREBASE_PROJECT_ID:-}' - FIREBASE_STORAGE_BUCKET: '${FIREBASE_STORAGE_BUCKET:-}' - NUXT_FIREBASE_STORAGE_BUCKET: '${FIREBASE_STORAGE_BUCKET:-}' - NUXT_PUBLIC_FIREBASE_STORAGE_BUCKET: '${FIREBASE_STORAGE_BUCKET:-}' - FIREBASE_MESSAGING_SENDER_ID: '${FIREBASE_MESSAGING_SENDER_ID:-}' - NUXT_FIREBASE_MESSAGING_SENDER_ID: '${FIREBASE_MESSAGING_SENDER_ID:-}' - NUXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID: '${FIREBASE_MESSAGING_SENDER_ID:-}' - FIREBASE_APP_ID: '${FIREBASE_APP_ID:-}' - NUXT_FIREBASE_APP_ID: '${FIREBASE_APP_ID:-}' - NUXT_PUBLIC_FIREBASE_APP_ID: '${FIREBASE_APP_ID:-}' + FIREBASE_API_KEY: '${FIREBASE_API_KEY:-AIzaSyDP1IxP7ntZ5k3agzulPjW_dDsQMKsMPck}' + NUXT_FIREBASE_API_KEY: '${FIREBASE_API_KEY:-AIzaSyDP1IxP7ntZ5k3agzulPjW_dDsQMKsMPck}' + NUXT_PUBLIC_FIREBASE_API_KEY: '${FIREBASE_API_KEY:-AIzaSyDP1IxP7ntZ5k3agzulPjW_dDsQMKsMPck}' + FIREBASE_AUTH_DOMAIN: '${FIREBASE_AUTH_DOMAIN:-xflow-d8dd5.firebaseapp.com}' + NUXT_FIREBASE_AUTH_DOMAIN: '${FIREBASE_AUTH_DOMAIN:-xflow-d8dd5.firebaseapp.com}' + NUXT_PUBLIC_FIREBASE_AUTH_DOMAIN: '${FIREBASE_AUTH_DOMAIN:-xflow-d8dd5.firebaseapp.com}' + FIREBASE_PROJECT_ID: '${FIREBASE_PROJECT_ID:-xflow-d8dd5}' + NUXT_FIREBASE_PROJECT_ID: '${FIREBASE_PROJECT_ID:-xflow-d8dd5}' + NUXT_PUBLIC_FIREBASE_PROJECT_ID: '${FIREBASE_PROJECT_ID:-xflow-d8dd5}' + FIREBASE_STORAGE_BUCKET: '${FIREBASE_STORAGE_BUCKET:-xflow-d8dd5.firebasestorage.app}' + NUXT_FIREBASE_STORAGE_BUCKET: '${FIREBASE_STORAGE_BUCKET:-xflow-d8dd5.firebasestorage.app}' + NUXT_PUBLIC_FIREBASE_STORAGE_BUCKET: '${FIREBASE_STORAGE_BUCKET:-xflow-d8dd5.firebasestorage.app}' + FIREBASE_MESSAGING_SENDER_ID: '${FIREBASE_MESSAGING_SENDER_ID:-944408960366}' + NUXT_FIREBASE_MESSAGING_SENDER_ID: '${FIREBASE_MESSAGING_SENDER_ID:-944408960366}' + NUXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID: '${FIREBASE_MESSAGING_SENDER_ID:-944408960366}' + FIREBASE_APP_ID: '${FIREBASE_APP_ID:-1:944408960366:web:4d2cd393e85a0ca9b4357f}' + NUXT_FIREBASE_APP_ID: '${FIREBASE_APP_ID:-1:944408960366:web:4d2cd393e85a0ca9b4357f}' + NUXT_PUBLIC_FIREBASE_APP_ID: '${FIREBASE_APP_ID:-1:944408960366:web:4d2cd393e85a0ca9b4357f}' db: image: postgres:16-alpine