#!/bin/bash # 🚀 Deploy PIX Completo - Local para Servidor # Execute: ./deploy-pix-completo.sh usuario@servidor echo "🚀 Deploy PIX - Liberi Kids (Local → Servidor)" 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}[SUCCESS]${NC} $1" } warn() { echo -e "${YELLOW}[WARN]${NC} $1" } info() { echo -e "${BLUE}[INFO]${NC} $1" } error() { echo -e "${RED}[ERROR]${NC} $1" } # Verificar parâmetros if [ -z "$1" ]; then error "❌ Uso: ./deploy-pix-completo.sh usuario@servidor" echo "Exemplo: ./deploy-pix-completo.sh tiago@192.168.195.145" exit 1 fi SERVIDOR=$1 info "🎯 Servidor destino: $SERVIDOR" # Verificar se estamos no diretório correto if [ ! -f "server-supabase.js" ]; then error "❌ Execute este script no diretório raiz do projeto!" exit 1 fi echo "" info "📦 ETAPA 1: Preparando arquivos locais..." # Build do frontend if [ -d "client" ]; then info "🔨 Fazendo build do frontend..." cd client npm run build if [ $? -eq 0 ]; then log "✅ Build do frontend concluído" else error "❌ Erro no build do frontend" exit 1 fi cd .. else warn "⚠️ Diretório client não encontrado" fi echo "" info "📤 ETAPA 2: Enviando arquivos para o servidor..." # Criar lista de arquivos para enviar ARQUIVOS_ENVIAR=( "server-supabase.js" "config/" "sql/" "scripts/" "client/build/" "package.json" ".env.example" "aplicar-pix-supabase.sql" "configurar-pix-servidor.sh" "INTEGRACAO-PIX-GUIDE.md" ) # Verificar conectividade SSH info "🔗 Testando conexão SSH..." ssh -o ConnectTimeout=10 -o BatchMode=yes $SERVIDOR exit if [ $? -ne 0 ]; then error "❌ Não foi possível conectar ao servidor $SERVIDOR" echo "Verifique:" echo " - Se o servidor está ligado" echo " - Se o SSH está funcionando" echo " - Se as credenciais estão corretas" exit 1 fi log "✅ Conexão SSH OK" # Criar diretório no servidor se não existir info "📁 Criando diretório no servidor..." ssh $SERVIDOR "mkdir -p ~/app_estoque" # Enviar arquivos info "📤 Enviando arquivos PIX..." for arquivo in "${ARQUIVOS_ENVIAR[@]}"; do if [ -e "$arquivo" ]; then info "📤 Enviando: $arquivo" rsync -avz --progress "$arquivo" $SERVIDOR:~/app_estoque/ if [ $? -eq 0 ]; then log "✅ $arquivo enviado" else warn "⚠️ Erro ao enviar $arquivo" fi else warn "⚠️ Arquivo não encontrado: $arquivo" fi done echo "" info "🔧 ETAPA 3: Configurando no servidor..." # Executar configuração no servidor ssh $SERVIDOR << 'EOF' cd ~/app_estoque echo "🏦 Configurando PIX no servidor..." # Dar permissão de execução chmod +x configurar-pix-servidor.sh # Instalar dependências se necessário if [ ! -d "node_modules" ]; then echo "📦 Instalando dependências..." npm install fi # Instalar mercadopago se não existir if [ ! -d "node_modules/mercadopago" ]; then echo "📦 Instalando Mercado Pago SDK..." npm install mercadopago fi # Verificar se .env existe if [ ! -f ".env" ]; then echo "📝 Criando arquivo .env..." cp .env.example .env fi # Verificar se credenciais PIX estão no .env if ! grep -q "MERCADOPAGO_ACCESS_TOKEN" .env; then echo "📝 Adicionando configurações PIX ao .env..." cat >> .env << 'ENVEOF' # ===================================================== # CONFIGURAÇÕES PIX - MERCADO PAGO # ===================================================== # Access Token do Mercado Pago (TEST para desenvolvimento, PROD para produção) MERCADOPAGO_ACCESS_TOKEN=TEST-sua_access_token_aqui # Public Key do Mercado Pago MERCADOPAGO_PUBLIC_KEY=pk_test_sua_public_key_aqui # URL base para webhooks (importante para produção) BASE_URL=http://localhost:5000 ENVEOF fi echo "✅ Configuração no servidor concluída!" EOF if [ $? -eq 0 ]; then log "✅ Configuração no servidor concluída" else error "❌ Erro na configuração do servidor" exit 1 fi echo "" info "🎉 DEPLOY PIX CONCLUÍDO COM SUCESSO!" echo "" log "✅ Arquivos enviados para: $SERVIDOR:~/app_estoque/" log "✅ Dependências instaladas" log "✅ Configurações preparadas" echo "" warn "📝 PRÓXIMOS PASSOS NO SERVIDOR:" echo "" echo "1. 🏦 CONFIGURAR CREDENCIAIS MERCADO PAGO:" echo " ssh $SERVIDOR" echo " cd ~/app_estoque" echo " nano .env" echo " # Configure MERCADOPAGO_ACCESS_TOKEN e MERCADOPAGO_PUBLIC_KEY" echo "" echo "2. 🗄️ APLICAR SQL NO SUPABASE:" echo " - Acesse: https://supabase.com/dashboard" echo " - SQL Editor → Execute: aplicar-pix-supabase.sql" echo "" echo "3. 🔄 REINICIAR SERVIDOR:" echo " ssh $SERVIDOR" echo " cd ~/app_estoque" echo " pm2 restart liberi-kids" echo " # ou: pm2 start server-supabase.js --name liberi-kids" echo "" echo "4. 🧪 TESTAR PIX:" echo " - Acesse o sistema no servidor" echo " - Vá em Vendas → Clique no botão PIX (💳)" echo " - Verifique se QR Code é gerado" echo "" info "💡 CREDENCIAIS MERCADO PAGO:" echo " - Acesse: https://www.mercadopago.com.br/developers" echo " - Crie aplicação de 'Pagamentos online'" echo " - Copie Access Token e Public Key" echo "" log "🎉 SEU SISTEMA PIX ESTÁ PRONTO PARA CONFIGURAÇÃO FINAL!" echo "" warn "Execute os próximos passos no servidor para ativar o PIX!"