Variables d'environnement
Configuration complète des variables d'environnement pour Luneo en développement et production.
Variables Frontend (Next.js)
Créez un fichier .env.local à la racine de apps/frontend/
# ============================================
# FRONTEND ENVIRONMENT VARIABLES
# ============================================ # Supabase Configuration
NEXT_PUBLIC_SUPABASE_URL=https://obrijgptqztacolemsbk.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key_here
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key_here # Stripe Configuration
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_live_xxxxxxxxxxxxx
STRIPE_SECRET_KEY=sk_live_xxxxxxxxxxxxx # Stripe Price IDs
STRIPE_PRICE_PRO=price_xxxxxxxxxxxxx
STRIPE_PRICE_BUSINESS=price_xxxxxxxxxxxxx
STRIPE_PRICE_ENTERPRISE=price_xxxxxxxxxxxxx # Google OAuth
NEXT_PUBLIC_GOOGLE_CLIENT_ID=your_google_client_id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your_google_client_secret # Application URLs
NEXT_PUBLIC_APP_URL=https://app.luneo.app
NEXT_PUBLIC_API_URL=https://api.luneo.app # OpenAI (for AI features)
OPENAI_API_KEY=sk-xxxxxxxxxxxxx # SendGrid (for emails)
SENDGRID_API_KEY=SG.xxxxxxxxxxxxx
SENDGRID_FROM_EMAIL=noreply@luneo.app # Vercel Analytics (optional)
NEXT_PUBLIC_VERCEL_ANALYTICS_ID=your_analytics_id NEXT_PUBLIC_SUPABASE_URL
Obligatoire: Oui
Type: URL publique
Description: URL de votre projet Supabase
Trouvez cette valeur dans : Supabase Dashboard → Settings → API → Project URL
NEXT_PUBLIC_SUPABASE_ANON_KEY
Obligatoire: Oui
Type: Clé publique
Description: Clé anonyme Supabase (safe pour le frontend)
Trouvez cette valeur dans : Supabase Dashboard → Settings → API → anon public
SUPABASE_SERVICE_ROLE_KEY
Obligatoire: Oui
Type: Clé secrète
Description: Clé service role (accès admin, backend only)
⚠️ Ne JAMAIS exposer cette clé côté client !
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY
Obligatoire: Oui (si Stripe activé)
Type: Clé publique
Description: Clé publique Stripe pour le frontend
Trouvez cette valeur dans : Stripe Dashboard → Developers → API keys → Publishable key
STRIPE_SECRET_KEY
Obligatoire: Oui (si Stripe activé)
Type: Clé secrète
Description: Clé secrète Stripe (backend only)
⚠️ Production: Utilisez sk_live_ pas sk_test_
Configuration Production (Vercel)
Étapes de configuration
- 1. Allez sur Vercel Dashboard → Votre projet → Settings → Environment Variables
- 2. Cliquez sur "Add New"
- 3. Pour chaque variable, sélectionnez l'environnement : Production
- 4. Collez la valeur et cliquez "Save"
- 5. Redéployez votre application pour appliquer les changements
Sécurité et bonnes pratiques
✅ À FAIRE
- • Utilisez des clés différentes pour dev et production
- • Ne commitez JAMAIS les fichiers .env dans Git
- • Ajoutez .env* dans votre .gitignore
- • Rotez vos clés API régulièrement (tous les 3 mois minimum)
- • Utilisez des secrets managers pour la production (Vercel, AWS Secrets Manager)
❌ À NE JAMAIS FAIRE
- • Ne partagez jamais vos clés secrètes publiquement
- • Ne hardcodez pas les clés dans le code
- • N'exposez pas les clés backend (service_role, secret_key) côté client
- • N'utilisez pas les mêmes clés en dev et prod
- • Ne commitez pas les .env dans GitHub
Problèmes courants
❌"Environment variable not defined"
Cause: Variable manquante ou mal nommée
Solution:
- Vérifiez l'orthographe exacte dans .env.local
- Redémarrez le serveur dev :
npm run dev - Les variables NEXT_PUBLIC_ sont accessibles côté client
❌"Invalid Supabase credentials"
Solution:
- Vérifiez que l'URL Supabase est correcte (format: https://xxxxx.supabase.co)
- Vérifiez que la clé anon correspond au bon projet
- Allez dans Supabase Dashboard → Settings → API pour copier les bonnes valeurs