79 lines
2.3 KiB
Bash
79 lines
2.3 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
# ──────────────────────────────────────────
|
|
# PreRegister Deploy Script
|
|
# Run on VPS: ./deploy.sh [tag]
|
|
# Examples:
|
|
# ./deploy.sh → deploys latest main
|
|
# ./deploy.sh v1.2.0 → deploys specific tag
|
|
# ──────────────────────────────────────────
|
|
|
|
# !! UPDATE THIS PATH TO YOUR VPS DIRECTORY !!
|
|
APP_DIR="/home/hausdesign/domains/preregister.hausdesign.nl/public_html"
|
|
TAG="${1:-}"
|
|
|
|
echo "══════════════════════════════════════"
|
|
echo " PreRegister — Deploy"
|
|
echo "══════════════════════════════════════"
|
|
|
|
cd "$APP_DIR"
|
|
|
|
# 1. Maintenance mode
|
|
echo "→ Enabling maintenance mode..."
|
|
php artisan down --retry=30 || true
|
|
|
|
# 2. Pull latest code
|
|
echo "→ Pulling from Gitea..."
|
|
git fetch --all --tags
|
|
|
|
if [ -n "$TAG" ]; then
|
|
echo "→ Checking out tag: $TAG"
|
|
git checkout "$TAG"
|
|
else
|
|
echo "→ Checking out latest main"
|
|
git checkout main
|
|
git pull origin main
|
|
fi
|
|
|
|
# 3. Install PHP dependencies
|
|
echo "→ Installing Composer dependencies..."
|
|
composer install --no-dev --optimize-autoloader --no-interaction
|
|
|
|
# 4. Install Node dependencies and build
|
|
echo "→ Installing npm packages..."
|
|
npm ci --production=false
|
|
|
|
echo "→ Building frontend assets..."
|
|
npm run build
|
|
|
|
# 5. Run migrations
|
|
echo "→ Running migrations..."
|
|
php artisan migrate --force
|
|
|
|
# 6. Clear and rebuild caches
|
|
echo "→ Clearing caches..."
|
|
php artisan config:cache
|
|
php artisan route:cache
|
|
php artisan view:cache
|
|
php artisan event:cache
|
|
|
|
# 7. Restart queue (process any pending jobs with new code)
|
|
echo "→ Restarting queue workers..."
|
|
php artisan queue:restart
|
|
|
|
# 8. Storage link (idempotent)
|
|
php artisan storage:link 2>/dev/null || true
|
|
|
|
# 9. Disable maintenance mode
|
|
echo "→ Going live!"
|
|
php artisan up
|
|
|
|
echo ""
|
|
echo "══════════════════════════════════════"
|
|
if [ -n "$TAG" ]; then
|
|
echo " Deployed: $TAG"
|
|
else
|
|
echo " Deployed: main (latest)"
|
|
fi
|
|
echo "══════════════════════════════════════" |