Aller au contenu principal

Modèle d'exécution et déploiement

Environnement de production

LogiDAV tourne sur un serveur dédié avec :

  • PHP 7.3 (CLI et FPM)
  • MySQL / MariaDB
  • RabbitMQ pour le transport de files d'attente
  • Cron système pour l'ordonnancement des commandes Symfony

Exécution des cronjobs

Le crontab système contient 164 entrées qui exécutent des commandes Symfony selon des plannings variés :

# Exemple d'entrées crontab
*/10 * * * * cd /path/to/logidav && php bin/console menzzo:v2:sales >> /var/log/logidav/sales.log 2>&1
*/30 * * * * cd /path/to/logidav && php bin/console menzzo:v2:sales:update >> /var/log/logidav/sales-update.log 2>&1
0 */2 * * * cd /path/to/logidav && php bin/console menzzo:v2:products >> /var/log/logidav/products.log 2>&1

Prévention de la concurrence

Les commandes critiques utilisent LockableTrait pour empêcher l'exécution concurrente du même cronjob.

Gestion des erreurs

  • Les erreurs sont loguées dans des fichiers dédiés
  • Les deadlocks et erreurs EntityManager sont gérés avec downgrade en warning
  • Les alertes système sont envoyées pour les échecs critiques

Processeur de files d'attente

Le processeur doit tourner en continu en production :

php bin/console meduse:queue:processor --action=runQueues

Il est recommandé de le superviser avec un processus manager (systemd, supervisor).

Mise à jour du schéma de base de données

Ce projet n'utilise pas les migrations Doctrine :

# Vérifier les changements
php bin/console doctrine:schema:update --dump-sql

# Appliquer après revue
php bin/console doctrine:schema:update --force

Documentation du site

Le site de documentation (Docusaurus) est déployé sur Cloudflare Pages :

  • Répertoire source : website/
  • Build : npm run build
  • Output : website/build/
  • URL : https://docs-logidav.pages.dev

Voir le guide de déploiement pour les détails.