Aller au contenu principal

Déploiements

Statut

Document de cadrage DevOps — version initiale.

Objectif

Les déploiements DMV doivent rester simples, traçables et robustes.

Le système doit permettre de livrer régulièrement sans fragiliser la production.

État actuel visible

Le fichier deployment/deploy.sh définit une procédure de déploiement API Laravel sur /var/www/api.

Il suppose :

  • un utilisateur deploy ;
  • un dépôt Git cloné dans /var/www/api ;
  • un fichier .env présent ;
  • PHP 8.2 dans le script ;
  • Composer ;
  • Supervisor ;
  • PHP-FPM ;
  • accès au domaine https://api.dansmonvillage.fr/api/v1/health.

Étapes du script API

ÉtapeAction
1Mode maintenance Laravel.
2git fetch puis git reset --hard origin/main.
3composer install --no-dev --optimize-autoloader.
4Permissions storage et bootstrap/cache.
5Reconstruction des caches Laravel.
6Optimisation Laravel.
7Redémarrage workers Supervisor.
8Reload PHP-FPM.
9Sortie du mode maintenance.
10Health check.

Déploiements frontends

Les frontends disposent de scripts :

  • dmv-public: npm run build, npm run start ;
  • dmv_backoffice: npm run build, npm run preview.

Le mode de déploiement frontend production n'est pas confirmé dans le workspace inspecté. Cloudflare Pages, VPS, plateforme Node ou hébergement statique restent à arbitrer selon application.

Principes

  • Déployer d'abord en staging si disponible.
  • Vérifier les migrations avant production.
  • Ne pas déployer en aveugle sans health check.
  • Garder les logs de release.
  • Redémarrer les workers après changement de code.
  • Éviter les changements manuels non documentés.

Vision cible

La cible est une procédure :

  • reproductible ;
  • déclenchable depuis CI/CD ;
  • protégée pour production ;
  • avec validation manuelle si nécessaire ;
  • avec rollback documenté ;
  • séparée par application.

Points à clarifier

  • Déploiement frontends.
  • Gestion des migrations Laravel.
  • Version PHP cible.
  • Stratégie blue/green ou maintenance courte.
  • Déploiements staging.
  • Historique des releases.