59 lines
1.8 KiB
Bash
Executable File
59 lines
1.8 KiB
Bash
Executable File
#!/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!" |