#!/bin/bash # host-status.sh — exibe status de todos os projetos na stack PROJECTS_DIR="/home/deploy/projects" DOMAIN="${DOMAIN:-nest.juancjc.com.br}" echo "" echo "================================================" echo " NestJS Stack — Status dos Projetos" echo "================================================" if [ ! -d "$PROJECTS_DIR" ]; then echo " ✗ Pasta $PROJECTS_DIR não encontrada" exit 1 fi PM2_LIST=$(docker exec nestjs-stack pm2 jlist 2>/dev/null) found=0 for project_dir in "$PROJECTS_DIR"/*/; do [ -d "$project_dir" ] || continue project=$(basename "$project_dir") port=$(cat "$project_dir/.port" 2>/dev/null || echo "?") found=$((found + 1)) if [ ! -f "$project_dir/dist/main.js" ]; then echo " ✗ $project → sem build (rode: ./host-deploy.sh $project)" continue fi status=$(echo "$PM2_LIST" | grep -o "\"name\":\"$project\".*?\"status\":\"[^\"]*\"" 2>/dev/null | grep -o "\"status\":\"[^\"]*\"" | cut -d'"' -f4) if [ -z "$status" ]; then status="não iniciado" icon="⚠" elif [ "$status" = "online" ]; then icon="✓" else icon="✗" fi if [ -f "/home/deploy/nginx-dynamic/${project}.conf" ]; then nginx_status="✓" else nginx_status="✗" fi echo " $icon $project" echo " URL: http://$DOMAIN/$project" echo " Porta: $port" echo " PM2: $status" echo " Nginx: $nginx_status" echo "" done if [ "$found" -eq 0 ]; then echo " Nenhum projeto encontrado em $PROJECTS_DIR" echo " Clone seus projetos: git clone $PROJECTS_DIR/" fi echo "================================================" echo " Container: $(docker inspect -f '{{.State.Status}}' nestjs-stack 2>/dev/null || echo 'não encontrado')" echo "================================================" echo ""