Aller au contenu principal

Variables d'Environnement

Vue d'ensemble

ServiceFichierUsage
Frontendsrc/environments/*.tsConfig Angular
Backend.envSupabase local
Generator.envConfig 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

VariableDescriptionExemple
supabaseUrlURL du projet Supabasehttps://xxx.supabase.co
supabaseKeyClé anonyme (publique)eyJ...
stripeKeyClé publique Stripepk_live_...
generatorUrlURL du Video Generatorhttps://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 :

VariableDescription
STRIPE_API_KEYClé secrète Stripe
STRIPE_WEBHOOK_SIGNING_SECRETSecret du webhook
SITE_URLURL 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

VariableDescriptionDéfaut
PORTPort du serveur5001
NODE_ENVEnvironnementdevelopment
SUPABASE_URLURL Supabase-
SUPABASE_SERVICE_KEYClé service (secrète)-
PUPPETEER_EXECUTABLE_PATHChemin ChromiumAuto-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

  1. Ne jamais commiter les secrets

    # .gitignore
    .env
    .env.production
    .env.local
    *.pem
    *.key
  2. Utiliser des fichiers .env.example

    # .env.example
    SUPABASE_URL=
    SUPABASE_SERVICE_KEY=
    STRIPE_SECRET_KEY=
  3. 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

VariableRequisDescription
productionOuiMode production
supabaseUrlOuiURL Supabase
supabaseKeyOuiClé anonyme
stripeKeyOuiClé publique Stripe
generatorUrlOuiURL Video Generator
posthogKeyNonClé PostHog
googleAnalyticsIdNonID Google Analytics

Backend (Edge Functions)

VariableRequisDescription
STRIPE_API_KEYOuiClé secrète Stripe
STRIPE_WEBHOOK_SIGNING_SECRETOuiSecret webhook
SITE_URLOuiURL du site

Video Generator

VariableRequisDescription
PORTNonPort serveur (5001)
NODE_ENVNonEnvironnement
SUPABASE_URLOuiURL Supabase
SUPABASE_SERVICE_KEYOuiClé service
PUPPETEER_EXECUTABLE_PATHNonChemin Chromium

Docker/Traefik

VariableRequisDescription
DOMAINOuiDomaine principal
APP_DOMAINOuiSous-domaine app
API_DOMAINOuiSous-domaine API
ACME_EMAILOuiEmail Let's Encrypt