#!/bin/bash # 🚀 Script de Deploy Local - Liberi Kids # Execute: chmod +x scripts/deploy-local.sh && ./scripts/deploy-local.sh echo "🚀 Iniciando deploy local do Liberi Kids..." # Cores para output RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color # Função para log colorido log() { echo -e "${GREEN}[INFO]${NC} $1" } warn() { echo -e "${YELLOW}[WARN]${NC} $1" } error() { echo -e "${RED}[ERROR]${NC} $1" } # Verificar se Node.js está instalado if ! command -v node &> /dev/null; then error "Node.js não encontrado. Instale Node.js 18+ primeiro." exit 1 fi # Verificar versão do Node.js NODE_VERSION=$(node -v | cut -d'v' -f2 | cut -d'.' -f1) if [ "$NODE_VERSION" -lt 18 ]; then error "Node.js versão 18+ é necessária. Versão atual: $(node -v)" exit 1 fi log "Node.js $(node -v) encontrado ✓" # Instalar dependências do servidor log "Instalando dependências do servidor..." npm install if [ $? -ne 0 ]; then error "Falha ao instalar dependências do servidor" exit 1 fi # Entrar na pasta do cliente cd client # Instalar dependências do cliente log "Instalando dependências do frontend..." npm install if [ $? -ne 0 ]; then error "Falha ao instalar dependências do frontend" exit 1 fi # Fazer build do frontend log "Fazendo build do frontend..." npm run build if [ $? -ne 0 ]; then error "Falha no build do frontend" exit 1 fi # Voltar para pasta raiz cd .. # Verificar se arquivo .env existe if [ ! -f ".env" ]; then warn "Arquivo .env não encontrado. Criando exemplo..." cat > .env << EOF # Configurações do Supabase SUPABASE_URL=https://seu-projeto.supabase.co SUPABASE_ANON_KEY=sua_chave_anonima_aqui # Configurações do servidor NODE_ENV=production PORT=5000 EOF warn "Configure o arquivo .env com suas credenciais do Supabase!" echo "Edite o arquivo .env antes de continuar." exit 1 fi # Verificar se PM2 está instalado if ! command -v pm2 &> /dev/null; then log "PM2 não encontrado. Instalando PM2..." npm install -g pm2 fi # Parar processo anterior se existir pm2 delete liberi-kids 2>/dev/null || true # Iniciar aplicação com PM2 log "Iniciando aplicação com PM2..." pm2 start server-supabase.js --name "liberi-kids" --env production # Configurar PM2 para iniciar automaticamente log "Configurando PM2 para inicialização automática..." pm2 startup pm2 save # Status final log "Deploy concluído com sucesso! 🎉" echo "" echo -e "${BLUE}📊 Status da aplicação:${NC}" pm2 status echo "" echo -e "${BLUE}🌐 Acesso:${NC}" echo " Local: http://localhost:5000" echo " Rede: http://$(hostname -I | awk '{print $1}'):5000" echo "" echo -e "${BLUE}📋 Comandos úteis:${NC}" echo " Ver logs: pm2 logs liberi-kids" echo " Reiniciar: pm2 restart liberi-kids" echo " Parar: pm2 stop liberi-kids" echo " Status: pm2 status" echo "" log "Aplicação rodando em produção! ✓"