🎯 Environments X Doppler¶
🚀 Démarrage Rapide¶
# 1. Installer Doppler CLI
brew install dopplerhq/cli/doppler
# 2. Se connecter
doppler login
# 3. Lancer un projet avec Doppler (spécifier projet et config)
doppler run -p api -c dev_local -- pnpm dev:api
doppler run -p front-app -c dev_local -- pnpm dev:webapp
doppler run -p front-mobile-app -c developement_local -- pnpm dev:mobile
doppler run -p app-pdp-financement -c dev_local -- pnpm dev:app-pdp-financement
⚠️ Les fichiers
.envne sont plus supportés. Toutes les variables d'environnement passent par Doppler. Ne jamais écrire de tokens en dehors de Doppler.
🔍 Qu'est-ce que Doppler ?¶
Doppler est une plateforme de gestion des secrets et des variables d'environnement qui centralise et sécurise l'accès aux configurations sensibles de vos applications. Elle permet de :
- 🔒 Centraliser toutes les variables d'environnement dans un seul endroit
- 🛡️ Sécuriser l'accès aux secrets avec des permissions granulaires
- 🔄 Synchroniser automatiquement les variables entre les environnements
- 📊 Auditer les accès et modifications des secrets
- 🔗 Intégrer facilement avec les plateformes de déploiement (Heroku, GitHub Actions, etc.)
💻 Utilisation en Local¶
📦 Installation de Doppler CLI¶
# Installation via Homebrew (macOS)
brew install dopplerhq/cli/doppler
# Ou via curl
curl -Ls --tlsv1.2 --proto "=https" --retry 3 https://cli.doppler.com/install.sh | sh
# Vérification de l'installation
doppler --version
⚙️ Configuration locale¶
⚠️ Important : Les fichiers .env ne sont plus utilisés. Toutes les variables d'environnement sont injectées par Doppler via doppler run.
🏗️ Lancer un projet¶
Préfixer la commande de dev avec doppler run -p <projet> -c <config> -- :
# API
doppler run -p api -c dev_local -- pnpm dev:api
# Front-app
doppler run -p front-app -c dev_local -- pnpm dev:webapp
# App mobile
doppler run -p front-mobile-app -c developement_local -- pnpm dev:mobile
# App PDP financement
doppler run -p app-pdp-financement -c dev_local -- pnpm dev:app-pdp-financement
💡 Recommandation : Utilisez l'environnement dev_personal qui est une copie de dev que vous pouvez modifier sans affecter les autres développeurs. Ou utilisez un des autres forks de dev qui peuvent déjà être partagées!
❌ Les fichiers .env ne sont plus supportés¶
| Avant | Maintenant |
|---|---|
doppler secrets download > .env && pnpm dev |
doppler run -p api -c dev_local -- pnpm dev:api |
Fichier .env dans chaque projet |
Aucun fichier .env |
dotenv en dépendance (API) |
Supprimé |
🏢 Structure des Projets Doppler¶
1. 🌐 Project Web (Front-end)¶
🌍 Environnements :
-
🟢
dev- Variables pour l'environnement de développement -
🟢
dev_local- à utiliser pour le dev local -
🟡
staging- Variables pour l'environnement de staging - 🔴
production- Variables pour l'environnement de production
🔄 Synchronisation :
- Les variables sont automatiquement synchronisées vers les GitHub Secrets
- Utilisées dans les workflows de déploiement front-end et accessibles via
${{ secrets.* }}dans les GitHub Actions
2. 🔧 Project API¶
🌍 Environnements :
-
🟢
dev- API de développement -
🟢
dev_local- Config à utiliser pour lancer l'API en local -
🟢
dev_local_fork-prod- Config à utiliser pour lancer l'API en local avec un fork de BDD de prod -
🟡
staging- API de staging - 🔴
production- API de production
🔄 Synchronisation :
- Les variables sont automatiquement synchronisées vers les config vars Heroku
- Utilisées au runtime & Accessibles via
process.env.*dans l'application
3. 🚀 Project API - CI¶
🌍 Environnements :
- 🔵
base- à ne pas utiliser directement c'est une config heritée par les autres - 🔵
dev- Utilisée pour le deploy API dev - 🔵
stg- Utilisée pour le deploy API Staging - 🔵
prd- Utilisée pour le deploy API Prod et les check / validate de migrations - 🔵
load-test- Utilisée pour le workflow de load-test uniquement
🔄 Synchronisation :
- Les variables sont automatiquement synchronisées vers les GitHub Secrets
- Utilisées dans les workflows de CI/CD de l'API & Accessibles via
${{ secrets.* }}dans les GitHub Actions
4. 📱 Project Mobile¶
Note : The Doppler config slug is
developement(notdevelopment) — this is the actual name in Doppler.
🌍 Environnements :
- 🟣
developement- Builds de developement - 🟣
developement_local- Dev local. (API Url notamment) - 🟡
preview- Builds de preview - 🔴
production- Builds de production - 🔵
ci- Variables pour les builds CI/CD mobile (token expo)
🔄 Synchronisation :
- Pas encore de synchronisation automatique Doppler → Expo
- Il faut donc ajouter à la main sur les deux plateforme un nouveau token.
- CI est synchronisé avec Github et permet notamment d'acceder au token Expo depuis github actions
🚀 Impact CI - Nouveau Système de GitHub Secrets¶
🔐 Compartimentation par Environnement¶
Avec Doppler, les GitHub Secrets sont maintenant compartimentés par environnement. Chaque workflow doit explicitement spécifier l'environnement GitHub à utiliser pour accéder aux bonnes variables.
⚙️ Configuration des Workflows¶
❌ Avant (ancien système)¶
- name: Build Front App
env:
API_URL: ${{ secrets.API_URL }}
GTM_ID: ${{ secrets.GTM_ID }}
run: yarn build