Update: 2026-05-08 00:26:39
This commit is contained in:
64
scripts/deploy_production.sh
Normal file
64
scripts/deploy_production.sh
Normal file
@@ -0,0 +1,64 @@
|
||||
#!/bin/bash
|
||||
# ─────────────────────────────────────────────────────
|
||||
# Musadaq Production Deployment Script
|
||||
# Run this on the production server after syncing files
|
||||
# ─────────────────────────────────────────────────────
|
||||
|
||||
set -e
|
||||
|
||||
echo "═══════════════════════════════════════════════"
|
||||
echo " مُصادَق — Production Deployment Script"
|
||||
echo "═══════════════════════════════════════════════"
|
||||
|
||||
# 1. Install PHP dependencies
|
||||
echo ""
|
||||
echo "▶ Step 1: Installing Composer dependencies..."
|
||||
cd /home/musadaq/htdocs/musadaq.intaleqapp.com
|
||||
composer install --no-dev --optimize-autoloader
|
||||
|
||||
# 2. Ensure storage directories exist
|
||||
echo ""
|
||||
echo "▶ Step 2: Creating storage directories..."
|
||||
mkdir -p storage/invoices
|
||||
mkdir -p storage/logs
|
||||
mkdir -p storage/exports
|
||||
mkdir -p storage/temp
|
||||
chmod -R 775 storage/
|
||||
|
||||
# 3. Set up the Cron Job for AI Queue Worker
|
||||
echo ""
|
||||
echo "▶ Step 3: Setting up Cron Job for AI Worker..."
|
||||
echo ""
|
||||
echo " Run: crontab -e"
|
||||
echo " Add this line:"
|
||||
echo ""
|
||||
echo " * * * * * /usr/bin/php /home/musadaq/htdocs/musadaq.intaleqapp.com/app/cron/process_batches.php >> /home/musadaq/htdocs/musadaq.intaleqapp.com/storage/logs/cron.log 2>&1"
|
||||
echo ""
|
||||
echo " This runs the AI Queue Worker every minute."
|
||||
echo " The worker has its own lock file to prevent duplicates."
|
||||
echo ""
|
||||
|
||||
# 4. Verify environment variables
|
||||
echo "▶ Step 4: Checking .env configuration..."
|
||||
if [ -f .env ]; then
|
||||
echo " ✅ .env file found"
|
||||
|
||||
# Check critical keys
|
||||
grep -q "GEMINI_API_KEY" .env && echo " ✅ GEMINI_API_KEY set" || echo " ❌ GEMINI_API_KEY missing!"
|
||||
grep -q "DB_HOST" .env && echo " ✅ DB_HOST set" || echo " ❌ DB_HOST missing!"
|
||||
grep -q "ENCRYPTION_KEY" .env && echo " ✅ ENCRYPTION_KEY set" || echo " ❌ ENCRYPTION_KEY missing!"
|
||||
grep -q "JWT_SECRET" .env && echo " ✅ JWT_SECRET set" || echo " ❌ JWT_SECRET missing!"
|
||||
grep -q "FCM_SERVER_KEY\|FIREBASE" .env && echo " ✅ Firebase key set" || echo " ⚠️ Firebase key missing (push notifications won't work)"
|
||||
else
|
||||
echo " ❌ .env file not found! Copy .env.example and configure it."
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════"
|
||||
echo " ✅ Deployment Complete!"
|
||||
echo ""
|
||||
echo " Next steps:"
|
||||
echo " 1. Add the Cron Job (shown above)"
|
||||
echo " 2. Test the API: curl https://musadaq.intaleqapp.com/api/v1/auth/login"
|
||||
echo " 3. Monitor logs: tail -f storage/logs/cron.log"
|
||||
echo "═══════════════════════════════════════════════"
|
||||
Reference in New Issue
Block a user