Files
rx.scoreodonto.com-client/deploy-client.sh
T
VPS 4 Builder 2a26f72460 feat(client): envia clinicName no identify e migra upload para Presigned URLs
- client-monitor.js: adiciona clinicName no client-identify (fallback para auth legada)
- Direct Upload via Presigned URLs (bypass VPS) como caminho principal
- Fallback automático para envio via VPS se Wasabi não disponível
- Thumbnail gerado localmente via IPC com index.js (remove dependência sharp)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 02:06:19 +02:00

67 lines
2.4 KiB
Bash
Executable File

#!/bin/bash
# ─── deploy-client.sh (RX ScoreOdonto - Desktop Client) ──────────────────────
# Cross-compile do Electron na VPS 4 (Linux) gerando .exe para Windows
# e distribui os binários de atualização para a VPS 1 (Produção).
# ──────────────────────────────────────────────────────────────────────────────
set -e
CLIENT_PATH="/home/deploy/stack/rx.scoreodonto.com-client"
PROD_VPS="10.99.0.1"
PROD_USER="deploy"
UPDATES_PATH="/home/deploy/stack/rx.scoreodonto.com/dental-server/updates"
LOG_FILE="/home/deploy/stack/webhook-listener/deploy.log"
LOG_TAG="[rx.scoreodonto.com-client]"
log() {
echo "[$(date -u +'%Y-%m-%dT%H:%M:%SZ')] ${LOG_TAG} $1" | tee -a "$LOG_FILE"
}
log "🚀 Iniciando build do client desktop..."
# 1. Atualizar repositório local
log "📦 Mantendo alterações locais (git reset ignorado)..."
# git fetch origin main
# git reset --hard origin/main
# 2. Instalar dependências
log "📦 Instalando dependências (npm install)..."
npm install
# 3. Build cross-platform (Linux → Windows .exe)
log "⚙️ Buildando .exe para Windows via electron-builder (cross-compile)..."
npx electron-builder --win --x64 --publish never
# 4. Verificar se o build gerou os artefatos
if [ ! -d "$CLIENT_PATH/dist" ]; then
log "❌ ERRO: Pasta dist/ não encontrada após o build!"
exit 1
fi
EXE_COUNT=$(find "$CLIENT_PATH/dist" -name "*.exe" | wc -l)
YML_COUNT=$(find "$CLIENT_PATH/dist" -name "latest.yml" | wc -l)
if [ "$EXE_COUNT" -eq 0 ] || [ "$YML_COUNT" -eq 0 ]; then
log "❌ ERRO: Artefatos incompletos (exe: $EXE_COUNT, yml: $YML_COUNT)"
exit 1
fi
log "✅ Build concluído: $EXE_COUNT .exe(s), $YML_COUNT latest.yml"
# 5. Garantir que a pasta de updates existe na VPS 1
ssh -o BatchMode=yes -o StrictHostKeyChecking=no ${PROD_USER}@${PROD_VPS} \
"mkdir -p ${UPDATES_PATH}"
# 6. Transferir binários para VPS 1
log "🚚 Transferindo binários para VPS 1 (${UPDATES_PATH})..."
rsync -avz --delete \
"$CLIENT_PATH/dist/"*.exe \
"$CLIENT_PATH/dist/"*.yml \
"$CLIENT_PATH/dist/"*.blockmap \
${PROD_USER}@${PROD_VPS}:${UPDATES_PATH}/ 2>/dev/null || \
rsync -avz \
"$CLIENT_PATH/dist/"*.exe \
"$CLIENT_PATH/dist/"*.yml \
${PROD_USER}@${PROD_VPS}:${UPDATES_PATH}/
log "✅ Build e distribuição do client concluídos com sucesso!"