#!/bin/bash # start.sh — entrypoint do container # NÃO apaga projetos nem configs existentes — só sobe o que falta PROJECTS_DIR="${PROJECTS_DIR:-/home/deploy/projects}" BASE_PORT="${BASE_PORT:-3000}" echo "================================================" echo " NestJS Stack — Iniciando..." echo "================================================" mkdir -p "$PROJECTS_DIR" mkdir -p /etc/nginx/sites-dynamic # Inicia nginx echo "→ Iniciando Nginx..." nginx -t && nginx echo "✓ Nginx rodando" echo "→ Verificando projetos existentes..." port_index=1 for project_dir in "$PROJECTS_DIR"/*/; do [ -d "$project_dir" ] || continue project=$(basename "$project_dir") port=$((BASE_PORT + port_index)) if [ -f "$project_dir/dist/main.js" ]; then echo " → Subindo $project na porta $port" echo "$port" > "$project_dir/.port" # Recria config nginx SOMENTE se não existir if [ ! -f "/etc/nginx/sites-dynamic/${project}.conf" ]; then echo " → Criando config nginx para $project" cat > "/etc/nginx/sites-dynamic/${project}.conf" < /dev/null 2>&1; then pm2 restart "$project" else pm2 start "$project_dir/dist/main.js" \ --name "$project" \ --env production \ -- --port "$port" fi else echo " ⚠ $project sem build — rode: ./host-deploy.sh $project" fi port_index=$((port_index + 1)) done nginx -s reload 2>/dev/null || true echo "✓ Nginx atualizado com rotas dos projetos" pm2 save 2>/dev/null || true echo "" echo "================================================" echo " Stack pronta!" echo " Acesse: http://${DOMAIN:-localhost}/" echo "================================================" pm2 logs --raw