#!/bin/bash
# deploy.sh — Wird vom Webhook-Dienst bei GitHub-Push auf main aufgerufen.
# Läuft auf dem HOST (nicht im Container).

set -euo pipefail

INSTALL_DIR="${INSTALL_DIR:-/opt/archivmail}"
LOG_FILE="/var/log/archivmail/deploy.log"

log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*" | tee -a "$LOG_FILE"; }

log "=== Deploy gestartet (von GitHub Webhook) ==="

cd "$INSTALL_DIR"

# 1. Aktuellen Stand holen
log "git pull origin main..."
git pull origin main

# 2. Neue Images bauen
log "docker compose build..."
docker compose build --no-cache

# 3. Stack neustarten (zero-downtime: postgres bleibt laufen)
log "docker compose up -d..."
docker compose up -d --remove-orphans

# 4. Alte ungenutzte Images aufräumen
docker image prune -f

log "=== Deploy abgeschlossen ==="
