Files
App-Estoque-LiberiKids/deploy-pix-completo.sh
2025-10-14 14:04:17 -03:00

222 lines
5.5 KiB
Bash
Executable File

#!/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!"