#!/bin/bash # Deploy script untuk build di local dan upload ke server # Usage: ./deploy.sh [server-user] [server-host] [server-path] # Default values (ganti sesuai server Anda) SERVER_USER=${1:-"root"} SERVER_HOST=${2:-"157.245.48.15"} SERVER_PATH=${3:-"/var/www/pupr"} echo "๐Ÿš€ Starting deployment process..." # 1. Clean previous build echo "๐Ÿงน Cleaning previous build..." rm -rf public/build/* # 2. Install dependencies (jika belum) echo "๐Ÿ“ฆ Installing dependencies..." npm ci --production=false # 3. Build project echo "๐Ÿ”จ Building project..." npm run build # Check if build was successful if [ $? -ne 0 ]; then echo "โŒ Build failed!" exit 1 fi echo "โœ… Build completed successfully!" # 4. Upload build files to server echo "๐Ÿ“ค Uploading build files to server..." rsync -avz --progress --delete public/build/ $SERVER_USER@$SERVER_HOST:$SERVER_PATH/public/build/ # 5. Upload other necessary files (optional) echo "๐Ÿ“ค Uploading other files..." rsync -avz --progress \ --exclude='node_modules' \ --exclude='.git' \ --exclude='public/build' \ --exclude='storage/logs/*' \ --exclude='bootstrap/cache/*' \ ./ $SERVER_USER@$SERVER_HOST:$SERVER_PATH/ echo "๐Ÿ”ง Fixing permissions on server..." ssh $SERVER_USER@$SERVER_HOST "cd $SERVER_PATH && chmod +x fix-permissions.sh && sudo ./fix-permissions.sh $SERVER_PATH" echo "๐Ÿ“ฆ Installing composer dependencies on server..." ssh $SERVER_USER@$SERVER_HOST "cd $SERVER_PATH && composer install --no-dev --optimize-autoloader" echo "๐ŸŽ‰ Deployment completed successfully!" echo "" echo "โœ… Permissions have been automatically fixed!" echo "โœ… Composer dependencies installed!" echo "โœ… Laravel caches optimized!" echo "" echo "๐ŸŒ Your application should now be accessible without permission errors!"