mirror of
https://github.com/R0m1k3/LogiFlow.git
synced 2026-10-11 17:27:31 +02:00
Update documentation and scripts to provide more detailed steps for diagnosing and resolving production errors, including checking logs, process status, and network connectivity. Replit-Commit-Author: Agent Replit-Commit-Session-Id: a8a78c07-e900-425c-a577-5b4c5894379d Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/a8a78c07-e900-425c-a577-5b4c5894379d/CRhacll
3.8 KiB
3.8 KiB
Correction Erreur Production - "Une erreur s'est produite"
Problème Identifié
Votre serveur de production affiche une page d'erreur générique au lieu de l'application LogiFlow.
Diagnostic Immédiat
1. Vérifiez les Logs du Serveur
# Si vous utilisez PM2
pm2 logs your-app-name --lines 50
# Si vous utilisez systemctl
sudo journalctl -u your-service-name -f --lines=50
# Si vous utilisez Docker
docker-compose logs -f --tail=50
2. Vérifiez le Statut de l'Application
# PM2
pm2 status
pm2 info your-app-name
# systemctl
sudo systemctl status your-service-name
# Docker
docker-compose ps
Solutions par Ordre de Priorité
Solution 1 : Redémarrage Simple
# PM2
pm2 restart your-app-name
# systemctl
sudo systemctl restart your-service-name
# Docker
docker-compose restart
Solution 2 : Vérification des Ports
# Vérifiez quel processus utilise le port (généralement 5000 ou 3000)
sudo netstat -tulpn | grep :5000
sudo lsof -i :5000
# Si un autre processus occupe le port, le tuer
sudo kill -9 <PID>
Solution 3 : Reconstruction Complete
# Sauvegarder les modifications récentes
cp -r client/src client/src.current
# Reconstruction complète
npm install
npm run build
# Redémarrage
pm2 restart your-app-name --update-env
Solution 4 : Vérification des Variables d'Environnement
# Vérifiez que les variables essentielles sont définies
echo $NODE_ENV
echo $DATABASE_URL
echo $PORT
# Si manquantes, les redéfinir
export NODE_ENV=production
export PORT=5000
# etc...
Solution 5 : Vérification de la Base de Données
# Test de connexion PostgreSQL
psql $DATABASE_URL -c "SELECT 1;"
# Si la connexion échoue, vérifiez les credentials
Scripts de Diagnostic Automatique
Script de Santé Générale
#!/bin/bash
echo "=== DIAGNOSTIC PRODUCTION ==="
echo "Date: $(date)"
echo ""
echo "1. Status PM2:"
pm2 status
echo ""
echo "2. Processes sur port 5000:"
sudo lsof -i :5000
echo ""
echo "3. Logs récents (10 dernières lignes):"
pm2 logs your-app-name --lines 10 --nostream
echo ""
echo "4. Espace disque:"
df -h
echo ""
echo "5. Mémoire:"
free -h
echo ""
echo "6. Variables d'environnement critiques:"
echo "NODE_ENV: $NODE_ENV"
echo "PORT: $PORT"
echo "DATABASE_URL: ${DATABASE_URL:0:20}..." # Masque les credentials
Sauvegardez ce script sous production-health-check.sh et exécutez-le :
chmod +x production-health-check.sh
./production-health-check.sh
Correction Spécifique selon l'Erreur
Si l'erreur est "EADDRINUSE" (Port occupé)
sudo lsof -i :5000
sudo kill -9 <PID_du_processus>
pm2 restart your-app-name
Si l'erreur est "Database connection failed"
# Testez la connexion DB
psql $DATABASE_URL -c "\dt"
# Redémarrez les services de DB si nécessaire
sudo systemctl restart postgresql
Si l'erreur est "Module not found"
# Réinstallation complète
rm -rf node_modules package-lock.json
npm install
npm run build
pm2 restart your-app-name
Prévention Future
1. Monitoring Automatique
Ajoutez cette ligne à votre crontab :
crontab -e
# Ajouter cette ligne pour vérifier chaque minute
* * * * * curl -f http://localhost:5000/api/health || pm2 restart your-app-name
2. Sauvegarde Automatique
# Script de sauvegarde quotidienne
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
tar -czf /backup/logiflow_$DATE.tar.gz /path/to/your/app
find /backup -name "logiflow_*.tar.gz" -mtime +7 -delete
Actions Immédiates Recommandées
- Exécutez le script de diagnostic ci-dessus
- Copiez-collez les résultats pour analyse
- Tentez un redémarrage simple en premier
- Si le problème persiste, reconstruisez l'application
Une fois que vous aurez exécuté ces commandes, envoyez-moi les logs d'erreur pour un diagnostic plus précis.