Files
Gestor-Contenidos/control.sh
2026-02-18 16:50:48 +01:00

94 lines
3.5 KiB
Bash

#!/bin/bash
# Colores para los mensajes
GREEN='\033[0;32m'
BLUE='\033[0;34m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# Función de ayuda
show_help() {
echo -e "${BLUE}===================== CONTROL DEL BLOG DE JOSEMI =================${NC}"
echo " "
echo " Uso: ./control.sh [comando] "
echo ""
echo "Comandos disponibles:"
echo -e " ${GREEN}start${NC} -> Levanta todo el entorno (en segundo plano)"
echo -e " ${GREEN}stop${NC} -> Detiene los contenedores (sin borrarlos)"
echo -e " ${GREEN}restart${NC} -> Reinicia los contenedores"
echo -e " ${GREEN}build${NC} -> Reconstruye las imágenes (útil si instalas nuevas librerías)"
echo -e " ${GREEN}logs${NC} -> Ver logs de todo en tiempo real (Ctrl+C para salir)"
echo -e " ${GREEN}status${NC} -> Ver estado de los contenedores"
echo -e " ${GREEN}shell-be${NC} -> Entrar a la terminal del Backend"
echo -e " ${GREEN}shell-fe${NC} -> Entrar a la terminal del Frontend"
echo -e " ${RED}reset${NC} -> ¡PELIGRO! Borra la Base de Datos y la crea de cero (útil si cambias contraseñas)"
echo -e " ${YELLOW}info${NC} -> Muestra las URLs y credenciales de acceso"
echo -e " ${RED}down${NC} -> Deletea todo el container"
echo "=================================================================="
}
# Lógica del script
case "$1" in
start)
echo -e "${GREEN}Arrancando el sistema...${NC}"
sudo docker-compose up -d
echo -e "${BLUE}¡Listo! Usa './control.sh info' para ver los accesos.${NC}"
;;
stop)
echo -e "${YELLOW}Deteniendo contenedores...${NC}"
sudo docker-compose stop
;;
restart)
echo -e "${YELLOW}Reiniciando...${NC}"
sudo docker-compose restart
;;
build)
echo -e "${BLUE}Reconstruyendo imágenes (esto puede tardar)...${NC}"
sudo docker-compose up -d --build
;;
logs)
echo -e "${BLUE}Mostrando logs (Ctrl+C para salir)...${NC}"
sudo docker-compose logs -f
;;
status)
sudo docker-compose ps
;;
shell-be)
echo -e "${GREEN}Entrando al contenedor del Backend...${NC}"
sudo docker exec -it blog_backend sh
;;
shell-fe)
echo -e "${GREEN}Entrando al contenedor del Frontend...${NC}"
sudo docker exec -it blog_frontend sh
;;
reset)
echo -e "${RED}ATENCIÓN: Esto borrará todos los datos de la base de datos.${NC}"
read -p "¿Estás seguro? (s/n): " confirm
if [[ $confirm == [sS] || $confirm == [sS][yY] ]]; then
echo -e "${YELLOW}Borrando todo...${NC}"
sudo docker-compose down -v
docker system prune -f
echo -e "${GREEN}Levantando de nuevo...${NC}"
sudo docker-compose up -d
else
echo "Operación cancelada."
fi
;;
info)
echo -e "${BLUE}=== INFORMACIÓN DE ACCESO ===${NC}"
echo -e "Frontend (Web): ${GREEN}http://localhost:9001${NC}"
echo -e "Backend (API): ${GREEN}http://localhost:9002${NC}"
echo -e "Base de Datos: ${GREEN}localhost:9003${NC}"
echo -e "Usuario DB: ${YELLOW}josemi${NC}"
echo -e "Contraseña DB: ${YELLOW}josemivi${NC}"
;;
down)
sudo docker-compose down -v
sudo docker system prune -f
;;
*)
show_help
;;
esac