Files
rpa_vision_v3/check_dashboard_port.sh
Dom a27b74cf22 v1.0 - Version stable: multi-PC, détection UI-DETR-1, 3 modes exécution
- Frontend v4 accessible sur réseau local (192.168.1.40)
- Ports ouverts: 3002 (frontend), 5001 (backend), 5004 (dashboard)
- Ollama GPU fonctionnel
- Self-healing interactif
- Dashboard confiance

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:23:51 +01:00

116 lines
4.1 KiB
Bash
Executable File

#!/bin/bash
#
# Script de vérification du port pour le dashboard RPA Vision V3
# Vérifie si le port 5001 est disponible et propose des alternatives
#
set -e
# Couleurs
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m'
echo "╔══════════════════════════════════════════════════════════════╗"
echo "║ VÉRIFICATION DES PORTS - DASHBOARD RPA VISION V3 ║"
echo "╚══════════════════════════════════════════════════════════════╝"
echo ""
# Port par défaut
DEFAULT_PORT=5001
# Fonction pour vérifier si un port est utilisé
check_port() {
local port=$1
if ss -tuln | grep -q ":${port} "; then
return 1 # Port occupé
else
return 0 # Port libre
fi
}
# Fonction pour trouver le processus utilisant un port
get_process_on_port() {
local port=$1
lsof -i :${port} 2>/dev/null | grep LISTEN | awk '{print $2}' | head -1
}
# Vérifier le port par défaut (5001)
echo -e "${YELLOW}[1/3]${NC} Vérification du port ${DEFAULT_PORT}..."
if check_port ${DEFAULT_PORT}; then
echo -e "${GREEN}${NC} Port ${DEFAULT_PORT} disponible"
PORT_STATUS="available"
else
echo -e "${RED}${NC} Port ${DEFAULT_PORT} occupé"
PID=$(get_process_on_port ${DEFAULT_PORT})
if [ -n "$PID" ]; then
PROCESS=$(ps -p $PID -o comm= 2>/dev/null || echo "inconnu")
echo -e " Processus: ${PROCESS} (PID: ${PID})"
echo -e " Commande: ${YELLOW}kill ${PID}${NC} pour libérer le port"
fi
PORT_STATUS="occupied"
fi
# Vérifier les ports alternatifs
echo ""
echo -e "${YELLOW}[2/3]${NC} Vérification des ports alternatifs..."
ALTERNATIVE_PORTS=(5000 3000 8000 8080 8888 9000)
AVAILABLE_PORTS=()
for port in "${ALTERNATIVE_PORTS[@]}"; do
if check_port $port; then
echo -e "${GREEN}${NC} Port ${port} disponible"
AVAILABLE_PORTS+=($port)
else
echo -e "${RED}${NC} Port ${port} occupé"
fi
done
# Résumé et recommandations
echo ""
echo -e "${YELLOW}[3/3]${NC} Résumé et recommandations..."
echo ""
if [ "$PORT_STATUS" = "available" ]; then
echo -e "${GREEN}✅ PRÊT${NC} - Le port par défaut (${DEFAULT_PORT}) est disponible"
echo ""
echo "Lancement du dashboard:"
echo -e " ${GREEN}cd rpa_vision_v3${NC}"
echo -e " ${GREEN}./run.sh --dashboard${NC}"
echo ""
echo "Accès: http://localhost:${DEFAULT_PORT}"
else
echo -e "${YELLOW}⚠️ ATTENTION${NC} - Le port ${DEFAULT_PORT} est occupé"
echo ""
if [ ${#AVAILABLE_PORTS[@]} -gt 0 ]; then
echo "Ports alternatifs disponibles:"
for port in "${AVAILABLE_PORTS[@]}"; do
echo -e " • Port ${port}: ${GREEN}disponible${NC}"
done
echo ""
echo "Pour utiliser un port alternatif:"
echo -e " ${YELLOW}export FLASK_PORT=${AVAILABLE_PORTS[0]}${NC}"
echo -e " ${YELLOW}cd rpa_vision_v3${NC}"
echo -e " ${YELLOW}./run.sh --dashboard${NC}"
echo ""
echo "Ou modifier web_dashboard/app.py ligne 165:"
echo -e " ${YELLOW}app.run(debug=True, host='0.0.0.0', port=${AVAILABLE_PORTS[0]})${NC}"
else
echo -e "${RED}❌ PROBLÈME${NC} - Aucun port web standard n'est disponible"
echo ""
echo "Actions recommandées:"
echo " 1. Arrêter les serveurs web inutilisés"
echo " 2. Vérifier les processus: ps aux | grep python"
echo " 3. Libérer le port 5001: kill \$(lsof -t -i:5001)"
fi
fi
echo ""
echo "╔══════════════════════════════════════════════════════════════╗"
echo "║ VÉRIFICATION TERMINÉE ║"
echo "╚══════════════════════════════════════════════════════════════╝"