Files
scoreodonto.com/deploy-to-prod.sh
T
VPS 4 Builder b7bb455f56
continuous-integration/webhook Falha no deploy de scoreodonto.com (VPS 4)
feat: add isolated staging environment, manual promotion script, and prepended staging domain pattern
2026-05-18 00:37:49 +02:00

54 lines
2.3 KiB
Bash
Executable File

#!/bin/bash
# ─── deploy-to-prod.sh (ScoreOdonto) ──────────────────────────────────────────
# Script de Promoção Manual: Staging (VPS 4) ➔ Produção (VPS 1)
# ─────────────────────────────────────────────────────────────────────────────
set -e
LOCK_FILE="/tmp/deploy-prod-scoreodonto-release.lock"
if [ -f "$LOCK_FILE" ]; then
echo "🚨 Promoção para produção já está em andamento! Aguarde..."
exit 1
fi
touch "$LOCK_FILE"
trap 'rm -f "$LOCK_FILE"' EXIT
LOG_FILE="/home/deploy/stack/webhook-listener/deploy.log"
log() {
echo "[$(date -u +'%Y-%m-%dT%H:%M:%SZ')] [SCOREODONTO-PROD] $1" | tee -a "$LOG_FILE"
}
log "🚀 Iniciando PROMOÇÃO MANUAL de Staging (VPS 4) para PRODUÇÃO (VPS 1)..."
# 1. Sincronizar Backend para a VPS 1
log "🚚 Despachando Backend para a VPS 1 (Produção)..."
rsync -avz --delete \
--exclude '.env' \
--exclude 'node_modules/.cache' \
/home/deploy/stack/scoreodonto.com/backend/ \
deploy@10.99.0.1:/home/deploy/stack/scoreodonto.com/backend/
# 2. Sincronizar Frontend (build compilada em Staging) para a VPS 1
log "🚚 Despachando Frontend (build) para a VPS 1 (Produção)..."
rsync -avz --delete \
/home/deploy/stack/scoreodonto.com/frontend/dist/ \
deploy@10.99.0.1:/home/deploy/stack/scoreodonto.com/frontend/dist/
# 3. Sincronizar Plugins para a VPS 1
log "🚚 Despachando Plugins..."
rsync -avz --delete \
/home/deploy/stack/scoreodonto.com/plugins/ \
deploy@10.99.0.1:/home/deploy/stack/scoreodonto.com/plugins/
# 4. Sincronizar Docker Compose de Produção e Configurações de Nginx
log "🚚 Despachando Infraestrutura (Docker/Config) para a VPS 1..."
rsync -avz \
/home/deploy/stack/scoreodonto.com/docker-compose.yml \
/home/deploy/stack/scoreodonto.com/nginx \
deploy@10.99.0.1:/home/deploy/stack/scoreodonto.com/
# 5. SSH na VPS 1 para Reiniciar Serviços de Produção
log "🔄 Reiniciando containers de PRODUÇÃO na VPS 1..."
ssh -o BatchMode=yes deploy@10.99.0.1 "cd /home/deploy/stack/scoreodonto.com && DOCKER_HOST=unix:///run/user/1000/docker.sock docker compose up -d"
log "✅ PROMOÇÃO PARA PRODUÇÃO CONCLUÍDA COM SUCESSO!"