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_OPEN_ROUTER_API_KEY=""
ARG NUXT_QWEN_API_KEY="" ARG NUXT_QWEN_API_KEY=""
ARG DEEPSEEK_API_KEY="" ARG DEEPSEEK_API_KEY=""
ARG FIREBASE_API_KEY="" ARG FIREBASE_API_KEY="AIzaSyDP1IxP7ntZ5k3agzulPjW_dDsQMKsMPck"
ARG FIREBASE_AUTH_DOMAIN="" ARG FIREBASE_AUTH_DOMAIN="xflow-d8dd5.firebaseapp.com"
ARG FIREBASE_PROJECT_ID="" ARG FIREBASE_PROJECT_ID="xflow-d8dd5"
ARG FIREBASE_STORAGE_BUCKET="" ARG FIREBASE_STORAGE_BUCKET="xflow-d8dd5.firebasestorage.app"
ARG FIREBASE_MESSAGING_SENDER_ID="" ARG FIREBASE_MESSAGING_SENDER_ID="944408960366"
ARG FIREBASE_APP_ID="" ARG FIREBASE_APP_ID="1:944408960366:web:4d2cd393e85a0ca9b4357f"
ARG TZ="Asia/Almaty" ARG TZ="Asia/Almaty"
ENV SITE_URL=${SITE_URL} \ ENV SITE_URL=${SITE_URL} \
+7 -6
View File
@@ -4,11 +4,12 @@ export default defineNuxtPlugin(() => {
const config = useRuntimeConfig() const config = useRuntimeConfig()
const firebaseConfig = { const firebaseConfig = {
apiKey: config.public.firebaseApiKey, apiKey: config.public.firebaseApiKey || 'AIzaSyDP1IxP7ntZ5k3agzulPjW_dDsQMKsMPck',
authDomain: config.public.firebaseAuthDomain, authDomain: config.public.firebaseAuthDomain || 'xflow-d8dd5.firebaseapp.com',
projectId: config.public.firebaseProjectId, projectId: config.public.firebaseProjectId || 'xflow-d8dd5',
appId: config.public.firebaseAppId, appId: config.public.firebaseAppId || '1:944408960366:web:4d2cd393e85a0ca9b4357f',
messagingSenderId: config.public.firebaseMessagingSenderId messagingSenderId: config.public.firebaseMessagingSenderId || '944408960366',
storageBucket: (config.public as any).firebaseStorageBucket || 'xflow-d8dd5.firebasestorage.app'
} }
if (!firebaseConfig.apiKey) { if (!firebaseConfig.apiKey) {
@@ -18,6 +19,6 @@ export default defineNuxtPlugin(() => {
if (!getApps().length) { if (!getApps().length) {
initializeApp(firebaseConfig) 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: { runtimeConfig: {
jwtSecret: process.env.NUXT_JWT_SECRET || 'your-super-secret-jwt-key', 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 || '', giteaUrl: process.env.GITEA_URL || '',
giteaToken: process.env.GITEA_TOKEN || '', giteaToken: process.env.GITEA_TOKEN || '',
giteaOrg: process.env.GITEA_ORG || '', giteaOrg: process.env.GITEA_ORG || '',
@@ -72,11 +72,12 @@ export default defineNuxtConfig({
qwenApiKey: '', qwenApiKey: '',
public: { public: {
apiBase: process.env.NUXT_PUBLIC_API_BASE || '/api', apiBase: process.env.NUXT_PUBLIC_API_BASE || '/api',
firebaseApiKey: process.env.NUXT_PUBLIC_FIREBASE_API_KEY || process.env.FIREBASE_API_KEY || '', 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 || '', 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 || '', 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 || '', 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 || '' 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_OPEN_ROUTER_API_KEY: '${OPEN_ROUTER_API_KEY:-}'
NUXT_QWEN_API_KEY: '${NUXT_QWEN_API_KEY:-}' NUXT_QWEN_API_KEY: '${NUXT_QWEN_API_KEY:-}'
DEEPSEEK_API_KEY: '${DEEPSEEK_API_KEY:-}' DEEPSEEK_API_KEY: '${DEEPSEEK_API_KEY:-}'
FIREBASE_API_KEY: '${FIREBASE_API_KEY:-}' FIREBASE_API_KEY: '${FIREBASE_API_KEY:-AIzaSyDP1IxP7ntZ5k3agzulPjW_dDsQMKsMPck}'
FIREBASE_AUTH_DOMAIN: '${FIREBASE_AUTH_DOMAIN:-}' FIREBASE_AUTH_DOMAIN: '${FIREBASE_AUTH_DOMAIN:-xflow-d8dd5.firebaseapp.com}'
FIREBASE_PROJECT_ID: '${FIREBASE_PROJECT_ID:-}' FIREBASE_PROJECT_ID: '${FIREBASE_PROJECT_ID:-xflow-d8dd5}'
FIREBASE_STORAGE_BUCKET: '${FIREBASE_STORAGE_BUCKET:-}' FIREBASE_STORAGE_BUCKET: '${FIREBASE_STORAGE_BUCKET:-xflow-d8dd5.firebasestorage.app}'
FIREBASE_MESSAGING_SENDER_ID: '${FIREBASE_MESSAGING_SENDER_ID:-}' FIREBASE_MESSAGING_SENDER_ID: '${FIREBASE_MESSAGING_SENDER_ID:-944408960366}'
FIREBASE_APP_ID: '${FIREBASE_APP_ID:-}' FIREBASE_APP_ID: '${FIREBASE_APP_ID:-1:944408960366:web:4d2cd393e85a0ca9b4357f}'
TZ: '${TZ:-Asia/Almaty}' TZ: '${TZ:-Asia/Almaty}'
depends_on: depends_on:
- db - db
@@ -49,7 +49,6 @@ services:
POSTGRES_USER: '${POSTGRES_USER:-xflow}' POSTGRES_USER: '${POSTGRES_USER:-xflow}'
POSTGRES_DB: '${POSTGRES_DB:-xflow}' POSTGRES_DB: '${POSTGRES_DB:-xflow}'
POSTGRES_HOST_AUTH_METHOD: 'trust'
POSTGRES_PASSWORD: '${POSTGRES_PASSWORD:-xflow_db_secret_pass}' POSTGRES_PASSWORD: '${POSTGRES_PASSWORD:-xflow_db_secret_pass}'
DATABASE_URL: '${DATABASE_URL:-postgresql://xflow:${POSTGRES_PASSWORD:-xflow_db_secret_pass}@db:5432/xflow}' 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}' 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:-}' NUXT_QWEN_API_KEY: '${NUXT_QWEN_API_KEY:-}'
DEEPSEEK_API_KEY: '${DEEPSEEK_API_KEY:-}' DEEPSEEK_API_KEY: '${DEEPSEEK_API_KEY:-}'
FIREBASE_API_KEY: '${FIREBASE_API_KEY:-}' FIREBASE_API_KEY: '${FIREBASE_API_KEY:-AIzaSyDP1IxP7ntZ5k3agzulPjW_dDsQMKsMPck}'
NUXT_FIREBASE_API_KEY: '${FIREBASE_API_KEY:-}' NUXT_FIREBASE_API_KEY: '${FIREBASE_API_KEY:-AIzaSyDP1IxP7ntZ5k3agzulPjW_dDsQMKsMPck}'
NUXT_PUBLIC_FIREBASE_API_KEY: '${FIREBASE_API_KEY:-}' NUXT_PUBLIC_FIREBASE_API_KEY: '${FIREBASE_API_KEY:-AIzaSyDP1IxP7ntZ5k3agzulPjW_dDsQMKsMPck}'
FIREBASE_AUTH_DOMAIN: '${FIREBASE_AUTH_DOMAIN:-}' FIREBASE_AUTH_DOMAIN: '${FIREBASE_AUTH_DOMAIN:-xflow-d8dd5.firebaseapp.com}'
NUXT_FIREBASE_AUTH_DOMAIN: '${FIREBASE_AUTH_DOMAIN:-}' NUXT_FIREBASE_AUTH_DOMAIN: '${FIREBASE_AUTH_DOMAIN:-xflow-d8dd5.firebaseapp.com}'
NUXT_PUBLIC_FIREBASE_AUTH_DOMAIN: '${FIREBASE_AUTH_DOMAIN:-}' NUXT_PUBLIC_FIREBASE_AUTH_DOMAIN: '${FIREBASE_AUTH_DOMAIN:-xflow-d8dd5.firebaseapp.com}'
FIREBASE_PROJECT_ID: '${FIREBASE_PROJECT_ID:-}' FIREBASE_PROJECT_ID: '${FIREBASE_PROJECT_ID:-xflow-d8dd5}'
NUXT_FIREBASE_PROJECT_ID: '${FIREBASE_PROJECT_ID:-}' NUXT_FIREBASE_PROJECT_ID: '${FIREBASE_PROJECT_ID:-xflow-d8dd5}'
NUXT_PUBLIC_FIREBASE_PROJECT_ID: '${FIREBASE_PROJECT_ID:-}' NUXT_PUBLIC_FIREBASE_PROJECT_ID: '${FIREBASE_PROJECT_ID:-xflow-d8dd5}'
FIREBASE_STORAGE_BUCKET: '${FIREBASE_STORAGE_BUCKET:-}' FIREBASE_STORAGE_BUCKET: '${FIREBASE_STORAGE_BUCKET:-xflow-d8dd5.firebasestorage.app}'
NUXT_FIREBASE_STORAGE_BUCKET: '${FIREBASE_STORAGE_BUCKET:-}' NUXT_FIREBASE_STORAGE_BUCKET: '${FIREBASE_STORAGE_BUCKET:-xflow-d8dd5.firebasestorage.app}'
NUXT_PUBLIC_FIREBASE_STORAGE_BUCKET: '${FIREBASE_STORAGE_BUCKET:-}' NUXT_PUBLIC_FIREBASE_STORAGE_BUCKET: '${FIREBASE_STORAGE_BUCKET:-xflow-d8dd5.firebasestorage.app}'
FIREBASE_MESSAGING_SENDER_ID: '${FIREBASE_MESSAGING_SENDER_ID:-}' FIREBASE_MESSAGING_SENDER_ID: '${FIREBASE_MESSAGING_SENDER_ID:-944408960366}'
NUXT_FIREBASE_MESSAGING_SENDER_ID: '${FIREBASE_MESSAGING_SENDER_ID:-}' NUXT_FIREBASE_MESSAGING_SENDER_ID: '${FIREBASE_MESSAGING_SENDER_ID:-944408960366}'
NUXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID: '${FIREBASE_MESSAGING_SENDER_ID:-}' NUXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID: '${FIREBASE_MESSAGING_SENDER_ID:-944408960366}'
FIREBASE_APP_ID: '${FIREBASE_APP_ID:-}' FIREBASE_APP_ID: '${FIREBASE_APP_ID:-1:944408960366:web:4d2cd393e85a0ca9b4357f}'
NUXT_FIREBASE_APP_ID: '${FIREBASE_APP_ID:-}' NUXT_FIREBASE_APP_ID: '${FIREBASE_APP_ID:-1:944408960366:web:4d2cd393e85a0ca9b4357f}'
NUXT_PUBLIC_FIREBASE_APP_ID: '${FIREBASE_APP_ID:-}' NUXT_PUBLIC_FIREBASE_APP_ID: '${FIREBASE_APP_ID:-1:944408960366:web:4d2cd393e85a0ca9b4357f}'
db: db:
image: postgres:16-alpine image: postgres:16-alpine