Variables d'Environnement
Vue d'ensemble
| Service | Fichier | Usage |
|---|---|---|
| Frontend | src/environments/*.ts | Config Angular |
| Backend | .env | Supabase local |
| Generator | .env | Config Node.js |
| Docker | .env (racine) | Docker Compose |
Frontend (Angular)
Développement
// front-dedicaces/src/environments/environment.ts
export const environment = {
production: false,
// Supabase
supabaseUrl: 'http://localhost:54321',
supabaseKey: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',
// Stripe (mode test)
stripeKey: 'pk_test_51...',
// Video Generator
generatorUrl: 'http://localhost:5001',
// Analytics (désactivé en dev)
posthogKey: '',
googleAnalyticsId: ''
};
Production
// front-dedicaces/src/environments/environment.prod.ts
export const environment = {
production: true,
// Supabase Production
supabaseUrl: 'https://xxxx.supabase.co',
supabaseKey: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',
// Stripe (mode live)
stripeKey: 'pk_live_51...',
// Video Generator Production
generatorUrl: 'https://api.momentscollectifs.fr',
// Analytics
posthogKey: 'phc_...',
googleAnalyticsId: 'G-XXXXXXXXXX'
};
Variables Requises
| Variable | Description | Exemple |
|---|---|---|
supabaseUrl | URL du projet Supabase | https://xxx.supabase.co |
supabaseKey | Clé anonyme (publique) | eyJ... |
stripeKey | Clé publique Stripe | pk_live_... |
generatorUrl | URL du Video Generator | https://api.momentscollectifs.fr |
Backend (Supabase)
Développement Local
# back-dedicaces/.env
# Base de données locale
POSTGRES_PASSWORD=postgres
POSTGRES_DB=postgres
POSTGRES_USER=postgres
# JWT (généré par Supabase)
JWT_SECRET=super-secret-jwt-token-with-at-least-32-characters
# Clés d'API (générées par Supabase start)
ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
# URL du site (pour redirections)
SITE_URL=http://localhost:4200
Production
# back-dedicaces/.env.production
# Stripe
STRIPE_API_KEY=sk_live_51...
STRIPE_WEBHOOK_SIGNING_SECRET=whsec_...
# URL du site
SITE_URL=https://app.momentscollectifs.fr
Variables pour Edge Functions
Configurées dans le dashboard Supabase :
| Variable | Description |
|---|---|
STRIPE_API_KEY | Clé secrète Stripe |
STRIPE_WEBHOOK_SIGNING_SECRET | Secret du webhook |
SITE_URL | URL de l'application |
Video Generator
Configuration
# dedicace-generator/.env
# Serveur
PORT=5001
NODE_ENV=production
# Supabase (pour accéder aux vidéos)
SUPABASE_URL=https://xxxx.supabase.co
SUPABASE_SERVICE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
# Puppeteer (Docker)
PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium
# Limites
MAX_PRESENTATION_SIZE=100
MAX_VIDEO_DURATION=120
Variables Requises
| Variable | Description | Défaut |
|---|---|---|
PORT | Port du serveur | 5001 |
NODE_ENV | Environnement | development |
SUPABASE_URL | URL Supabase | - |
SUPABASE_SERVICE_KEY | Clé service (secrète) | - |
PUPPETEER_EXECUTABLE_PATH | Chemin Chromium | Auto-détecté |
Docker Compose
Variables Racine
# .env (à la racine du projet)
# Supabase
SUPABASE_URL=https://xxxx.supabase.co
SUPABASE_ANON_KEY=eyJ...
SUPABASE_SERVICE_KEY=eyJ...
# Stripe
STRIPE_PUBLIC_KEY=pk_live_...
STRIPE_SECRET_KEY=sk_live_...
STRIPE_WEBHOOK_SECRET=whsec_...
# Domaines
DOMAIN=momentscollectifs.fr
APP_DOMAIN=app.momentscollectifs.fr
API_DOMAIN=api.momentscollectifs.fr
# Email admin (Let's Encrypt)
ACME_EMAIL=admin@momentscollectifs.fr
Utilisation dans docker-compose.yml
version: '3.8'
services:
generator:
environment:
- SUPABASE_URL=${SUPABASE_URL}
- SUPABASE_SERVICE_KEY=${SUPABASE_SERVICE_KEY}
labels:
- "traefik.http.routers.generator.rule=Host(`${API_DOMAIN}`)"
Secrets et Sécurité
Bonnes Pratiques
-
Ne jamais commiter les secrets
# .gitignore
.env
.env.production
.env.local
*.pem
*.key -
Utiliser des fichiers .env.example
# .env.example
SUPABASE_URL=
SUPABASE_SERVICE_KEY=
STRIPE_SECRET_KEY= -
Permissions restrictives
chmod 600 .env
chmod 600 .env.production
Docker Secrets (Production)
# docker-compose.prod.yml
version: '3.8'
secrets:
supabase_service_key:
file: ./secrets/supabase_service_key.txt
stripe_secret_key:
file: ./secrets/stripe_secret_key.txt
services:
generator:
secrets:
- supabase_service_key
environment:
- SUPABASE_SERVICE_KEY_FILE=/run/secrets/supabase_service_key
Référence Complète
Frontend
| Variable | Requis | Description |
|---|---|---|
production | Oui | Mode production |
supabaseUrl | Oui | URL Supabase |
supabaseKey | Oui | Clé anonyme |
stripeKey | Oui | Clé publique Stripe |
generatorUrl | Oui | URL Video Generator |
posthogKey | Non | Clé PostHog |
googleAnalyticsId | Non | ID Google Analytics |
Backend (Edge Functions)
| Variable | Requis | Description |
|---|---|---|
STRIPE_API_KEY | Oui | Clé secrète Stripe |
STRIPE_WEBHOOK_SIGNING_SECRET | Oui | Secret webhook |
SITE_URL | Oui | URL du site |
Video Generator
| Variable | Requis | Description |
|---|---|---|
PORT | Non | Port serveur (5001) |
NODE_ENV | Non | Environnement |
SUPABASE_URL | Oui | URL Supabase |
SUPABASE_SERVICE_KEY | Oui | Clé service |
PUPPETEER_EXECUTABLE_PATH | Non | Chemin Chromium |
Docker/Traefik
| Variable | Requis | Description |
|---|---|---|
DOMAIN | Oui | Domaine principal |
APP_DOMAIN | Oui | Sous-domaine app |
API_DOMAIN | Oui | Sous-domaine API |
ACME_EMAIL | Oui | Email Let's Encrypt |