Versão inicial do site Avanzato
This commit is contained in:
@@ -0,0 +1,133 @@
|
||||
#!/bin/bash
|
||||
# ============================================================================
|
||||
# Script de Deploy - Avanzato
|
||||
# ============================================================================
|
||||
# Uso: bash scripts/deploy.sh [ambiente]
|
||||
#
|
||||
# Ambientes:
|
||||
# production (padrao) - Deploy para producao
|
||||
# staging - Deploy para staging
|
||||
#
|
||||
# EXEMPLO:
|
||||
# bash scripts/deploy.sh production
|
||||
# bash scripts/deploy.sh staging
|
||||
# ============================================================================
|
||||
|
||||
set -e
|
||||
|
||||
# Cores
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
RED='\033[0;31m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m'
|
||||
|
||||
# Diretorios
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
|
||||
DIST_DIR="${PROJECT_DIR}/dist"
|
||||
|
||||
# Ambiente
|
||||
ENVIRONMENT="${1:-production}"
|
||||
|
||||
# Configuracoes (EDITAR ESTAS VARIAVEIS)
|
||||
# ============================================
|
||||
SSH_HOST="${SSH_HOST:-SEU_SERVIDOR_AQUI}" # Ex: 201.45.120.30
|
||||
SSH_USER="${SSH_USER:-root}" # Ex: root
|
||||
SSH_PORT="${SSH_PORT:-22}"
|
||||
DEPLOY_PATH="${DEPLOY_PATH:-/var/www/avanzato}" # Caminho no servidor
|
||||
# ============================================
|
||||
|
||||
echo "=========================================="
|
||||
echo -e " ${BLUE}Avanzato - Deploy${NC}"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
echo -e "Ambiente: ${YELLOW}${ENVIRONMENT}${NC}"
|
||||
echo ""
|
||||
|
||||
# Verificar se o dist existe
|
||||
if [ ! -d "$DIST_DIR" ]; then
|
||||
echo -e "${RED}Erro: Pasta dist/ nao encontrada!${NC}"
|
||||
echo "Execute primeiro: npm run build"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Verificar se o diretorio do projeto existe no servidor
|
||||
echo -e "${BLUE}[1/6]${NC} Verificando conexao com servidor..."
|
||||
if ! ssh -p "$SSH_PORT" -o ConnectTimeout=10 "${SSH_USER}@${SSH_HOST}" "echo 'Conectado!'" 2>/dev/null; then
|
||||
echo -e "${RED}Erro: Nao foi possivel conectar ao servidor.${NC}"
|
||||
echo ""
|
||||
echo "Verifique:"
|
||||
echo " 1. Se o SSH_HOST esta correto"
|
||||
echo " 2. Se a chave SSH esta configurada"
|
||||
echo " 3. Se o servidor esta online"
|
||||
echo ""
|
||||
echo "Para configurar SSH:"
|
||||
echo " ssh-copy-id -i ~/.ssh/id_ed25519.pub ${SSH_USER}@${SSH_HOST}"
|
||||
exit 1
|
||||
fi
|
||||
echo -e "${GREEN}OK${NC} - Servidor acessivel"
|
||||
echo ""
|
||||
|
||||
# Preservar assets customizados
|
||||
echo -e "${BLUE}[2/6]${NC} Preservando assets customizados..."
|
||||
if [ -d "${PROJECT_DIR}/custom-assets" ]; then
|
||||
bash "${SCRIPT_DIR}/preserve-assets.sh" "$DIST_DIR"
|
||||
else
|
||||
echo -e "${YELLOW}Nenhum asset customizado encontrado.${NC}"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Configurar robots.txt e anti-indexacao conforme ambiente
|
||||
echo -e "${BLUE}[3/6]${NC} Configurando anti-indexacao para ambiente: ${ENVIRONMENT}..."
|
||||
if [ "$ENVIRONMENT" == "production" ]; then
|
||||
# Producao: permitir indexacao
|
||||
cp "${PROJECT_DIR}/public/robots-producao.txt" "${DIST_DIR}/robots.txt"
|
||||
echo -e "${GREEN}OK${NC} - robots.txt configurado para PRODUCAO (allow)"
|
||||
else
|
||||
# Homolog/Staging: bloquear indexacao
|
||||
cp "${PROJECT_DIR}/public/robots.txt" "${DIST_DIR}/robots.txt"
|
||||
echo -e "${YELLOW}ATENCAO${NC} - robots.txt configurado para HOMOLOGACAO (disallow all)"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Fazer backup do site atual (opcional)
|
||||
echo -e "${BLUE}[4/6]${NC} Criando backup..."
|
||||
BACKUP_DIR="backup-$(date +%Y%m%d-%H%M%S)"
|
||||
ssh -p "$SSH_PORT" "${SSH_USER}@${SSH_HOST}" "
|
||||
if [ -d '${DEPLOY_PATH}' ]; then
|
||||
mkdir -p '${DEPLOY_PATH}/backups'
|
||||
cp -r '${DEPLOY_PATH}' '${DEPLOY_PATH}/backups/${BACKUP_DIR}' 2>/dev/null || true
|
||||
echo 'Backup criado: backups/${BACKUP_DIR}'
|
||||
fi
|
||||
" 2>/dev/null || echo -e "${YELLOW}Backup ignorado (primeiro deploy).${NC}"
|
||||
echo ""
|
||||
|
||||
# Deploy via rsync
|
||||
echo -e "${BLUE}[5/6]${NC} Enviando arquivos para servidor..."
|
||||
rsync -avz --delete \
|
||||
-e "ssh -p ${SSH_PORT}" \
|
||||
--exclude='backups' \
|
||||
"$DIST_DIR/" \
|
||||
"${SSH_USER}@${SSH_HOST}:${DEPLOY_PATH}/"
|
||||
|
||||
echo ""
|
||||
echo -e "${GREEN}OK${NC} - Arquivos enviados!"
|
||||
echo ""
|
||||
|
||||
# Limpar cache (se necessario)
|
||||
echo -e "${BLUE}[6/6]${NC} Finalizando..."
|
||||
# Aqui voce pode adicionar comandos especificos do servidor
|
||||
# ssh -p "$SSH_PORT" "${SSH_USER}@${SSH_HOST}" "sudo systemctl restart nginx" 2>/dev/null || true
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo -e "${GREEN}Deploy concluido com sucesso!${NC}"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
echo -e "Ambiente: ${YELLOW}${ENVIRONMENT}${NC}"
|
||||
echo -e "Servidor: ${SSH_USER}@${SSH_HOST}:${DEPLOY_PATH}"
|
||||
echo ""
|
||||
echo "Verifique o site:"
|
||||
echo " https://avanzato.com.br"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user