# ─── DATABASE ───────────────────────────────────────────────────────────────── DATABASE_URL="postgresql://user:pass@host:port/db?schema=public" REDIS_URL="redis://localhost:6379" # ─── SECURITY ───────────────────────────────────────────────────────────────── JWT_SECRET="your-super-secret-jwt-key" ADMIN_API_KEY="your-internal-admin-key" ENCRYPTION_SECRET="your-32-char-encryption-key-for-secrets" WHATSAPP_VERIFY_TOKEN="your-meta-webhook-verify-token" WHATSAPP_APP_SECRET="your-meta-app-secret-for-hmac" # ─── PROVIDERS (GLOBAL FALLBACKS) ───────────────────────────────────────────── OPENAI_API_KEY="sk-..." GOOGLE_AI_API_KEY="AIza..." # ORANGE_MONEY_API_KEY="" # WAVE_API_KEY="" # ─── INFRASTRUCTURE ─────────────────────────────────────────────────────────── PORT=8080 NODE_ENV="production" SENTRY_DSN="" # optionnel — laisser vide pour désactiver CORS_ORIGINS="https://admin.xamle.studio,https://xamle.studio,https://edtechadmin.netlify.app" ADMIN_URL="https://edtechadmin.netlify.app" WHATSAPP_GRAPH_URL="https://graph.facebook.com/v18.0" VITE_CLIENT_URL="https://admin.xamle.studio" RAILWAY_INTERNAL_URL="http://whatsapp-worker.railway.internal:8082" RAILWAY_PUBLIC_URL="https://api.xamle.studio" # ─── STORAGE (R2/S3) ────────────────────────────────────────────────────────── R2_ACCESS_KEY_ID="..." R2_SECRET_ACCESS_KEY="..." R2_ENDPOINT="https://.r2.cloudflarestorage.com" R2_BUCKET_NAME="edtech-media" R2_PUBLIC_URL="https://pub-....r2.dev" # ─── OBSERVABILITY ──────────────────────────────────────────────────────────── LOG_LEVEL="info" LOGTAIL_TOKEN="your-betterstack-token" # Optional: for centralized logging