#!/usr/bin/env bash # ============================================================================= # Deploy por TAG na PRODUÇÃO (VPS1) — rx.scoreodonto.com (modelo build-once/promote) # Puxa a imagem versionada do registry do Gitea e sobe, SEM build. # # Uso (NA VPS1): ./deploy-prod.sh v2.2.0 # Rollback: ./deploy-prod.sh # # Pré-requisitos (uma vez): docker login git.clube67.com (token read:package). # Substitui o modelo antigo (webhook 9003 → build na VPS4 → save/rsync/load). # ============================================================================= set -euo pipefail TAG="${1:-}" COMMIT="${2:-dev}" if [ -z "$TAG" ]; then echo "uso: ./deploy-prod.sh [commit] (ex.: ./deploy-prod.sh v2.2.0 ab12cd3)" echo "tags disponíveis: git.clube67.com → Packages → rx-scoreodonto" exit 1 fi export DOCKER_HOST=unix:///run/user/1000/docker.sock export RX_TAG="$TAG" export RX_COMMIT="$COMMIT" cd "$(dirname "$0")" FILES="-f docker-compose.yml -f docker-compose.prod.yml" echo "──────────────────────────────────────────────────────────────" echo " Deploy rx.scoreodonto.com → PRODUÇÃO tag: $TAG commit: $COMMIT" echo " Versão exibida (/api/health → badge) injetada em runtime = $TAG" echo " Volumes preservados: uploads/ processed/ data/ dental-server/updates/ (auto-update dos clients)" echo "──────────────────────────────────────────────────────────────" echo "[1/3] pull da imagem $TAG ..." docker compose $FILES pull app echo "[2/3] subindo (sem build) ..." docker compose $FILES up -d --no-build app echo "[3/3] verificação (aguardando boot) ..." sleep 12 echo -n " health no ar: " curl -s --max-time 10 https://rx.scoreodonto.com/api/health || echo "(ainda subindo — confira em alguns segundos)" echo docker logs rx_scoreodonto_app --tail 5 2>&1 | grep -iE 'VERSION|listen|porta|ready' || true echo echo "✅ Deploy concluído (tag $TAG)." echo " Rollback: ./deploy-prod.sh "