feat(deploy): implementar init.sh, desplegar.sh, servicio systemd y desplegar en CT 132

This commit is contained in:
2026-10-17 10:43:53 -05:00
parent 5a7dbf7ab9
commit 18c6cbcf6b
7 changed files with 268 additions and 5 deletions
Executable
+92
View File
@@ -0,0 +1,92 @@
#!/usr/bin/env bash
# ==============================================================================
# Help Desk — Script de Inicialización y Gestión Local
# Ecosistema Telcotronics
# ==============================================================================
set -e
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
CYAN='\033[0;36m'
NC='\033[0m'
echo -e "${BLUE}=====================================================${NC}"
echo -e "${BLUE}🔧 Help Desk — Inicialización y Entorno Local${NC}"
echo -e "${BLUE}=====================================================${NC}"
# 1. Verificar Node.js
echo -e "${YELLOW}[1/4] Verificando versión de Node.js...${NC}"
NODE_VER=$(node -v 2>/dev/null || true)
if [ -z "$NODE_VER" ]; then
echo -e "${RED}❌ Error: Node.js no está instalado.${NC}"
exit 1
fi
echo -e "${GREEN}✓ Node.js detectado: $NODE_VER${NC}"
# 2. Verificar o generar archivo .env
echo -e "${YELLOW}[2/4] Verificando configuración .env...${NC}"
if [ ! -f .env ]; then
if [ -f .env.example ]; then
cp .env.example .env
echo -e "${CYAN}ℹ️ Se ha creado .env a partir de .env.example. Por favor revisa las credenciales de BD.${NC}"
else
echo -e "${RED}❌ Error: No se encontró .env ni .env.example.${NC}"
exit 1
fi
else
echo -e "${GREEN}✓ Archivo .env presente.${NC}"
fi
# 3. Verificar dependencias
echo -e "${YELLOW}[3/4] Verificando dependencias npm...${NC}"
if [ ! -d "node_modules" ]; then
echo -e "${CYAN}Instalando dependencias de Node.js...${NC}"
npm install
else
echo -e "${GREEN}✓ Directorio node_modules presente.${NC}"
fi
# 4. Menú de Opciones
echo -e "${YELLOW}[4/4] Selecciona una acción:${NC}"
echo -e " ${CYAN}1)${NC} Iniciar servidor en modo desarrollo (node app.js)"
echo -e " ${CYAN}2)${NC} Ejecutar setup y migraciones de Base de Datos (node config/setup.js)"
echo -e " ${CYAN}3)${NC} Probar flujo de visitas técnicas FSM (node scripts/test_visita_flow.js)"
echo -e " ${CYAN}4)${NC} Consultar bitácora centralizada de errores (npm run check:errors)"
echo -e " ${CYAN}5)${NC} Desplegar a producción en CT 132 (./desplegar.sh)"
echo -e " ${CYAN}6)${NC} Salir"
echo -n "Opción [1-6]: "
read -r OPCION
case "$OPCION" in
1)
echo -e "${GREEN}Iniciando Help Desk en http://localhost:3008...${NC}"
node app.js
;;
2)
echo -e "${GREEN}Ejecutando setup y migraciones de MariaDB...${NC}"
node config/setup.js
;;
3)
echo -e "${GREEN}Ejecutando prueba integral de visitas técnicas...${NC}"
node scripts/test_visita_flow.js
;;
4)
echo -e "${GREEN}Consultando bitácora de errores...${NC}"
npm run check:errors
;;
5)
echo -e "${GREEN}Iniciando despliegue hacia CT 132...${NC}"
./desplegar.sh
;;
6)
echo "Operación cancelada."
exit 0
;;
*)
echo -e "${RED}Opción no válida.${NC}"
exit 1
;;
esac