#!/bin/bash # Script to fix nginx 413 error by increasing client_max_body_size # This script updates nginx configuration on the server for all domains # including Forgejo (git push), VSCode, and web apps set -e SERVER_IP="147.45.152.129" SERVER_USER="root" MAX_SIZE="1000M" echo "๐Ÿ”ง Fixing nginx upload limit (413 error) on server..." ssh "$SERVER_USER@$SERVER_IP" << 'EOF' set -e echo "๐Ÿ“ Checking current nginx configurations..." # Update global nginx config if ! grep -q "client_max_body_size" /etc/nginx/nginx.conf; then echo "Adding client_max_body_size to global nginx config..." sed -i '/http {/a\ client_max_body_size 1000M;' /etc/nginx/nginx.conf else echo "Updating existing client_max_body_size in global config..." sed -i 's/client_max_body_size.*$/client_max_body_size 1000M;/' /etc/nginx/nginx.conf fi # Update all site configs in sites-available echo "Updating all site configurations..." for conf in /etc/nginx/sites-available/*; do if [ -f "$conf" ]; then echo "Processing: $conf" # Remove all existing client_max_body_size lines to avoid duplicates sed -i '/client_max_body_size/d' "$conf" # Add client_max_body_size once in each server block (after first server_name) # Use awk to add only once per server block awk ' /server \{/ { in_server=1; added=0 } /\}/ && in_server { in_server=0 } { print } /server_name/ && in_server && !added { print " client_max_body_size 1000M;" added=1 } ' "$conf" > "$conf.tmp" && mv "$conf.tmp" "$conf" fi done echo "๐Ÿงช Testing nginx configuration..." /usr/sbin/nginx -t if [ $? -eq 0 ]; then echo "โœ… Nginx configuration is valid" echo "๐Ÿ”„ Reloading nginx..." /usr/bin/systemctl reload nginx echo "โœ… Nginx reloaded successfully" echo "" echo "๐Ÿ“Š Summary:" echo " - client_max_body_size set to 1000M globally" echo " - All site configurations updated" echo " - Git push should now work without 413 errors" echo "" echo "Current client_max_body_size in configs:" grep -r "client_max_body_size" /etc/nginx/ 2>/dev/null | grep -v ".default" || echo " (checking...)" else echo "โŒ Nginx configuration test failed" exit 1 fi EOF echo "" echo "โœ… Done! Git push should now work without 413 errors." echo "๐Ÿ’ก If you still get 413, try increasing MAX_SIZE in this script."