Aller au contenu

🎯 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 .env ne 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.

# Authentification avec Doppler (une seule fois)
doppler login

🏗️ 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 (not development) — 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

✅ Après (nouveau système avec Doppler)

jobs:
  build:
    runs-on: ubuntu-latest
    environment: Front Prod # ← Spécification de l'environnement
    steps:
      - name: Build Front App
        env:
          API_URL: ${{ secrets.API_URL }}
          GTM_ID: ${{ secrets.GTM_ID }}
        run: yarn build