Versão inicial do site Avanzato

This commit is contained in:
2026-05-25 23:31:32 -03:00
commit 4eed31a206
155 changed files with 31304 additions and 0 deletions
+421
View File
@@ -0,0 +1,421 @@
#!/bin/bash
# ============================================================================
# Script de Deploy Manual - Avanzato
# ============================================================================
# Uso: bash deploy-manual.sh [caminho-do-build.zip]
#
# Exemplo:
# bash deploy-manual.sh /caminho/avanzato-site-build.zip
#
# Se nao passar argumento, procura avanzato-site-build.zip no diretorio atual
# ============================================================================
set -e
# =============================================================================
# CONFIGURACOES - AJUSTE SE NECESSARIO
# =============================================================================
# Caminho do site no servidor
SITE_PATH="/opt/avanzato/site/app"
# Container Docker
CONTAINER_NAME="avanzato-site"
# Porta do site
SITE_PORT="8080"
# Dominio
DOMAIN="avanzato.com.br"
# Mautic URL (para validacao)
MAUTIC_URL="mkt.avanzato.com.br"
# =============================================================================
# CORES
# =============================================================================
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
NC='\033[0m'
BOLD='\033[1m'
# =============================================================================
# FUNCOES DE UTILIDADE
# =============================================================================
print_header() {
echo ""
echo -e "${CYAN}============================================================${NC}"
echo -e "${CYAN} $1${NC}"
echo -e "${CYAN}============================================================${NC}"
echo ""
}
print_step() {
echo -e "${BLUE}[PASSO $1]${NC} $2"
}
print_ok() {
echo -e "${GREEN}${NC} $1"
}
print_error() {
echo -e "${RED} ✗ ERRO:${NC} $1"
}
print_warning() {
echo -e "${YELLOW} ⚠ AVISO:${NC} $1"
}
print_info() {
echo -e "${CYAN} ${NC} $1"
}
confirm() {
read -p "$1 (s/N): " response
case "$response" in
[sS]) return 0 ;;
*) return 1 ;;
esac
}
# =============================================================================
# VALIDACAO INICIAL
# =============================================================================
print_header "DEPLOY MANUAL - AVANZATO"
# Verificar se esta no servidor correto
if [ ! -d "$SITE_PATH" ]; then
print_error "Diretorio do site nao encontrado: $SITE_PATH"
print_info "Verifique se esta no servidor correto"
exit 1
fi
print_ok "Diretorio do site encontrado: $SITE_PATH"
# Verificar se Docker esta rodando
if ! docker ps &>/dev/null; then
print_error "Docker nao esta acessivel. Verifique permissoes."
exit 1
fi
print_ok "Docker acessivel"
# Verificar arquivo de build
BUILD_FILE="${1:-avanzato-site-build.zip}"
if [ ! -f "$BUILD_FILE" ]; then
print_error "Arquivo de build nao encontrado: $BUILD_FILE"
print_info "Uso: bash deploy-manual.sh /caminho/do/build.zip"
print_info "Ou coloque avanzato-site-build.zip nesta pasta"
# Listar arquivos zip disponiveis
zips=$(find . -maxdepth 1 -name "*.zip" -type f 2>/dev/null)
if [ -n "$zips" ]; then
echo ""
print_info "Arquivos zip encontrados:"
echo "$zips" | while read f; do echo " - $f ($(du -h "$f" | cut -f1))"; done
fi
exit 1
fi
print_ok "Arquivo de build encontrado: $BUILD_FILE ($(du -h "$BUILD_FILE" | cut -f1))"
# =============================================================================
# PASSO 1: BACKUP DO DIST ATUAL
# =============================================================================
print_step "1" "Backup do dist atual"
if [ -d "$SITE_PATH/dist" ]; then
BACKUP_NAME="dist_bkp_$(date +%Y%m%d_%H%M)"
cp -r "$SITE_PATH/dist" "$SITE_PATH/$BACKUP_NAME"
print_ok "Backup criado: $SITE_PATH/$BACKUP_NAME"
else
print_warning "Dist atual nao encontrado, pulando backup"
fi
# =============================================================================
# PASSO 2: ENVIAR/EXTRAIR NOVO BUILD
# =============================================================================
print_step "2" "Extrair novo build"
# Criar diretorio temporario
TEMP_DIR="/tmp/avanzato-deploy-$(date +%s)"
mkdir -p "$TEMP_DIR"
# Extrair
unzip -q "$BUILD_FILE" -d "$TEMP_DIR"
print_ok "Build extraido para $TEMP_DIR"
# Verificar estrutura
if [ -d "$TEMP_DIR/dist" ]; then
DIST_SOURCE="$TEMP_DIR/dist"
elif [ -d "$TEMP_DIR/app/dist" ]; then
DIST_SOURCE="$TEMP_DIR/app/dist"
else
print_error "Estrutura do zip invalida. Esperado: dist/ ou app/dist/"
print_info "Conteudo do zip:"
find "$TEMP_DIR" -maxdepth 2 -type d
rm -rf "$TEMP_DIR"
exit 1
fi
print_ok "Dist encontrado em: $DIST_SOURCE"
# =============================================================================
# PASSO 3: VALIDAR NOVO DIST
# =============================================================================
print_step "3" "Validar novo dist"
# Verificar index.html
if [ ! -f "$DIST_SOURCE/index.html" ]; then
print_error "index.html nao encontrado no novo dist!"
rm -rf "$TEMP_DIR"
exit 1
fi
print_ok "index.html existe"
# Verificar assets
if [ ! -d "$DIST_SOURCE/assets" ]; then
print_error "Pasta assets/ nao encontrada!"
rm -rf "$TEMP_DIR"
exit 1
fi
print_ok "assets/ existe ($(ls "$DIST_SOURCE/assets/" | wc -l) arquivos)"
# Verificar favicon
if [ -f "$DIST_SOURCE/favicon.svg" ] || [ -f "$DIST_SOURCE/favicon.ico" ]; then
print_ok "favicon existe"
else
print_warning "favicon nao encontrado (opcional)"
fi
# Verificar Mautic no codigo
if grep -q "$MAUTIC_URL" "$DIST_SOURCE/index.html" 2>/dev/null; then
print_ok "Mautic ($MAUTIC_URL) encontrado no index.html"
else
print_warning "URL do Mautic nao encontrada no index.html"
fi
# Verificar Facebook Pixel
if grep -q "1223271852059785" "$DIST_SOURCE/index.html" 2>/dev/null; then
print_ok "Facebook Pixel encontrado no index.html"
else
print_warning "Facebook Pixel nao encontrado no index.html"
fi
# Verificar Google Ads
if grep -q "AW-16714813566" "$DIST_SOURCE/index.html" 2>/dev/null; then
print_ok "Google Ads encontrado no index.html"
else
print_warning "Google Ads nao encontrado no index.html"
fi
# =============================================================================
# PASSO 4: CONFIRMAR DEPLOY
# =============================================================================
echo ""
print_info "Resumo do deploy:"
echo " Build: $BUILD_FILE"
echo " Dist origem: $DIST_SOURCE"
echo " Dist destino: $SITE_PATH/dist"
echo " Container: $CONTAINER_NAME"
echo ""
if ! confirm "Confirma o deploy?"; then
print_warning "Deploy cancelado pelo usuario"
rm -rf "$TEMP_DIR"
exit 0
fi
# =============================================================================
# PASSO 5: SUBSTITUIR DIST
# =============================================================================
print_step "5" "Substituir dist"
# Remover dist antigo
if [ -d "$SITE_PATH/dist" ]; then
rm -rf "$SITE_PATH/dist"
print_ok "Dist antigo removido"
fi
# Copiar novo dist
cp -r "$DIST_SOURCE" "$SITE_PATH/dist"
print_ok "Novo dist copiado para $SITE_PATH/dist"
# Ajustar permissoes
chown -R root:root "$SITE_PATH/dist" 2>/dev/null || true
chmod -R 755 "$SITE_PATH/dist" 2>/dev/null || true
# =============================================================================
# PASSO 6: VALIDAR ARQUIVOS
# =============================================================================
print_step "6" "Validar arquivos do novo dist"
if [ ! -f "$SITE_PATH/dist/index.html" ]; then
print_error "index.html nao encontrado apos copiar!"
exit 1
fi
print_ok "index.html presente"
if [ ! -d "$SITE_PATH/dist/assets" ]; then
print_error "assets/ nao encontrado apos copiar!"
exit 1
fi
print_ok "assets/ presente ($(ls "$SITE_PATH/dist/assets/" | wc -l) arquivos)"
# Mostrar tamanho
DIST_SIZE=$(du -sh "$SITE_PATH/dist" | cut -f1)
print_info "Tamanho do dist: $DIST_SIZE"
# =============================================================================
# PASSO 7: REINICIAR CONTAINER
# =============================================================================
print_step "7" "Reiniciar container Docker"
cd "$SITE_PATH"
docker compose down
print_ok "Container parado"
docker compose up -d
print_ok "Container iniciado"
# Aguardar container subir
print_info "Aguardando container iniciar..."
sleep 5
# =============================================================================
# PASSO 8: VALIDAR CONTAINER
# =============================================================================
print_step "8" "Validar container"
if docker ps --format "{{.Names}}" | grep -q "$CONTAINER_NAME"; then
print_ok "Container '$CONTAINER_NAME' esta rodando"
else
print_error "Container '$CONTAINER_NAME' NAO encontrado!"
docker ps
exit 1
fi
# =============================================================================
# PASSO 9: TESTAR LOCALMENTE
# =============================================================================
print_step "9" "Testar localmente"
# Testar HTTP
HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:$SITE_PORT 2>/dev/null || echo "000")
if [ "$HTTP_STATUS" = "200" ]; then
print_ok "HTTP 200 OK - Site responde na porta $SITE_PORT"
else
print_error "HTTP $HTTP_STATUS - Site nao responde corretamente"
print_info "Aguardando mais 5 segundos..."
sleep 5
HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:$SITE_PORT 2>/dev/null || echo "000")
if [ "$HTTP_STATUS" = "200" ]; then
print_ok "HTTP 200 OK - Site responde agora"
else
print_error "HTTP $HTTP_STATUS - Problema persistente"
fi
fi
# Validar Mautic no HTML
if curl -s http://127.0.0.1:$SITE_PORT | grep -q "$MAUTIC_URL"; then
print_ok "Mautic ($MAUTIC_URL) encontrado no HTML"
else
print_warning "Mautic nao encontrado no HTML"
fi
# =============================================================================
# PASSO 10: LIMPAR CACHE CLOUDFLARE
# =============================================================================
print_step "10" "Limpar cache Cloudflare"
print_info "Execute manualmente no painel Cloudflare:"
echo ""
echo -e " ${CYAN}1.${NC} Acesse: https://dash.cloudflare.com"
echo -e " ${CYAN}2.${NC} Selecione o dominio: $DOMAIN"
echo -e " ${CYAN}3.${NC} Va em: Caching → Configuration"
echo -e " ${CYAN}4.${NC} Clique: ${BOLD}Purge Everything${NC}"
echo -e " ${CYAN}5.${NC} Ative: ${BOLD}Development Mode → ON${NC}"
echo ""
if confirm "Ja limpou o cache do Cloudflare"; then
print_ok "Cache limpo"
else
print_warning "Lembre-se de limpar o cache manualmente!"
fi
# =============================================================================
# PASSO 11: TESTAR NO NAVEGADOR
# =============================================================================
print_step "11" "Testar no navegador"
echo ""
print_info "URLs para testar:"
echo -e " ${CYAN}1.${NC} https://$DOMAIN/?v=$(date +%Y%m%d)"
echo -e " ${CYAN}2.${NC} https://$DOMAIN/contato"
echo -e " ${CYAN}3.${NC} https://$DOMAIN/avaliacao"
echo -e " ${CYAN}4.${NC} https://$DOMAIN/tecnologia-para-condominios"
echo ""
if confirm "Deseja abrir o site no navegador agora (via curl)"; then
echo ""
print_info "Testando pagina principal..."
curl -I "https://$DOMAIN/?v=$(date +%Y%m%d)" 2>/dev/null | head -5 || \
print_warning "Nao foi possivel testar via HTTPS (pode ser normal)"
fi
# =============================================================================
# PASSO 12: LIMPAR TEMP
# =============================================================================
print_step "12" "Limpar arquivos temporarios"
rm -rf "$TEMP_DIR"
print_ok "Arquivos temporarios removidos"
# =============================================================================
# RESUMO FINAL
# =============================================================================
echo ""
print_header "DEPLOY CONCLUIDO!"
echo -e "${GREEN}Site atualizado com sucesso!${NC}"
echo ""
echo -e " Build: ${CYAN}$BUILD_FILE${NC}"
echo -e " Dist: ${CYAN}$SITE_PATH/dist${NC}"
echo -e " Container: ${CYAN}$CONTAINER_NAME${NC}"
echo -e " Porta: ${CYAN}$SITE_PORT${NC}"
echo ""
echo -e "${YELLOW}Proximos passos:${NC}"
echo -e " 1. Limpar cache Cloudflare (se ainda nao fez)"
echo -e " 2. Testar no navegador: https://$DOMAIN"
echo -e " 3. Testar formularios"
echo -e " 4. Verificar leads no Mautic"
echo ""
echo -e "${YELLOW}Em caso de problema:${NC}"
echo -e " 1. Restaurar backup: ${CYAN}cp -r $SITE_PATH/dist_bkp_* $SITE_PATH/dist${NC}"
echo -e " 2. Reiniciar: ${CYAN}cd $SITE_PATH && docker compose down && docker compose up -d${NC}"
echo -e " 3. Limpar cache Safari: ${CYAN}CMD + OPTION + E${NC}"
echo ""