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

174 lines
3.9 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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!"