rebreak-monorepo/scripts/deploy-marketing.sh
chahinebrini fb2d90b947 fix(calls): no duplicate incoming-call notifications
- backend: skip Expo alert push to iOS devices that already received VoIP push
  (CallKit + banner = double ring)
- native: receiveIncoming no longer triggers InCallManager.startRingtone —
  CallKit/ConnectionService play their own ring. Dedup if same callId
  arrives twice (Realtime + VoIP-Push race).
2026-06-04 18:28:00 +02:00

65 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
# deploy-marketing.sh -- Local-Build + rsync der Marketing-SPA nach staging.rebreak.org
#
# Pattern: Nuxt generate -> .output/public/ -> rsync auf Hetzner -> /var/www/marketing-staging
#
# Usage:
# ./scripts/deploy-marketing.sh # build + deploy staging
# DRY_RUN=1 ./scripts/deploy-marketing.sh # nur rsync-dry-run, kein write
#
# Voraussetzungen auf Server (einmalig):
# sudo mkdir -p /var/www/marketing-staging
# sudo chown -R $USER:www-data /var/www/marketing-staging
# sudo cp ops/nginx/staging.rebreak.org.conf /etc/nginx/sites-available/
# sudo nginx -t && sudo systemctl reload nginx
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
MARKETING_DIR="$REPO_ROOT/apps/marketing"
# Server-Settings (anpassen wenn anderer Host/User)
SSH_HOST="${MARKETING_SSH_HOST:-root@49.13.55.22}"
REMOTE_DIR="${MARKETING_REMOTE_DIR:-/var/www/marketing-staging}"
log() { echo "[deploy-marketing] $(date '+%H:%M:%S') $*"; }
log "=== Marketing Deploy gestartet ==="
log "Repo: $REPO_ROOT"
log "Source: $MARKETING_DIR"
log "Target: $SSH_HOST:$REMOTE_DIR"
# 1. Build (statische Generierung)
log "Step 1: nuxt generate..."
cd "$MARKETING_DIR"
pnpm install --frozen-lockfile
pnpm generate
PUBLIC_DIR="$MARKETING_DIR/.output/public"
[[ -d "$PUBLIC_DIR" ]] || {
echo "FEHLER: $PUBLIC_DIR existiert nicht nach generate" >&2
exit 1
}
[[ -f "$PUBLIC_DIR/index.html" ]] || {
echo "FEHLER: $PUBLIC_DIR/index.html fehlt" >&2
exit 1
}
log "Build ok ($(du -sh "$PUBLIC_DIR" | cut -f1))"
# 2. rsync nach Server
RSYNC_FLAGS=(-az --delete --info=progress2)
if [[ "${DRY_RUN:-0}" == "1" ]]; then
RSYNC_FLAGS+=(--dry-run)
log "DRY_RUN aktiv -- nur Simulation"
fi
log "Step 2: rsync nach $SSH_HOST:$REMOTE_DIR ..."
rsync "${RSYNC_FLAGS[@]}" \
"$PUBLIC_DIR/" \
"$SSH_HOST:$REMOTE_DIR/"
log "=== Marketing Deploy erfolgreich ==="
log "Test: curl -I https://staging.rebreak.org/"