#!/bin/bash # Server setup untuk optimasi memory dan build # Jalankan dengan sudo di server production echo "🔧 Setting up server for optimized building..." # 1. Check current memory echo "📊 Current memory status:" free -h # 2. Setup swap file (temporary solution for low memory) echo "💾 Setting up swap file (1GB)..." if [ ! -f /swapfile ]; then fallocate -l 1G /swapfile chmod 600 /swapfile mkswap /swapfile sysctl vm.swappiness=10 echo '/swapfile none swap sw 0 0' >> /etc/fstab echo 'vm.swappiness=10' >> /etc/sysctl.conf swapon /swapfile echo "✅ Swap file created and activated" else echo "â„šī¸ Swap file already exists" fi # 3. Optimize Node.js for production echo "âš™ī¸ Optimizing Node.js..." npm config set fund false npm config set audit false # 4. Install PM2 untuk process management echo "đŸ“Ļ Installing PM2..." npm install -g pm2 # 5. Create PM2 ecosystem file for build process cat > ecosystem.config.js << 'EOF' module.exports = { apps: [{ name: 'build-app', script: 'npm', args: 'run build:prod', instances: 1, autorestart: false, watch: false, max_memory_restart: '1G', env: { NODE_ENV: 'production', NODE_OPTIONS: '--max-old-space-size=1024' } }] } EOF echo "✅ Server setup completed!" echo "" echo "📝 Now you can:" echo " 1. Build with memory limit: npm run build:prod" echo " 2. Build with PM2: pm2 start ecosystem.config.js" echo " 3. Monitor: pm2 monit" echo " 4. Check memory: free -h"