Variables d'environnement
Référence complète de toutes les variables d'environnement, leur visibilité et la configuration par application.
Vue d'ensemble
ScaleRocket utilise des variables d'environnement pour configurer chaque application et le backend. Cette page liste chaque variable, si elle est sûre à exposer publiquement, et où elle est utilisée.
Configuration par application
apps/web (.env.local)
Le site marketing Next.js. Les variables préfixées par NEXT_PUBLIC_ sont incluses dans le bundle client et peuvent être exposées en toute sécurité.
| Variable | Requise | Publique | Description |
|---|---|---|---|
NEXT_PUBLIC_WEB_URL | Oui | Oui | URL du site marketing (ex. https://scalerocket.dev) |
NEXT_PUBLIC_APP_URL | Oui | Oui | URL du dashboard pour les liens "Aller au Dashboard" |
NEXT_PUBLIC_PLAUSIBLE_DOMAIN | Non | Oui | Domaine pour Plausible analytics |
NEXT_PUBLIC_GA_ID | Non | Oui | ID de mesure Google Analytics |
NEXT_PUBLIC_POSTHOG_KEY | Non | Oui | Clé API du projet PostHog |
# apps/web/.env.local
NEXT_PUBLIC_WEB_URL=https://scalerocket.dev
NEXT_PUBLIC_APP_URL=https://app.scalerocket.dev
# Analytics (optional)
NEXT_PUBLIC_PLAUSIBLE_DOMAIN=scalerocket.dev
NEXT_PUBLIC_GA_ID=G-XXXXXXXXXX
NEXT_PUBLIC_POSTHOG_KEY=phc_xxxapps/app (.env.local)
Le tableau de bord utilisateur Vite. Les variables préfixées par VITE_ sont incluses dans le bundle client.
| Variable | Requise | Publique | Description |
|---|---|---|---|
VITE_WEB_URL | Oui | Oui | URL du site marketing pour les liens retour |
VITE_APP_URL | Oui | Oui | URL du dashboard (auto-référence pour les redirections) |
VITE_SUPABASE_URL | Oui | Oui | URL du projet Supabase (https://xxx.supabase.co) |
VITE_SUPABASE_ANON_KEY | Oui | Oui | Clé anonyme/publique Supabase (sûre à exposer) |
VITE_STRIPE_PUBLISHABLE_KEY | Oui | Oui | Clé publiable Stripe (pk_test_ ou pk_live_) |
# apps/app/.env.local
VITE_WEB_URL=https://scalerocket.dev
VITE_APP_URL=https://app.scalerocket.dev
VITE_SUPABASE_URL=https://xxx.supabase.co
VITE_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
VITE_STRIPE_PUBLISHABLE_KEY=pk_test_xxx| Variable | Requise | Publique | Description |
|---|---|---|---|
VITE_WEB_URL | Oui | Oui | URL du site marketing pour les liens retour |
VITE_APP_URL | Oui | Oui | URL du dashboard (auto-référence pour les redirections) |
VITE_CONVEX_URL | Oui | Oui | URL du déploiement Convex (https://xxx.convex.cloud) |
VITE_STRIPE_PUBLISHABLE_KEY | Oui | Oui | Clé publiable Stripe (pk_test_ ou pk_live_) |
# apps/app/.env.local
VITE_WEB_URL=https://scalerocket.dev
VITE_APP_URL=https://app.scalerocket.dev
VITE_CONVEX_URL=https://xxx.convex.cloud
VITE_STRIPE_PUBLISHABLE_KEY=pk_test_xxxapps/ops (.env.local)
Le panneau d'administration Vite.
Nécessite la clé service role pour un accès non restreint à la base de données.
| Variable | Requise | Publique | Description |
|---|---|---|---|
VITE_SUPABASE_URL | Oui | Oui | URL du projet Supabase |
VITE_SUPABASE_ANON_KEY | Oui | Oui | Clé anonyme/publique Supabase |
VITE_SUPABASE_SERVICE_KEY | Oui | Non | Clé service role Supabase -- contourne le RLS |
# apps/ops/.env.local
VITE_SUPABASE_URL=https://xxx.supabase.co
VITE_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
VITE_SUPABASE_SERVICE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...Attention : La clé service role accorde un accès complet à la base de données, contournant toutes les politiques RLS. Ne l'ajoutez jamais à apps/web ou apps/app.
| Variable | Requise | Publique | Description |
|---|---|---|---|
VITE_CONVEX_URL | Oui | Oui | URL du déploiement Convex |
# apps/ops/.env.local
VITE_CONVEX_URL=https://xxx.convex.cloudLe contrôle d'accès admin est géré côté serveur par les fonctions Convex en utilisant la variable d'environnement ADMIN_EMAILS.
Secrets backend
Les Edge Functions ont automatiquement accès à SUPABASE_URL, SUPABASE_ANON_KEY et SUPABASE_SERVICE_ROLE_KEY sans aucune configuration.
Les secrets suivants doivent être définis manuellement :
| Variable | Requise | Description |
|---|---|---|
STRIPE_SECRET_KEY | Oui | Clé secrète API Stripe (sk_test_ ou sk_live_) |
STRIPE_WEBHOOK_SECRET | Oui | Secret de signature webhook Stripe (whsec_...) |
APP_URL | Oui | URL du dashboard pour les redirections dans les Edge Functions |
RESEND_API_KEY | Oui | Clé API Resend pour les e-mails (re_...) |
RESEND_FROM_EMAIL | Oui | Adresse e-mail d'expédition (ex. noreply@scalerocket.dev) |
ADMIN_EMAILS | Oui | Liste d'adresses e-mail admin séparées par des virgules |
GOOGLE_API_KEY | Non | Clé API Google (uniquement si vous utilisez des fonctionnalités IA) |
Pour le développement local, créez supabase/.env :
STRIPE_SECRET_KEY=sk_test_xxx
STRIPE_WEBHOOK_SECRET=whsec_xxx
APP_URL=http://localhost:5173
RESEND_API_KEY=re_xxx
RESEND_FROM_EMAIL=noreply@yourdomain.com
ADMIN_EMAILS=admin@example.com
GOOGLE_API_KEY=xxx # optionalPour la production, définissez les secrets via CLI :
pnpm supabase secrets set STRIPE_SECRET_KEY=sk_live_xxx
pnpm supabase secrets set STRIPE_WEBHOOK_SECRET=whsec_xxx
pnpm supabase secrets set APP_URL=https://app.scalerocket.dev
pnpm supabase secrets set RESEND_API_KEY=re_xxx
pnpm supabase secrets set RESEND_FROM_EMAIL=noreply@yourdomain.com
pnpm supabase secrets set ADMIN_EMAILS=admin@example.com
pnpm supabase secrets set GOOGLE_API_KEY=xxx # optionalLes variables d'environnement suivantes doivent être définies pour les fonctions Convex :
| Variable | Requise | Description |
|---|---|---|
STRIPE_SECRET_KEY | Oui | Clé secrète API Stripe (sk_test_ ou sk_live_) |
STRIPE_WEBHOOK_SECRET | Oui | Secret de signature webhook Stripe (whsec_...) |
APP_URL | Oui | URL du dashboard pour les redirections |
RESEND_API_KEY | Oui | Clé API Resend pour les e-mails (re_...) |
RESEND_FROM_EMAIL | Oui | Adresse e-mail d'expédition (ex. noreply@scalerocket.dev) |
ADMIN_EMAILS | Oui | Liste d'adresses e-mail admin séparées par des virgules |
GOOGLE_API_KEY | Non | Clé API Google (uniquement si vous utilisez des fonctionnalités IA) |
Pour le développement local, définissez les variables sur le déploiement dev :
npx convex env set STRIPE_SECRET_KEY sk_test_xxx
npx convex env set STRIPE_WEBHOOK_SECRET whsec_xxx
npx convex env set APP_URL http://localhost:5173
npx convex env set RESEND_API_KEY re_xxx
npx convex env set RESEND_FROM_EMAIL noreply@yourdomain.com
npx convex env set ADMIN_EMAILS admin@example.comPour la production, définissez les variables sur le déploiement prod :
npx convex env set STRIPE_SECRET_KEY sk_live_xxx --prod
npx convex env set STRIPE_WEBHOOK_SECRET whsec_xxx --prod
npx convex env set APP_URL https://app.scalerocket.dev --prod
npx convex env set RESEND_API_KEY re_xxx --prod
npx convex env set RESEND_FROM_EMAIL noreply@yourdomain.com --prod
npx convex env set ADMIN_EMAILS admin@example.com --prodValeurs de développement local
Lorsque vous exécutez Supabase localement avec pnpm supabase start, les identifiants locaux sont affichés :
API URL: http://localhost:54321
anon key: eyJhbGci...
service_role key: eyJhbGci...Utilisez-les dans vos fichiers .env.local pendant le développement.
Lorsque vous exécutez Convex localement avec npx convex dev, il se connecte à votre déploiement dev. L'URL Convex est affichée dans le terminal et stockée dans .env.local :
VITE_CONVEX_URL=https://YOUR_DEV_DEPLOYMENT.convex.cloudRègles de sécurité
- Ne jamais committer les fichiers
.env.local. Ils sont dans.gitignorepar défaut. - Ne jamais exposer les clés secrètes dans le code côté client. Seules les variables préfixées par
NEXT_PUBLIC_*etVITE_*sont incluses dans le bundle client. - Utilisez des clés différentes pour le test et la production. Clés test Stripe (
sk_test_) pour le développement, clés live (sk_live_) pour la production. - Renouvelez les clés si elles sont compromises. Régénérez-les dans le dashboard correspondant (Supabase, Stripe, Resend) et mettez à jour partout.
- Définissez les variables d'environnement Vercel pour chaque application déployée séparément. Chaque projet Vercel a ses propres variables d'environnement.
Fini ? Marquez cette page comme terminée.