Primeiro commit
This commit is contained in:
127
scripts/deploy-local.sh
Executable file
127
scripts/deploy-local.sh
Executable file
@@ -0,0 +1,127 @@
|
||||
#!/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! ✓"
|
||||
Reference in New Issue
Block a user