66 lines
1.8 KiB
Bash
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 ""
|