diff --git a/httpdocs/deploy.sh b/httpdocs/deploy.sh new file mode 100644 index 0000000..2c91db4 --- /dev/null +++ b/httpdocs/deploy.sh @@ -0,0 +1,66 @@ +#!/bin/bash +set -e + +# ══════════════════════════════════════════════════════════════════════ +# Konfiguration – einmalig anpassen +# ══════════════════════════════════════════════════════════════════════ + +# Verzeichnis des Git-Repos +GIT_DIR="/var/www/vhosts/memap.de/httpdocs/timetracking/timetracking-git-repo" + +# Verzeichnis, aus dem die App tatsächlich läuft (Document Root eine Ebene drüber) +APP_DIR="/var/www/vhosts/memap.de/httpdocs/timetracking/timetracking-copy" + +# Binaries +PHP="/usr/bin/php8.2" +COMPOSER="/usr/local/bin/composer" +NPM="/usr/bin/npm" + +# ══════════════════════════════════════════════════════════════════════ + +echo "" +echo "╔══════════════════════════════════════╗" +echo "║ spawntree Timetracker – Deploy ║" +echo "╚══════════════════════════════════════╝" +echo "" + +# ── 1. Git aktualisieren ─────────────────────────────────────────────── +echo "⏳ [1/7] Git pull..." +git -C "$GIT_DIR" pull + +# ── 2. Dateien ins App-Verzeichnis synchronisieren ──────────────────── +echo "⏳ [2/7] Dateien synchronisieren..." +rsync -av --delete \ + --exclude=".git" \ + --exclude="node_modules" \ + --exclude="var/cache" \ + --exclude="var/log" \ + --exclude=".env.local" \ + --exclude=".env.*.local" \ + "$GIT_DIR/" "$APP_DIR/" + +# ── 3. Composer Dependencies installieren ───────────────────────────── +echo "⏳ [3/7] Composer install..." +cd "$APP_DIR" +"$COMPOSER" install --no-dev --optimize-autoloader --no-interaction + +# ── 4. Central-Migrationen ausführen ────────────────────────────────── +echo "⏳ [4/7] Central-Migrationen..." +"$PHP" bin/console doctrine:migrations:migrate --em=central --no-interaction + +# ── 5. Tenant-Schemas aktualisieren ─────────────────────────────────── +echo "⏳ [5/7] Tenant-Schemas aktualisieren..." +"$PHP" bin/console app:update-tenant-schema + +# ── 6. Cache leeren ─────────────────────────────────────────────────── +echo "⏳ [6/7] Cache leeren..." +"$PHP" bin/console cache:clear + +# ── 7. Assets bauen ─────────────────────────────────────────────────── +echo "⏳ [7/7] Assets bauen (npm)..." +"$NPM" ci +"$NPM" run build + +echo "" +echo "✅ Deploy abgeschlossen." +echo ""