o2
This commit is contained in:
parent
5123c35429
commit
8e0bbe901e
2 changed files with 98 additions and 2 deletions
|
|
@ -171,7 +171,11 @@ check_build_directory() {
|
||||||
# Function to build Flutter web app for production
|
# Function to build Flutter web app for production
|
||||||
build_flutter_app() {
|
build_flutter_app() {
|
||||||
print_status "Building Flutter web app for production..."
|
print_status "Building Flutter web app for production..."
|
||||||
flutter build $FLUTTER_BUILD_TARGET $FLUTTER_BUILD_MODE --dart-define=API_BASE_URL=$API_BASE_URL --dart2js-optimization=O2
|
# Use -O2 optimization and disable wasm to reduce memory usage during compilation
|
||||||
|
flutter build $FLUTTER_BUILD_TARGET $FLUTTER_BUILD_MODE \
|
||||||
|
--dart-define=API_BASE_URL=$API_BASE_URL \
|
||||||
|
--dart2js-optimization=O2 \
|
||||||
|
--no-wasm
|
||||||
|
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
print_error "Flutter build failed"
|
print_error "Flutter build failed"
|
||||||
|
|
@ -217,6 +221,78 @@ restart_nginx() {
|
||||||
print_success "Nginx restarted successfully"
|
print_success "Nginx restarted successfully"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Function to setup swap if needed
|
||||||
|
setup_swap() {
|
||||||
|
print_status "Checking swap configuration..."
|
||||||
|
|
||||||
|
# Check current swap
|
||||||
|
CURRENT_SWAP=$(free -m | awk '/^Swap:/ {print $2}')
|
||||||
|
RECOMMENDED_SWAP=2048 # 2GB
|
||||||
|
|
||||||
|
if [ "$CURRENT_SWAP" -lt "$RECOMMENDED_SWAP" ]; then
|
||||||
|
print_warning "Current swap is ${CURRENT_SWAP}MB, recommended is ${RECOMMENDED_SWAP}MB"
|
||||||
|
print_status "Setting up temporary swap file..."
|
||||||
|
|
||||||
|
# Create swap file if it doesn't exist
|
||||||
|
if [ ! -f /swapfile ]; then
|
||||||
|
dd if=/dev/zero of=/swapfile bs=1M count=$RECOMMENDED_SWAP status=progress
|
||||||
|
chmod 600 /swapfile
|
||||||
|
mkswap /swapfile
|
||||||
|
swapon /swapfile
|
||||||
|
|
||||||
|
# Optimize swap usage (don't add to fstab - it's temporary)
|
||||||
|
sysctl vm.swappiness=10
|
||||||
|
|
||||||
|
print_success "Temporary swap file created and activated (${RECOMMENDED_SWAP}MB)"
|
||||||
|
# Mark that we created it for cleanup
|
||||||
|
touch /tmp/.swap_created_by_deploy
|
||||||
|
else
|
||||||
|
# Swap exists, activate it if not active
|
||||||
|
if ! swapon --show | grep -q '/swapfile'; then
|
||||||
|
swapon /swapfile
|
||||||
|
print_info "Existing swap file activated"
|
||||||
|
else
|
||||||
|
print_info "Swap file already active"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
print_success "Swap is already configured (${CURRENT_SWAP}MB)"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to remove temporary swap after deployment
|
||||||
|
remove_swap() {
|
||||||
|
print_status "Checking if temporary swap needs cleanup..."
|
||||||
|
|
||||||
|
# Only remove swap if we created it during this deployment
|
||||||
|
if [ -f /tmp/.swap_created_by_deploy ]; then
|
||||||
|
print_status "Removing temporary swap file..."
|
||||||
|
|
||||||
|
# Deactivate swap
|
||||||
|
if swapon --show | grep -q '/swapfile'; then
|
||||||
|
swapoff /swapfile
|
||||||
|
print_info "Swap deactivated"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove swap file
|
||||||
|
if [ -f /swapfile ]; then
|
||||||
|
rm -f /swapfile
|
||||||
|
print_success "Temporary swap file removed"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove fstab entry if exists
|
||||||
|
if grep -q '/swapfile' /etc/fstab 2>/dev/null; then
|
||||||
|
sed -i '/\/swapfile/d' /etc/fstab
|
||||||
|
print_info "Removed swap entry from fstab"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove marker file
|
||||||
|
rm -f /tmp/.swap_created_by_deploy
|
||||||
|
else
|
||||||
|
print_info "No temporary swap to remove (swap was pre-existing or already cleaned)"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
# EXPORT ALL VARIABLES
|
# EXPORT ALL VARIABLES
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
|
|
@ -224,7 +300,7 @@ restart_nginx() {
|
||||||
# Make sure all variables are exported
|
# Make sure all variables are exported
|
||||||
export -f print_status print_warning print_error print_success print_info
|
export -f print_status print_warning print_error print_success print_info
|
||||||
export -f check_project_root check_build_directory build_flutter_app
|
export -f check_project_root check_build_directory build_flutter_app
|
||||||
export -f create_backup set_permissions test_nginx restart_nginx
|
export -f create_backup set_permissions test_nginx restart_nginx setup_swap remove_swap
|
||||||
|
|
||||||
print_info "Configuration loaded successfully"
|
print_info "Configuration loaded successfully"
|
||||||
print_info "Server: $SERVER_USER@$SERVER_IP"
|
print_info "Server: $SERVER_USER@$SERVER_IP"
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,23 @@ print_status "Deploying on server..."
|
||||||
ssh "$SERVER_USER@$SERVER_IP" << EOF
|
ssh "$SERVER_USER@$SERVER_IP" << EOF
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
# Setup swap if needed (helps with memory-intensive operations)
|
||||||
|
$(declare -f setup_swap)
|
||||||
|
$(declare -f remove_swap)
|
||||||
|
$(declare -f print_status)
|
||||||
|
$(declare -f print_warning)
|
||||||
|
$(declare -f print_success)
|
||||||
|
$(declare -f print_info)
|
||||||
|
RED='$RED'
|
||||||
|
GREEN='$GREEN'
|
||||||
|
YELLOW='$YELLOW'
|
||||||
|
BLUE='$BLUE'
|
||||||
|
NC='$NC'
|
||||||
|
setup_swap
|
||||||
|
|
||||||
|
# Trap to ensure swap cleanup on exit
|
||||||
|
trap 'remove_swap' EXIT
|
||||||
|
|
||||||
# Create web directory if it doesn't exist
|
# Create web directory if it doesn't exist
|
||||||
mkdir -p $WEB_ROOT
|
mkdir -p $WEB_ROOT
|
||||||
|
|
||||||
|
|
@ -98,6 +115,9 @@ ssh "$SERVER_USER@$SERVER_IP" << EOF
|
||||||
ufw allow $FIREWALL_ALLOW_SSH
|
ufw allow $FIREWALL_ALLOW_SSH
|
||||||
ufw --force enable
|
ufw --force enable
|
||||||
|
|
||||||
|
# Clean up temporary swap
|
||||||
|
remove_swap
|
||||||
|
|
||||||
echo "Deployment completed successfully!"
|
echo "Deployment completed successfully!"
|
||||||
echo "Application is available at: https://memo-cards.online"
|
echo "Application is available at: https://memo-cards.online"
|
||||||
EOF
|
EOF
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue