Files
docker-nest-js/host-status.sh

66 lines
1.8 KiB
Bash

#!/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 <repo> $PROJECTS_DIR/<nome>"
fi
echo "================================================"
echo " Container: $(docker inspect -f '{{.State.Status}}' nestjs-stack 2>/dev/null || echo 'não encontrado')"
echo "================================================"
echo ""