#!/bin/bash # 🚀 Deploy COMPLETO: PC → Servidor Limpo # Este script envia TUDO do seu PC para o servidor # Execute: ./deploy-completo-servidor.sh echo "🚀 DEPLOY COMPLETO - Liberi Kids" echo "================================" # Cores para output GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' RED='\033[0;31m' NC='\033[0m' log() { echo -e "${GREEN}[✅ OK]${NC} $1" } warn() { echo -e "${YELLOW}[⚠️ WARN]${NC} $1" } info() { echo -e "${BLUE}[ℹ️ INFO]${NC} $1" } error() { echo -e "${RED}[❌ ERRO]${NC} $1" } # Configurações do servidor SERVER_IP="192.168.195.145" SERVER_USER="tiago" SERVER_PATH="/home/tiago/app_estoque" echo "" info "📋 ESTE SCRIPT VAI ENVIAR:" echo " 📁 Todos os arquivos do projeto" echo " 🔧 Configurações e credenciais" echo " 📦 Frontend compilado" echo " 🏦 Configurações PIX" echo " 🗄️ Scripts SQL" echo " 📚 Documentação completa" echo "" read -p "Continuar com o deploy completo? (s/N): " confirma if [[ $confirma != "s" && $confirma != "S" ]]; then error "❌ Deploy cancelado!" exit 1 fi echo "" info "🔨 PREPARANDO DEPLOY..." # Verificar se o build existe if [ ! -d "client/build" ]; then info "🏗️ Compilando frontend..." cd client npm run build cd .. log "✅ Frontend compilado" fi # Criar diretório temporário para deploy TEMP_DIR="/tmp/liberi-deploy-$(date +%s)" mkdir -p $TEMP_DIR echo "" info "📦 CRIANDO PACOTE DE DEPLOY..." # Copiar arquivos essenciais cp -r client/build $TEMP_DIR/ cp server-supabase.js $TEMP_DIR/ cp package.json $TEMP_DIR/ cp -r config $TEMP_DIR/ cp .env $TEMP_DIR/ 2>/dev/null || cp .env.example $TEMP_DIR/.env # Copiar scripts e documentação cp *.sh $TEMP_DIR/ 2>/dev/null || true cp *.md $TEMP_DIR/ 2>/dev/null || true cp *.sql $TEMP_DIR/ 2>/dev/null || true # Criar estrutura de diretórios mkdir -p $TEMP_DIR/uploads mkdir -p $TEMP_DIR/logs log "✅ Pacote criado: $TEMP_DIR" echo "" info "🌐 ENVIANDO PARA SERVIDOR..." # Enviar tudo via rsync rsync -avz --progress $TEMP_DIR/ $SERVER_USER@$SERVER_IP:$SERVER_PATH/ log "✅ Arquivos enviados" echo "" info "📦 INSTALANDO DEPENDÊNCIAS NO SERVIDOR..." # Instalar dependências ssh $SERVER_USER@$SERVER_IP "cd $SERVER_PATH && npm install" log "✅ Dependências instaladas" echo "" info "🔧 CONFIGURANDO SERVIDOR..." # Configurar permissões ssh $SERVER_USER@$SERVER_IP "cd $SERVER_PATH && chmod +x *.sh" # Verificar se .env existe ssh $SERVER_USER@$SERVER_IP "cd $SERVER_PATH && [ ! -f .env ] && cp .env.example .env || true" log "✅ Servidor configurado" echo "" info "🚀 INICIANDO APLICAÇÃO..." # Iniciar com PM2 ssh $SERVER_USER@$SERVER_IP "cd $SERVER_PATH && pm2 start server-supabase.js --name liberi-kids" ssh $SERVER_USER@$SERVER_IP "pm2 save" log "✅ Aplicação iniciada" echo "" info "🧪 TESTANDO SERVIDOR..." # Aguardar inicialização sleep 3 # Testar se está respondendo if ssh $SERVER_USER@$SERVER_IP "curl -s http://localhost:5000 > /dev/null"; then log "✅ Servidor respondendo" else warn "⚠️ Servidor pode não estar respondendo" fi # Limpar arquivos temporários rm -rf $TEMP_DIR echo "" log "🎉 DEPLOY COMPLETO FINALIZADO!" echo "" info "📋 RESUMO DO DEPLOY:" echo " ✅ Arquivos enviados: $(ssh $SERVER_USER@$SERVER_IP "cd $SERVER_PATH && find . -type f | wc -l") arquivos" echo " ✅ Dependências: Instaladas" echo " ✅ PM2: Configurado" echo " ✅ Servidor: Rodando" echo "" info "🌐 ACESSO:" echo " Frontend: http://$SERVER_IP:5000" echo " Status: pm2 status" echo " Logs: pm2 logs liberi-kids" echo "" info "🔧 COMANDOS ÚTEIS NO SERVIDOR:" echo " ssh $SERVER_USER@$SERVER_IP" echo " cd $SERVER_PATH" echo " pm2 restart liberi-kids" echo " pm2 logs liberi-kids" echo "" warn "💡 LEMBRE-SE:" echo " - Configure credenciais no .env se necessário" echo " - Aplique SQL no Supabase se for primeira vez" echo " - Teste todas as funcionalidades" echo "" log "✨ SEU PROJETO ESTÁ NO AR!"