chore: sincroniza projeto para gitea

This commit is contained in:
Tiago
2025-11-29 21:31:52 -03:00
parent 33d8645eb4
commit 7e7a0f8867
129 changed files with 24999 additions and 6757 deletions

157
scripts/deploy-servidor.sh Executable file
View File

@@ -0,0 +1,157 @@
#!/bin/bash
# 🚀 Script de Deploy Automático - Liberi Kids
# Deploy no servidor local com PM2
set -e # Parar em caso de erro
# Cores para output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${GREEN}🚀 Deploy Automático - Liberi Kids${NC}"
echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo ""
# Função para verificar se comando existe
command_exists() {
command -v "$1" >/dev/null 2>&1
}
# 1. Verificar Node.js
echo -e "${YELLOW}📦 Verificando Node.js...${NC}"
if ! command_exists node; then
echo -e "${RED}❌ Node.js não encontrado!${NC}"
echo -e "Instale com: ${BLUE}curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - && sudo apt-get install -y nodejs${NC}"
exit 1
fi
echo -e "${GREEN}✅ Node.js $(node --version) encontrado${NC}"
echo ""
# 2. Verificar PM2
echo -e "${YELLOW}📦 Verificando PM2...${NC}"
if ! command_exists pm2; then
echo -e "${YELLOW}⚠️ PM2 não encontrado. Instalando...${NC}"
sudo npm install -g pm2
echo -e "${GREEN}✅ PM2 instalado com sucesso${NC}"
else
echo -e "${GREEN}✅ PM2 $(pm2 --version) encontrado${NC}"
fi
echo ""
# 3. Verificar arquivo .env
echo -e "${YELLOW}🔧 Verificando configurações...${NC}"
if [ ! -f ".env" ]; then
echo -e "${RED}❌ Arquivo .env não encontrado!${NC}"
if [ -f ".env.example" ]; then
echo -e "${YELLOW}Criando .env a partir do .env.example...${NC}"
cp .env.example .env
echo -e "${YELLOW}⚠️ ATENÇÃO: Configure o arquivo .env com suas credenciais!${NC}"
echo -e "Execute: ${BLUE}nano .env${NC}"
exit 1
else
echo -e "${RED}Nem .env nem .env.example encontrados!${NC}"
exit 1
fi
else
echo -e "${GREEN}✅ Arquivo .env encontrado${NC}"
fi
echo ""
# 4. Instalar dependências do backend
echo -e "${YELLOW}📦 Instalando dependências do backend...${NC}"
npm install
echo -e "${GREEN}✅ Dependências do backend instaladas${NC}"
echo ""
# 5. Instalar dependências do frontend
echo -e "${YELLOW}📦 Instalando dependências do frontend...${NC}"
cd client
npm install
echo -e "${GREEN}✅ Dependências do frontend instaladas${NC}"
echo ""
# 6. Build do frontend
echo -e "${YELLOW}🔨 Fazendo build do frontend...${NC}"
npm run build
cd ..
echo -e "${GREEN}✅ Build do frontend concluído${NC}"
echo ""
# 7. Criar diretório de logs
echo -e "${YELLOW}📁 Criando diretórios necessários...${NC}"
mkdir -p logs
mkdir -p uploads
echo -e "${GREEN}✅ Diretórios criados${NC}"
echo ""
# 8. Parar processo anterior (se existir)
echo -e "${YELLOW}🛑 Parando processos anteriores...${NC}"
if pm2 list | grep -q "liberi-kids-estoque"; then
pm2 stop liberi-kids-estoque
pm2 delete liberi-kids-estoque
echo -e "${GREEN}✅ Processo anterior removido${NC}"
else
echo -e "${BLUE} Nenhum processo anterior encontrado${NC}"
fi
echo ""
# 9. Iniciar com PM2
echo -e "${YELLOW}🚀 Iniciando aplicação com PM2...${NC}"
pm2 start ecosystem.config.js
echo -e "${GREEN}✅ Aplicação iniciada${NC}"
echo ""
# 10. Salvar configuração PM2
echo -e "${YELLOW}💾 Salvando configuração do PM2...${NC}"
pm2 save
echo -e "${GREEN}✅ Configuração salva${NC}"
echo ""
# 11. Verificar status
echo -e "${YELLOW}📊 Verificando status...${NC}"
pm2 status
echo ""
# 12. Configurar auto-start (opcional)
echo -e "${YELLOW}🔄 Deseja configurar inicialização automática no boot? (s/n)${NC}"
read -r resposta
if [ "$resposta" = "s" ] || [ "$resposta" = "S" ]; then
echo -e "${YELLOW}Configurando auto-start...${NC}"
pm2 startup
echo ""
echo -e "${YELLOW}⚠️ IMPORTANTE: Execute o comando mostrado acima com sudo!${NC}"
echo -e "Depois execute: ${BLUE}pm2 save${NC}"
fi
echo ""
# 13. Verificar porta
PORT=$(grep "^PORT=" .env | cut -d '=' -f2 || echo "5000")
PORT=${PORT:-5000}
echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${GREEN}✅ Deploy concluído com sucesso!${NC}"
echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo ""
echo -e "${GREEN}📍 Aplicação rodando em:${NC}"
echo -e " ${BLUE}http://localhost:${PORT}${NC}"
echo -e " ${BLUE}http://$(hostname -I | awk '{print $1}'):${PORT}${NC}"
echo ""
echo -e "${GREEN}📦 Catálogo público em:${NC}"
echo -e " ${BLUE}http://localhost:${PORT}/catalogo${NC}"
echo ""
echo -e "${YELLOW}📊 Comandos úteis:${NC}"
echo -e " ${BLUE}pm2 status${NC} - Ver status"
echo -e " ${BLUE}pm2 logs${NC} - Ver logs"
echo -e " ${BLUE}pm2 monit${NC} - Monitorar"
echo -e " ${BLUE}pm2 restart all${NC} - Reiniciar"
echo -e " ${BLUE}pm2 stop all${NC} - Parar"
echo ""
echo -e "${GREEN}📝 Ver logs agora:${NC}"
echo -e " ${BLUE}pm2 logs liberi-kids-estoque${NC}"
echo ""
echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"