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 | |