Skip to main content

Environment Variables

All environment variables use the VITE_ prefix so Vite exposes them to the client at build time.

File location

FilePurpose
.env.exampleTemplate (committed to Git)
.envLocal secrets (never commit)

Add .env to .gitignore — it is already excluded by default.

Variables reference

VariableRequiredDescription
VITE_FIREBASE_API_KEYYesFirebase web API key
VITE_FIREBASE_AUTH_DOMAINYes{projectId}.firebaseapp.com
VITE_FIREBASE_PROJECT_IDYesFirebase project ID
VITE_FIREBASE_STORAGE_BUCKETYes{projectId}.appspot.com
VITE_FIREBASE_MESSAGING_SENDER_IDYesFCM sender ID
VITE_FIREBASE_APP_IDYesFirebase app ID
VITE_FIREBASE_MEASUREMENT_IDNoGoogle Analytics measurement ID

Example .env

VITE_FIREBASE_API_KEY=AIzaSyXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
VITE_FIREBASE_AUTH_DOMAIN=my-assets.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=my-assets
VITE_FIREBASE_STORAGE_BUCKET=my-assets.appspot.com
VITE_FIREBASE_MESSAGING_SENDER_ID=123456789012
VITE_FIREBASE_APP_ID=1:123456789012:web:abcdef123456
VITE_FIREBASE_MEASUREMENT_ID=G-XXXXXXXXXX

Loading order

  1. On app start, src/firebase.ts reads env vars via import.meta.env
  2. If missing, falls back to src/config/defaultFirebase.ts defaults
  3. Super Admin saved config in Firestore settings/admin overrides on reload

Production builds

Environment variables are baked in at build time:

# Ensure .env is correct before building
npm run build

For CI/CD, inject env vars in your pipeline before npm run build.

Dev server API

During npm run dev, POST to /api/firebase-backend-config writes .env from the Settings UI. This only works in development mode.

warning

Never expose service account keys or admin SDK credentials in VITE_ variables. The client only needs the public web config.