| clear | |
| # Load environment variables from .env file (if it exists) | |
| if [[ -f .env ]]; then | |
| source .env | |
| fi | |
| # Get the port, prioritizing environment variables and then defaulting to 80 | |
| PORT="${PORT:-${SERVER_PORT:-80}}" | |
| # Check if the port is a valid number | |
| if ! [[ "$PORT" =~ ^[0-9]+$ ]]; then | |
| echo "Invalid port: $PORT. Please set a valid number in .env or your environment." >&2 # Redirect to stderr | |
| exit 1 | |
| fi | |
| # Define a function to start Gunicorn | |
| start_gunicorn() { | |
| echo "Starting Gunicorn on port $PORT..." | |
| exec gunicorn main:app -b 0.0.0.0:$PORT -w 8 --timeout 600 | |
| } | |
| # Start Gunicorn initially | |
| start_gunicorn | |
| # Restart loop in case of crashes | |
| while true; do | |
| echo "Gunicorn exited. Restarting in 5 seconds..." >&2 # Redirect to stderr | |
| sleep 5 | |
| start_gunicorn | |
| done | |