feat(firebase): embed production Firebase credentials as build-time defaults in nuxt.config, Dockerfile and compose

This commit is contained in:
2026-09-28 12:01:25 +05:00
parent 7d324a6140
commit 7b37f6cf70
4 changed files with 44 additions and 43 deletions
+6 -6
View File
@@ -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} \
+7 -6
View File
@@ -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)
}
})
+7 -6
View File
@@ -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'
}
},
+24 -25
View File
@@ -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