- 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).
65 lines
1.9 KiB
Bash
Executable File
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/"
|