174 lines
3.9 KiB
Bash
Executable File
174 lines
3.9 KiB
Bash
Executable File
#!/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!"
|