Create the private files
From the source folder, copy:
.env.development.example to .env.development
.env.production.example to .env.production
functions/.env.example to functions/.env
.firebaserc.example to .firebasercOn Windows File Explorer, enable View > Show > File name extensions before renaming. Confirm the files are not accidentally named .env.development.txt.
These private files are ignored by Git. Do not remove the leading dot from their names.
Website values
| Name | What to enter |
|---|---|
VITE_APP_URL | http://localhost:5173 for development; the current HTTPS host address for production. A temporary Netlify or other host address is valid |
VITE_INSTALLATION_BUSINESS_ID | Keep default |
VITE_FIREBASE_API_KEY | Firebase Web App apiKey |
VITE_FIREBASE_AUTH_DOMAIN | Firebase Web App authDomain |
VITE_FIREBASE_PROJECT_ID | Firebase Web App projectId |
VITE_FIREBASE_STORAGE_BUCKET | Firebase Web App storageBucket |
VITE_FIREBASE_MESSAGING_SENDER_ID | Firebase Web App messagingSenderId |
VITE_FIREBASE_APP_ID | Firebase Web App appId |
VITE_FIREBASE_FUNCTIONS_REGION | Keep europe-west1 unless you intentionally changed the backend region |
VITE_GOOGLE_PLACES_API_KEY | Optional; leave empty for manual address entry |
Do not add quotation marks unless the value itself requires them. Do not add spaces before or after =.
Start with a temporary address
You do not need to own or connect a domain before launching a test store. For example, Netlify may first give you https://your-store.netlify.app. Use that complete address in both places:
.env.production: VITE_APP_URL=https://your-store.netlify.app
functions/.env: STOREFRONT_BASE_URL=https://your-store.netlify.appComplete the deployment and launch test on this address. When a custom domain is ready, replace both values with the new HTTPS address, add the new hostname to Firebase Authentication Authorized domains, and rerun the same deployment command used for the first launch. If WhatsApp is enabled, include --providers=whatsapp when deploying again.
When the website address changes, update both values and deploy again so payment and notification links use the new address.
Backend values
In functions/.env, set FUNCTIONS_REGION to the same value used for VITE_FIREBASE_FUNCTIONS_REGION. Set STOREFRONT_BASE_URL to the current production address. Payment returns and notification links use this value.
The template names for WhatsApp may remain at their defaults until WhatsApp is enabled. Payment and messaging secrets are not placed in this file. Store them with Firebase Functions secrets when deploying an optional provider.
Check both files
Run:
npm run config:validate -- .env.development
npm run config:validate -- .env.productionExpected output begins with:
Required Firebase and application settings are present.Google Places and support contact messages may say optional and unset. That is not an error.
If validation lists a missing key, return to the Firebase Web App configuration and copy that exact value. Do not continue until both environment files pass.