feat(infra): reverse replication and update script for marcos-vps
This commit is contained in:
@@ -1,46 +1,61 @@
|
||||
#!/bin/bash
|
||||
# ---------------------------------------------------------
|
||||
# TRACKSTEEL APP: DEPLOY E SINCRONIZAÇÃO
|
||||
# TRACKSTEEL APP: DEPLOY & SINCRONIZAÇÃO (MARCOS-VPS -> PROD & HOSTINGER)
|
||||
# ---------------------------------------------------------
|
||||
|
||||
set -e
|
||||
|
||||
CYAN='\033[0;36m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m'
|
||||
|
||||
echo -e "\n${CYAN}🚀 Iniciando Ciclo Automático de Deploy TrackSteelAPP...${NC}"
|
||||
echo -e "\n${CYAN}🚀 Iniciando Ciclo Automático de Deploy TrackSteel APP (marcos-vps)...${NC}"
|
||||
|
||||
echo -e "${YELLOW}📝 Sincronizando código...${NC}"
|
||||
# 1. Git Commit & Push
|
||||
echo -e "\n${YELLOW}📝 Sincronizando código com o repositório GitHub...${NC}"
|
||||
git add .
|
||||
|
||||
if git diff-index --quiet HEAD --; then
|
||||
echo -e "${GREEN}✨ Nenhuma nova alteração para comitar.${NC}"
|
||||
else
|
||||
TIMESTAMP=$(date +"%d/%m/%Y %H:%M:%S")
|
||||
MSG="${1:-🚀 Auto-deploy: TrackSteelAPP atualizado em $TIMESTAMP}"
|
||||
MSG="${1:-🚀 Auto-deploy: TrackSteel APP atualizado em $TIMESTAMP}"
|
||||
echo -e "${CYAN}📤 Criando novo commit: $MSG${NC}"
|
||||
git commit -m "$MSG"
|
||||
fi
|
||||
|
||||
echo -e "${CYAN}📤 Sincronizando com os repositórios remotos (Gitea e GitHub)...${NC}"
|
||||
echo -e "${CYAN}📤 Enviando alterações para o GitHub (origin main)...${NC}"
|
||||
git push origin main
|
||||
|
||||
echo -e "\n${YELLOW}🔄 Disparando Deploy via API Oficial no Coolify (Hostinger)...${NC}"
|
||||
# 2. Build local do Frontend
|
||||
echo -e "\n${YELLOW}🔨 Executando build de produção local (npm run build)...${NC}"
|
||||
npm run build
|
||||
|
||||
# 3. Reiniciar container do Tracksteel local
|
||||
echo -e "\n${YELLOW}🔄 Atualizando container local tracksteel-app...${NC}"
|
||||
if docker ps -a --format '{{.Names}}' | grep -q "^tracksteel-app$"; then
|
||||
docker restart tracksteel-app
|
||||
echo -e "${GREEN}✅ Container tracksteel-app reiniciado com sucesso!${NC}"
|
||||
else
|
||||
echo -e "${YELLOW}ℹ️ Container tracksteel-app não encontrado no docker local.${NC}"
|
||||
fi
|
||||
|
||||
# 4. Replicação Reversa de Banco de Dados para a Hostinger
|
||||
echo -e "\n${YELLOW}🗄️ Executando replicação reversa de BD e Storage para a Hostinger...${NC}"
|
||||
SCRIPT_SYNC="/root/Apps/TracksteelApp/scripts/sync_db_to_hostinger.sh"
|
||||
if [ -f "$SCRIPT_SYNC" ]; then
|
||||
chmod +x "$SCRIPT_SYNC"
|
||||
"$SCRIPT_SYNC" || echo -e "${YELLOW}⚠️ Aviso: A replicação para Hostinger apresentou avisos ou falha de conexão.${NC}"
|
||||
fi
|
||||
|
||||
# 5. Notificar Coolify da Hostinger para deploy de contingência
|
||||
echo -e "\n${YELLOW}🌐 Atualizando app réplica no Coolify da Hostinger...${NC}"
|
||||
COOLIFY_TOKEN="19|ZJKUbBgyeNGcKrVkMI5gJ1uMHDC39d9VIShHL473a60d9882"
|
||||
TRACKSTEEL_UUID="i8o44gggg00o88ccc8oo48kk"
|
||||
curl -s -X GET "https://painel.reifonas.cloud/api/v1/deploy?uuid=${TRACKSTEEL_UUID}&force=false" \
|
||||
-H "Authorization: Bearer $COOLIFY_TOKEN"
|
||||
echo -e "\n${GREEN}🚀 Deploy local (Hostinger) engatilhado com sucesso!${NC}"
|
||||
-H "Authorization: Bearer $COOLIFY_TOKEN" >/dev/null 2>&1 || true
|
||||
echo -e "${GREEN}🚀 Deploy da réplica (Hostinger) acionado com sucesso!${NC}"
|
||||
|
||||
echo -e "\n${YELLOW}🌐 Sincronizando código e atualizando app na marcos-vps (100.97.2.16)...${NC}"
|
||||
ssh -o BatchMode=yes -o ConnectTimeout=5 root@100.97.2.16 \
|
||||
"cd /root/Apps/TracksteelApp && git pull origin main && npm run build && docker restart tracksteel-app" \
|
||||
&& echo -e "${GREEN}✅ App na marcos-vps atualizado com sucesso!${NC}" \
|
||||
|| echo -e "${YELLOW}⚠️ Aviso: Falha ao atualizar app na marcos-vps via SSH.${NC}"
|
||||
|
||||
echo -e "\n${YELLOW}🗄️ Replicando Banco de Dados e Storage para marcos-vps...${NC}"
|
||||
if [ -f "/root/Apps/TrackSteelAPP/scripts/sync_db_to_marcos.sh" ]; then
|
||||
/root/Apps/TrackSteelAPP/scripts/sync_db_to_marcos.sh
|
||||
fi
|
||||
|
||||
echo -e "\n${GREEN}🏁 Ciclo completo de deploy e replicação concluído com sucesso!${NC}\n"
|
||||
echo -e "\n${GREEN}🏁 Ciclo de deploy e replicação concluído com sucesso!${NC}\n"
|
||||
|
||||
Reference in New Issue
Block a user