GestionnaireMDP – Guide de déploiement

Gestionnaire MDP

GestionnaireMDP est une application modèle (template) pour des projets React + Django REST avec authentification JWT.

Ce dépôt sert de base standardisée : conteneurs Docker, gestion des ports, variables d’environnement et définition claire du contrat entre le frontend et le backend.


Introduction

L’objectif de ce template est de fournir une structure cohérente et reproductible pour accélérer le démarrage de nouveaux projets tout en garantissant :

  • Une configuration homogène entre les environnements
  • Une séparation claire des responsabilités front/back
  • Une gestion sécurisée des variables sensibles
  • Une dérivation prévisible des ports à partir d’un identifiant d’application

Démarrage rapide (DEV)

1) Cloner le dépôt

git clone https://github.com/<votre_org>/<APP_DEPOT>.git
cd <APP_DEPOT>

2) Préparer l’environnement

Deux fichiers sont requis :

  • .env.devsans secrets
  • .env.dev.localsecrets uniquement (ignoré par Git)

Les formats attendus et les variables obligatoires sont décrits dans :

docs/INVARIANTS.md

3) Lancer l’environnement de développement

docker compose -f docker-compose.dev.yml \
  --env-file .env.dev \
  --env-file .env.dev.local \
  up -d --build

Accès aux services

  • Frontend (Vite) : http://localhost:${DEV_VITE_PORT}

  • API (Django REST) : http://localhost:${DEV_API_PORT}


Invariants & Contrat

Le document source de vérité est :

docs/INVARIANTS.md

Ce document définit les règles non négociables garantissant la cohérence du système.

Dérivation des ports (DEV)

Les ports sont déterminés à partir de la variable :

APP_NO

Formules utilisées :

  • DEV_DB_PORT = 5432 + APP_NO
  • DEV_API_PORT = 8000 + 2*APP_NO
  • DEV_VITE_PORT = 5172 + 2*APP_NO

Exemple :

APP_NO=1
→ DEV_DB_PORT=5433
→ DEV_API_PORT=8002
→ DEV_VITE_PORT=5174

Ce mécanisme permet d’exécuter plusieurs applications en parallèle sans conflit de ports.


Gestion des secrets

Règle stricte :

  • ❌ Aucun secret dans .env.dev

  • ❌ Aucun secret dans docs/

  • ✅ Secrets uniquement dans :

    • .env.dev.local
    • .env.prod.local

Ces fichiers doivent être ignorés par Git.


Scripts utiles

Vérification des invariants

Script disponible :

scripts/vérifier_invariants.sh

Objectif : vérifier la conformité de la configuration avec les règles définies dans INVARIANTS.md.

TODO: Documenter le détail des vérifications effectuées par le script.


Licence

Licence : MIT (ou à préciser si différente).


Conclusion

GestionnaireMDP fournit un socle technique standardisé pour les applications React et Django REST conteneurisées.

En respectant les invariants définis et la séparation stricte des secrets, il garantit un environnement de développement prévisible, sécurisé et facilement reproductible.