#!/bin/bash ################################################################################ # OrbiQuant IA Trading Platform - Port Status Checker ################################################################################ # Script para verificar el estado de todos los puertos de servicios # Uso: ./scripts/check-ports.sh ################################################################################ set -e echo "================================================================================" echo " ORBIQUANT IA TRADING PLATFORM - PORT STATUS CHECK" echo "================================================================================" echo "" echo "Fecha: $(date '+%Y-%m-%d %H:%M:%S')" echo "" # Colores para output RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color ################################################################################ # FUNCIÓN: Verificar si un puerto está en uso ################################################################################ check_port() { local service_name=$1 local port=$2 local category=$3 if ss -tuln | grep -q ":$port "; then printf "${GREEN}✓${NC} %-25s Port %-6s ${GREEN}RUNNING${NC}\n" "$service_name" "$port" return 0 else printf "${RED}✗${NC} %-25s Port %-6s ${RED}NOT RUNNING${NC}\n" "$service_name" "$port" return 1 fi } ################################################################################ # SERVICIOS PRINCIPALES ################################################################################ echo "─────────────────────────────────────────────────────────────────────────────" echo " FRONTEND SERVICES" echo "─────────────────────────────────────────────────────────────────────────────" check_port "Frontend Web (React)" "3100" "frontend" check_port "Frontend Admin" "3101" "frontend" check_port "Frontend Preview" "4173" "frontend" echo "" echo "─────────────────────────────────────────────────────────────────────────────" echo " BACKEND SERVICES (Node.js)" echo "─────────────────────────────────────────────────────────────────────────────" check_port "Backend API (Express)" "4000" "backend" check_port "Backend WebSocket" "4001" "backend" check_port "Backend Webhooks" "4002" "backend" echo "" echo "─────────────────────────────────────────────────────────────────────────────" echo " PYTHON SERVICES" echo "─────────────────────────────────────────────────────────────────────────────" check_port "ML Engine (FastAPI)" "5000" "python" check_port "Data Service" "5001" "python" check_port "LLM Agent" "5002" "python" check_port "Portfolio Manager" "5003" "python" echo "" echo "─────────────────────────────────────────────────────────────────────────────" echo " INFRASTRUCTURE" echo "─────────────────────────────────────────────────────────────────────────────" check_port "PostgreSQL" "5432" "database" check_port "PostgreSQL Test" "5433" "database" check_port "Redis" "6379" "cache" check_port "MySQL (Legacy)" "3306" "database" echo "" echo "─────────────────────────────────────────────────────────────────────────────" echo " DEVELOPMENT TOOLS (Optional)" echo "─────────────────────────────────────────────────────────────────────────────" check_port "PgAdmin" "5050" "tools" check_port "Mailhog SMTP" "1025" "tools" check_port "Mailhog Web" "8025" "tools" check_port "Jenkins" "8080" "cicd" echo "" ################################################################################ # VERIFICACIÓN DE PROCESOS ################################################################################ echo "─────────────────────────────────────────────────────────────────────────────" echo " PROCESSES DETAILS" echo "─────────────────────────────────────────────────────────────────────────────" # Función para mostrar detalles del proceso en un puerto show_process_details() { local port=$1 local service_name=$2 if ss -tuln | grep -q ":$port "; then echo "" echo "Port $port ($service_name):" # Mostrar proceso escuchando en el puerto if command -v lsof &> /dev/null; then lsof -i :$port | tail -n +2 | awk '{printf " PID: %-7s Command: %s\n", $2, $1}' else ss -tulnp | grep ":$port " | awk '{print " " $0}' fi fi } # Mostrar detalles de servicios activos show_process_details "3100" "Frontend Web" show_process_details "4000" "Backend API" show_process_details "4001" "Backend WS" show_process_details "5000" "ML Engine" show_process_details "5001" "Data Service" show_process_details "5432" "PostgreSQL" show_process_details "6379" "Redis" echo "" ################################################################################ # DOCKER CONTAINERS ################################################################################ if command -v docker &> /dev/null; then echo "─────────────────────────────────────────────────────────────────────────────" echo " DOCKER CONTAINERS" echo "─────────────────────────────────────────────────────────────────────────────" if docker ps --filter "name=orbiquant" --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" | grep -q orbiquant; then docker ps --filter "name=orbiquant" --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" else echo "No OrbiQuant containers running" fi echo "" fi ################################################################################ # RESUMEN ################################################################################ echo "================================================================================" echo " SUMMARY" echo "================================================================================" # Contar servicios activos TOTAL_SERVICES=14 RUNNING_SERVICES=0 for port in 3100 4000 4001 5000 5001 5432 6379; do if ss -tuln | grep -q ":$port "; then ((RUNNING_SERVICES++)) fi done echo "Critical Services Running: $RUNNING_SERVICES / 7" echo "" # Recomendaciones if [ $RUNNING_SERVICES -eq 0 ]; then echo "${RED}WARNING:${NC} No critical services are running!" echo "Run: docker-compose up -d" elif [ $RUNNING_SERVICES -lt 7 ]; then echo "${YELLOW}NOTICE:${NC} Some services are not running." echo "Check individual service logs for details." else echo "${GREEN}SUCCESS:${NC} All critical services are running!" fi echo "" echo "For detailed logs, use:" echo " - Docker: docker-compose logs -f [service-name]" echo " - System: journalctl -u [service-name] -f" echo "" echo "Port configuration file: .env.ports" echo "Full documentation: docs/95-guias-desarrollo/PUERTOS-SERVICIOS.md" echo "" echo "================================================================================"