Manuel d’utilisation — gestionnaireMDP

3 min de lecture
Manuel d’utilisation — gestionnaireMDP

Manuel d’utilisation — Application gestionnaireMDP

Introduction

Ce document décrit les procédures d’exploitation de l’application gestionnaireMDP. Il couvre :

  • La gestion des conteneurs Docker (développement et production)
  • L’utilisation des scripts d’automatisation
  • Les étapes de mise à jour du code et du site

L’objectif est de fournir un guide clair et directement exploitable.


1. Gestion des conteneurs

L’application repose sur des conteneurs Docker orchestrés par docker compose.

La variable d’environnement APP_ENV définit l’environnement en cours :

  • APP_ENV=dev → utilisation de .env.dev et docker-compose.dev.yml
  • APP_ENV=prod → utilisation de .env.prod et docker-compose.prod.yml

1.1 Démarrage des conteneurs

En développement

docker compose --env-file .env.dev -f docker-compose.dev.yml up -d

En production

docker compose --env-file .env.prod -f docker-compose.prod.yml up -d

1.2 Arrêt des conteneurs

En développement

docker compose --env-file .env.dev -f docker-compose.dev.yml down

En production

docker compose --env-file .env.prod -f docker-compose.prod.yml down

1.3 Consultation des logs

Backend (développement)

docker compose --env-file .env.dev -f docker-compose.dev.yml logs -f backend

Backend (production)

docker compose --env-file .env.prod -f docker-compose.prod.yml logs -f backend

1.4 Exécution d’une requête SQL dans le conteneur PostgreSQL

Exemple : lister les titres des entrées de mots de passe.

En développement

docker compose --env-file .env.dev -f docker-compose.dev.yml exec -T db \
  sh -lc 'psql "postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@localhost:${DB_PORT:-5432}/${POSTGRES_DB}" -c "SELECT title FROM api_passwordentry ORDER BY title LIMIT 100;"'

En production

docker compose --env-file .env.prod -f docker-compose.prod.yml exec -T db \
  sh -lc 'psql "postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@localhost:${DB_PORT:-5432}/${POSTGRES_DB}" -c "SELECT title FROM api_passwordentry ORDER BY title LIMIT 100;"'

2. Scripts disponibles

Les scripts situés dans le répertoire scripts/ facilitent les opérations courantes.

2.1 Description des scripts

  • backup-db.sh : effectue un dump de la base dans ./backups/, en utilisant automatiquement l’environnement courant (APP_ENV).
  • restore-db.sh : restaure une base à partir d’un dump, selon l’environnement courant (APP_ENV).
  • deploy-frontend.sh : construit et déploie les fichiers statiques du frontend (Vite).
  • push-backup-to-prod.sh : copie un dump local vers l’environnement de production.
  • pull-backup-from-prod.sh : récupère le dernier dump depuis la production vers la machine locale.
  • prod-restore.sh : restaure la base directement en production à partir d’un dump.

2.2 Exemples d’utilisation

Effectuer un dump (dev ou prod)

./scripts/backup-db.sh

Restaurer le dernier dump (dev ou prod)

./scripts/restore-db.sh latest

Restaurer un dump spécifique (dev ou prod)

./scripts/restore-db.sh backups/dump-2025-08-25.sql

3. Mise à jour du site et de l’application

3.1 En développement

  1. Mettre à jour le dépôt :
git pull --ff-only
  1. Ajouter et publier vos modifications :
git add .
git commit -m "Description des changements"
git push

3.2 En production

  1. Arrêter les conteneurs si nécessaire :
docker compose --env-file .env.prod -f docker-compose.prod.yml down
  1. Récupérer les dernières modifications :
git pull --ff-only
  1. Redémarrer les conteneurs (avec reconstruction si nécessaire) :
docker compose --env-file .env.prod -f docker-compose.prod.yml up -d --build
  1. Mettre à jour les fichiers statiques du site (déploiement frontend) :
./scripts/deploy-frontend.sh
  1. Vérifier le bon fonctionnement du serveur web :
systemctl status apache2

Conclusion

Ce manuel centralise les opérations essentielles d’exploitation de gestionnaireMDP.

Il est recommandé de :

  • Toujours vérifier l’environnement actif (APP_ENV) avant toute opération sensible
  • Effectuer des sauvegardes régulières avant les restaurations
  • Contrôler les logs après chaque déploiement en production

TODO: Ajouter une section de dépannage (erreurs courantes et solutions).